OpenMPTL - ARM Cortex (common)
C++ Microprocessor Template Library
mpu.hpp
Go to the documentation of this file.
1 /*
2  * OpenMPTL - C++ Microprocessor Template Library
3  *
4  * Copyright (C) 2012-2017 Axel Burri <axel@tty0.ch>
5  *
6  * This program is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License as published by
8  * the Free Software Foundation; either version 3 of the License, or
9  * (at your option) any later version.
10  *
11  * This program is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with this program. If not, see <http://www.gnu.org/licenses/>.
18  *
19  */
20 
21 #ifndef ARM_CORTEX_COMMON_REG_MPU_HPP_INCLUDED
22 #define ARM_CORTEX_COMMON_REG_MPU_HPP_INCLUDED
23 
24 #include <register.hpp>
25 
26 namespace mptl {
27 
28 /**
29  * MPU (Memory Protection Unit) Register
30  *
31  * For details, see "Cortex-M3 Technical Reference Manual":
32  * <http://infocenter.arm.com/help/topic/com.arm.doc.subset.cortexm.m3/index.html>
33  */
34 struct MPU
35 {
36  using TYPE = reg< uint32_t, 0xE000ED90, ro, 0x00000800 >; /**< MPU Type Register */
37  using CTRL = reg< uint32_t, 0xE000ED94, rw >; /**< MPU Control Register */
38  using RNR = reg< uint32_t, 0xE000ED98, rw >; /**< MPU Region Number Register */
39  using RBAR = reg< uint32_t, 0xE000ED9C, rw >; /**< MPU Region Base Address Register */
40  using RASR = reg< uint32_t, 0xE000EDA0, rw >; /**< MPU Region Attribute and Size Register */
41  using RBAR_A1 = reg< uint32_t, 0xE000EDA4, rw >; /**< MPU alias registers */
47 };
48 
49 } // namespace mptl
50 
51 #endif // ARM_CORTEX_COMMON_REG_MPU_HPP_INCLUDED
MPU (Memory Protection Unit) Register.
Definition: mpu.hpp:34