|ARM Technical Support Knowledge Articles|
By default, RealView Debugger and RealView ICE will use word (4 byte) size memory accesses. This may cause problems when attempting to view or modify areas of your memory map which only support sub-word accesses, for example peripheral registers.
It is possible to force an explicit access size in RVD by using a memory map to describe the access sizes that should be used for different regions of your memory.
Note that the RVD memory pane Size option only affects the display size, and will not influence the way that the debug tools access physical memory.
Setting a Memory Map Manually
Manually setting a memory map is a simple way to control the access size for a block of memory.
If there is a peripheral at 0x10000000 that has a block of 0x1000 bytes of half-word size registers that are read-only:
RVD will then automatically split the Auto region that spanned the entire memory range into 2 chunks, split by the 4KB region defined above:
Note that the CLI commands for the operations above will be echoed in the RVD Output pane Cmd tab:
These can be used to create a script that can be executed automatically on connection to a target. See the FAQ: RVD Scripting & Automation for more information on scripting with RVD.
See RVD User Guide Chapter Mapping Target Memory for additional information on memory maps.
Setting a Memory Map using a BCD File
Explicit access size settings for different Memory Blocks can also be specified in a Board Chip Definition (BCD) file.
To set the access size for a region, add Attributes.access_size=<num_bytes>, where num_bytes is the access size in bytes - 1, 2, 4 or 8.
For information on writing BCD files, see the FAQ: How do I create a custom BCD file for my hardware? .
Article last edited on: 2011-08-16 15:44:45
Did you find this article helpful? Yes No
How can we improve this article?