This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

over 16 bit DPTR limit

I have 8051 with 2 DPTR, SFR register to switch data banks(32Kb/16Kb)... Both DPTRs used to increment read/write pointers. I need correct 32bit address increment over all accessible memory.
How to widen DPTR to work with 32 bit address?

Parents
  • The DPTR isn't an integer, so you can't glue together a number of integer variables to form a larger DPTR.

    DPTR has special magic meaning to the processor, resulting in physical memory accesses. If the processor doesn't have the required hardware to address 4GB linear memory then it simply isn't possible to get a 4GB linear address space.

    The only thing you can do when your processor has too little address space is to use memory overlays. But you must manually switch in the different memory banks, and it will not be fast unless your application has a high degree of locality-of-reference.

Reply
  • The DPTR isn't an integer, so you can't glue together a number of integer variables to form a larger DPTR.

    DPTR has special magic meaning to the processor, resulting in physical memory accesses. If the processor doesn't have the required hardware to address 4GB linear memory then it simply isn't possible to get a 4GB linear address space.

    The only thing you can do when your processor has too little address space is to use memory overlays. But you must manually switch in the different memory banks, and it will not be fast unless your application has a high degree of locality-of-reference.

Children
No data