Memory Protection Unit (MPU)
User Manual All information provided in this document is subject to legal disclaimers. © REALTEK 2019. All rights reserved.
29
Attributes:
32-bit read-only register located at 0xE000_ED90.
Secure software can access the Non-Secure view of this register via MPU_TYPE_NS located at 0xE002_ED90. The location
0xE002_ED90 is reserved to software executing in Non-Secure state and the debugger.
This register is banked between security states.
31
30
29
28
27
26
25
24
23
22
21
20
19
18
17
16
RSVD
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
DERGION
RSVD
SEPAR
ATE
R
R
Bit
Name
Access
Description
31:16
RSVD
N/A
Reserved
15:8
DREGION
R
Data regions. Number of regions supported by the MPU.
This field reads as an implementation defined value.
If this field reads as 0, the PE doesn’t implement a MPU for the selected security state.
7:1
RSVD
N/A
Reserved
0
SEPARATE
R
Separate. Indicates support for separated instructions and data address regions.
ARMv8-M only supports unified MPU regions.
This bit reads as 0.
3.2.2
MPU_CTRL
The MPU_CTRL register characteristics are:
Purpose:
Enables the MPU, and when the MPU is enabled, controls whether the default memory map is enabled as a background region
for privileged access, and whether the MPU is enabled for HardFaults, NMIs, and exception handlers when FAULTMASK is set to 1.
Usage constraints:
Privileged access is permitted only. Unprivileged access generates a BusFault.
This register is word accessible only. Half-word and byte accesses are unpredictable.
Configurations:
This register is always implemented.
Attributes:
32-bit read/write register located at 0xE000_ED94.
Secure software can access the Non-Secure view of this register via MPU_CTRL_NS located at 0xE002_ED94. The location
0xE002_ED94 is RES0 to software executing in Non-Secure state and the debugger.
This register is banked between security states.
31
30
29
…
5
4
3
2
1
0
RSVD
PRIVDEFENA
HFNMIENA
ENABLE
R/W
R/W
R/W
Bit
Name
Access
Description
31:3
RSVD
N/A
Reserved
2
PRIVDEFENA
R/W
Privileged default enable. Controls whether the default memory map is enabled for privileged
software.
0: Use of default memory map disabled.
1: Use of default memory map enabled for privileged code.
Note:
When the ENABLE bit is set to 0, the PE ignores this bit.
If no regions are enabled and the PRIVDEFENA and ENABLE bits are set to 1, only privileged
code can execute from the system address map.
If no MPU regions are implemented, this bit is reserved.
This bit resets to 0 on a Warm reset.
1
HFNMIENA
R/W
HardFault, NMI enable. Controls whether handlers executing with priority less than 0 access
memory with the MPU enabled or disabled. This applies to HardFaults, NMIs, and exception
handlers when FAULTMASK is set to 1.