2.5.2.3 Behavior of Memory Accesses

The following table provides information about the behavior of accesses to each region in the memory map.

Table 2-11. Memory Access Behavior
Address rangeMemory regionMemory Type1XN1Description
0x00000000- 0x1FFFFFFFCodeNormal—Executable region for program code. You can also put data here.
0x20000000- 0x3FFFFFFFSRAMNormal—Executable region for data. You can also put code here. This region includes bit band and bit band alias areas, see Table 2-13.
0x40000000- 0x5FFFFFFFPeripheralDeviceXNThis region includes bit band and bit band alias areas, see Table 2-14.
0x60000000- 0x9FFFFFFFExternal RAMNormal—Executable region for data.
0xA0000000- 0xDFFFFFFFExternal deviceDeviceXNExternal Device memory.
0xE0000000- 0xE00FFFFFPrivate Peripheral BusStrongly- orderedXNThis region includes the NVIC, System timer, and system control block.
0xE0100000- 0xFFFFFFFFVendor specificDeviceXNAccesses to this region are to vendor-specific peripherals.
Note:
  1. See Memory Regions, Types and Attributes for more information.

The Code, SRAM, and external RAM regions can hold programs. However, Arm recommends that programs always use the Code region. This is because the processor has separate buses that enable instruction fetches and data accesses to occur simultaneously.

The MPU can override the default memory access behavior described in this section. For more information, see Memory Protection Unit.