8.2 Memory Protection Unit

The MPU works with the L1 memory system to control accesses to and from L1 and external memory. The MPU enables you to partition memory into regions and set individual protection attributes for each region.

The MPU is programmed using CP15 registers c1 and c6. Memory region control read and write access is permitted only from privileged modes.

The MPU enables you to partition memory into regions and set individual protection attributes for each region. The MPU supports 12, 16, 20, or 24 memory regions, depending on your implementation.

Each region is programmed with a base address and size, and the regions can be overlapped to enable efficient programming of the memory map. To support overlapping, the regions are assigned priorities, with region 0 having the lowest priority. For an MPU that has 16 memory regions, region 15 has the highest priority. The MPU returns access permissions and attributes for the highest priority region where the address hits.

For a full architectural description of the MPU and the memory map, see the ARM® Architecture Reference Manual ARMv7‑A and ARMv7‑R edition.

This section contains the following subsections:
Non-ConfidentialPDF file icon PDF versionARM 100400_0001_03_en
Copyright © 2015–2017 ARM Limited or its affiliates. All rights reserved.