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

Simulate Data Bus Width of 16-bit for External Memory

Is it possible to simulate external memory with a DBW of 16-bit? My external memory is setup so that 2 chips with 8-bit memory are sharing the same memory location. I would like to be able to simulate this with the uVision debugger. I enabled the memory region for the debugger with the statement

MAP  0x10000000,0x1000FFFF  READ WRITE  // allow R/W access to external

However, a float still takes up 4 address locations rather than the desired 2.

Any ideas?

Parents
  • I have 2 32k x 8 EEPROM chips. One is connected to AD0 - AD7 and the other is connected to AD8 - AD15. Both are mapped to the same memory location. ADuC7026 maps the external memory selection 0 to 0x10000000 to 0x1000FFFF.

    Say I were execute the following function :

     void writeMem (void) {
       float *ptr = 0x10000000;
    
       *ptr++ = 32.65;
       *ptr   = 45.76;
    }
    In external memory the 32-bit float number should take up 2 memory addresses (2 x 16). When I open up the "Memory Window" I see that the float number has taken up address 0x10000000 to 0x10000003 (4 x 8).

    Now maybe I'm mistaken about how a 16-bit data bus is used, but it looks to me like only AD0 - AD7 were used in this example.

Reply
  • I have 2 32k x 8 EEPROM chips. One is connected to AD0 - AD7 and the other is connected to AD8 - AD15. Both are mapped to the same memory location. ADuC7026 maps the external memory selection 0 to 0x10000000 to 0x1000FFFF.

    Say I were execute the following function :

     void writeMem (void) {
       float *ptr = 0x10000000;
    
       *ptr++ = 32.65;
       *ptr   = 45.76;
    }
    In external memory the 32-bit float number should take up 2 memory addresses (2 x 16). When I open up the "Memory Window" I see that the float number has taken up address 0x10000000 to 0x10000003 (4 x 8).

    Now maybe I'm mistaken about how a 16-bit data bus is used, but it looks to me like only AD0 - AD7 were used in this example.

Children