Discussion Forum

Simulate Data Bus Width of 16-bit for External Memory

Next Thread | Thread List | Previous Thread Start a Thread | Settings

DetailsMessage
Read-Only
Author
Richard Nigro
Posted
17-Nov-2005 21:09 GMT
Toolset
ARM
New! 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?
Read-Only
Author
Reinhard Keil
Posted
18-Nov-2005 10:41 GMT
Toolset
ARM
New! RE: Simulate Data Bus Width of 16-bit for External Memory
Which device are you simulating?

Reinhard
Read-Only
Author
Richard Nigro
Posted
18-Nov-2005 13:47 GMT
Toolset
ARM
New! RE: Simulate Data Bus Width of 16-bit for External Memory
Sorry, I'm simulating an ADuC7026. I configure it in the following manner.
 GP2CON = 0x02222000; // WS, RS, AE, MS0
 GP3CON = 0x22222222; // AD0 - AD7
 GP4CON = 0x22222222; // AD8 - AD15

 XMCFG = 1;       // Enable external memory access
 XM0CON = 3;      // 16-bit DBW, Enable memory region 0
 XM0PAR = 0xA722; // Enable byte write strobe
Read-Only
Author
Richard Nigro
Posted
21-Nov-2005 15:04 GMT
Toolset
ARM
New! Simulate 32k x 16 for External Memory
Ok, forgetting data bus width, I don't think data bus width is my problem. I have 32k worth of addresses (0x000 - 0x7FFF) and each addresses can hold 2 bytes (16 bits) worth of data. That's 64kBytes worth of data from 0x1000000 to 0x10007FFF. How can I get the simulator to reflect that?
Read-Only
Author
Reinhard Keil
Posted
21-Nov-2005 08:14 GMT
Toolset
ARM
New! RE: Simulate Data Bus Width of 16-bit for External Memory
data bus width has no impact to 'float' size. Maybe you can be a little more precise in describing your problem.

Reinhard
Read-Only
Author
Reinhard Keil
Posted
21-Nov-2005 08:28 GMT
Toolset
ARM
New! RE: Simulate Data Bus Width of 16-bit for External Memory
Just one more side note. The Keil uVision Simulator fully simulates all the external bus timings like bus width and wait states.

Reinhard
Read-Only
Author
Reinhard Keil
Posted
21-Nov-2005 08:29 GMT
Toolset
ARM
New! RE: Simulate Data Bus Width of 16-bit for External Memory
Just one more side note. The Keil uVision Simulator fully simulates all the external bus timings like bus width and wait states.

Reinhard
Read-Only
Author
Richard Nigro
Posted
21-Nov-2005 13:28 GMT
Toolset
ARM
New! RE: Simulate Data Bus Width of 16-bit for External Memory
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.
Read-Only
Author
Reinhard Keil
Posted
21-Nov-2005 13:34 GMT
Toolset
ARM
New! RE: Simulate Data Bus Width of 16-bit for External Memory
The memory windows shows addresses. Each address correspons to a single byte.

Maybe you take a look to ARM hardware manuals to see how this is mapped to physcial memory. However these basics are really hard to explain in words. The memory width does not change the physicall address behaviour at all.

Reinhard
Read-Only
Author
Richard Nigro
Posted
21-Nov-2005 13:45 GMT
Toolset
ARM
New! RE: Simulate Data Bus Width of 16-bit for External Memory
Okay, thanks. I was beginning to suspect that my concept of the data bus width was not correct.
Read-Only
Author
Richard Nigro
Posted
21-Nov-2005 15:05 GMT
Toolset
ARM
New! RE: Simulate Data Bus Width of 16-bit for External Memory
Ok, forgetting data bus width, I don't think data bus width is my problem. I have 32k worth of addresses (0x000 - 0x7FFF) and each addresses can hold 2 bytes (16 bits) worth of data. That's 64kBytes worth of data from 0x1000000 to 0x10007FFF. How can I get the simulator to reflect that?

Next Thread | Thread List | Previous Thread Start a Thread | Settings