13.5.1. Configuring the memory map

You can configure the Angel stack positions by editing the value of:

#define Angel_StacksAreRelativeToTopOfMemory

in devconf.h.

By default, the Angel stacks are configured relative to the top of memory. This is the recommended option. If Angel stacks are configured to start relative to the top of memory then the Angel code searches for the top of contiguous memory and the stack pointers are set at this location. This means that you can add memory to your system without updating the memory map and rebuilding Angel. Refer to devconf.h for more information.

You must define the memory map to allow the debugger to control illegal read/writes using the checks in the PERMITTED macro. These should reflect the permitted access of the system memory architecture. You must take care with systems that have access to the full 4GB of memory, because the highest section of memory should equate to 0xffffffff when the base and size are defined as a sum, and it may wrap around to 0.

For example, if there is memory-mapped I/O at 0xffd00000 the definition should be:

#define IOBase (0xFFD00000)
#define IOSize (0x002fffff)
#define IOTop  (IOBase + IOSize)

not:

#define IOBase (0xFFD00000)
#define IOSize (0x00300000)
#define IOTop  (IOBase + IOSize)
Copyright © 1997, 1998 ARM Limited. All rights reserved.ARM DUI 0040D
Non-Confidential