A.4.3. Map_rule

This group controls the enabling and disabling of memory blocks using target registers. You specify a register to be monitored, and when the contents match a given value, a set of memory blocks is enabled. You can define several map rules, one for each of several memory blocks.


If you configure entries in this group and in the Memory_block group, then memory mapping is enabled when you connect to the configured target.

Map_rule group settings

The Map_rule group includes a base group called Default, but typically you create one or more named map rule groups. The group includes the following settings:


This is the name of a memory-mapped target register that controls the visibility of a memory block. This register is read to determine the current mappings. You must define the register using the Register block.

You are recommended to name the register itself instead of the bit fields within it when more than one bit field controls the mapping.


This is ANDed with the contents of the register as described in Value.


This is compared with the register contents after the mask is added. The comparison is (reg-value & mask) == value. For example, if bit 3 being HIGH means the map is enabled, mask is 0x8 (1<<3) and value is also 0x8.


This contains the name of one or more memory blocks to enable when the value matches, or disable when it does not match. To replace one block with another, create one rule that tests for one value and another that tests for a different value.


Indicates how often to check the register to see if the mapping has changed. For cases where the mapping is set by jumpers, which read as registers, it must be inspected only when first connecting to the device. If the program changes it, it must be tested on each stop. Valid values are:


Test when connecting to device.


Test on connect and when register changes.


Test on connect, change, and execution stop.

See also

Copyright © 2002-2011 ARM. All rights reserved.ARM DUI 0182N