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- 0x1FFFFFFFCodeNormalExecutable region for program code. You can also put data here.
0x20000000- 0x3FFFFFFFSRAMNormalExecutable 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 RAMNormalExecutable 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.