
Cortex-M4 Peripherals
ARM DUI 0553A
Copyright © 2010 ARM. All rights reserved.
4-39
ID121610
Non-Confidential
4.5.2
MPU Control Register
The MPU_CTRL register:
•
enables the MPU
•
enables the default memory map background region
•
enables use of the MPU when in the hard fault,
Non-maskable Interrupt
(NMI), and
FAULTMASK escalated handlers.
See the register summary in
for the MPU_CTRL attributes. The bit
assignments are:
When ENABLE and PRIVDEFENA are both set to 1:
•
For privileged accesses, the
default memory map
is as described in
. Any access by privileged software that does not address an enabled memory
region behaves as defined by the default memory map.
•
Any access by unprivileged software that does not address an enabled memory region
causes a MemManage fault.
XN and Strongly-ordered rules always apply to the System Control Space regardless of the
value of the ENABLE bit.
31
1 0
Reserved
HFNMIENA
ENABLE
2
PRIVDEFENA
3
Table 4-40 MPU_CTRL register bit assignments
Bits
Name
Function
[31:3]
- Reserved.
[2]
PRIVDEFENA
Enables privileged software access to the default memory map:
0 = If the MPU is enabled, disables use of the default memory map. Any memory access to a
location not covered by any enabled region causes a fault.
1 = If the MPU is enabled, enables use of the default memory map as a background region for
privileged software accesses.
When enabled, the background region acts as if it is region number -1. Any region that is
defined and enabled has priority over this default map.
If the MPU is disabled, the processor ignores this bit.
[1]
HFNMIENA
Enables the operation of MPU during hard fault, NMI, and FAULTMASK handlers.
When the MPU is enabled:
0 = MPU is disabled during hard fault, NMI, and FAULTMASK handlers, regardless of the
value of the ENABLE bit
1 = the MPU is enabled during hard fault, NMI, and FAULTMASK handlers.
When the MPU is disabled, if this bit is set to 1 the behavior is Unpredictable.
[0]
ENABLE
Enables the MPU:
0 = MPU disabled
1 = MPU enabled.