
...the world's most energy friendly microcontrollers
2011-02-04 - d0002_Rev1.00
17
www.energymicro.com
Address
range
Memory region
Memory
type
XN
Description
0x60000000
-
0x9FFFFFFF
External RAM
Normal
1
-
Executable region for data.
0xA0000000
-
0xDFFFFFFF
External device
Device
1
XN
1
External Device memory
0xE0000000
-
0xE00FFFFF
Private
Peripheral Bus
Strongly-
ordered
1
XN
1
This region includes the NVIC, System timer, and system control
block.
0xE0100000
-
0xFFFFFFFF
Reserved
Device
1
XN
1
Reserved
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
2.2.4 Software ordering of memory accesses
The order of instructions in the program flow does not always guarantee the order of the corresponding
memory transactions. This is because:
the processor can reorder some memory accesses to improve efficiency, providing this does not affect
the behavior of the instruction sequence.
the processor has multiple bus interfaces
memory or devices in the memory map have different wait states
some memory accesses are buffered or speculative.
accesses. Otherwise, if the order of memory accesses is critical, software must include memory barrier
instructions to force that ordering. The processor provides the following memory barrier instructions:
DMB
The
Data
Memory
Barrier
(DMB)
instruction
ensures
that
outstanding memory transactions complete before subsequent
DSB
The Data Synchronization Barrier (DSB) instruction ensures that
outstanding memory transactions complete before subsequent
ISB
The Instruction Synchronization Barrier (ISB) ensures that the effect
of all completed memory transactions is recognizable by subsequent
Use memory barrier instructions in, for example:
MPU programming:
Use a DSB instruction to ensure the effect of the MPU takes place immediately at the end of context
switching.
Use an ISB instruction to ensure the new MPU setting takes effect immediately after programming
the MPU region or regions, if the MPU configuration code was accessed using a branch or call.
If the MPU configuration code is entered using exception mechanisms, then an ISB instruction is
not required.
Vector table. If the program changes an entry in the vector table, and then enables the corresponding
exception, use a DMB instruction between the operations. This ensures that if the exception is taken
immediately after being enabled the processor uses the new exception vector.