1 <!-- HTML header for doxygen 1.9.6-->
2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3 <html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
5 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
6 <meta http-equiv="X-UA-Compatible" content="IE=11"/>
7 <meta name="viewport" content="width=device-width, initial-scale=1"/>
8 <title>CMSIS-Core (Cortex-M): MPU Functions for Armv8-M</title>
9 <link href="doxygen.css" rel="stylesheet" type="text/css" />
10 <script type="text/javascript" src="jquery.js"></script>
11 <script type="text/javascript" src="dynsections.js"></script>
12 <script type="text/javascript" src="tabs.js"></script>
13 <script type="text/javascript" src="footer.js"></script>
14 <script type="text/javascript" src="navtree.js"></script>
15 <link href="navtree.css" rel="stylesheet" type="text/css"/>
16 <script type="text/javascript" src="resize.js"></script>
17 <script type="text/javascript" src="navtreedata.js"></script>
18 <script type="text/javascript" src="navtree.js"></script>
19 <link href="search/search.css" rel="stylesheet" type="text/css"/>
20 <script type="text/javascript" src="search/searchdata.js"></script>
21 <script type="text/javascript" src="search/search.js"></script>
22 <script type="text/javascript">
23 /* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
24 $(document).ready(function() { init_search(); });
27 <script type="text/javascript" src="darkmode_toggle.js"></script>
28 <link href="extra_stylesheet.css" rel="stylesheet" type="text/css"/>
29 <link href="extra_navtree.css" rel="stylesheet" type="text/css"/>
30 <link href="extra_search.css" rel="stylesheet" type="text/css"/>
31 <link href="extra_tabs.css" rel="stylesheet" type="text/css"/>
32 <link href="version.css" rel="stylesheet" type="text/css"/>
33 <script type="text/javascript" src="../../version.js"></script>
36 <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
38 <table cellspacing="0" cellpadding="0">
40 <tr style="height: 55px;">
41 <td id="projectlogo" style="padding: 1.5em;"><img alt="Logo" src="cmsis_logo_white_small.png"/></td>
42 <td style="padding-left: 1em; padding-bottom: 1em;padding-top: 1em;">
43 <div id="projectname">CMSIS-Core (Cortex-M)
44  <span id="projectnumber"><script type="text/javascript">
46 writeHeader.call(this);
47 writeVersionDropdown.call(this, "CMSIS-Core (Cortex-M)");
52 <div id="projectbrief">CMSIS-Core support for Cortex-M processor-based devices</div>
54 <td> <div id="MSearchBox" class="MSearchBoxInactive">
56 <span id="MSearchSelect" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()"> </span>
57 <input type="text" id="MSearchField" value="" placeholder="Search" accesskey="S"
58 onfocus="searchBox.OnSearchFieldFocus(true)"
59 onblur="searchBox.OnSearchFieldFocus(false)"
60 onkeyup="searchBox.OnSearchFieldChange(event)"/>
61 </span><span class="right">
62 <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
66 <!--END !PROJECT_NAME-->
71 <!-- end header part -->
72 <div id="CMSISnav" class="tabs1">
74 <script type="text/javascript">
75 writeComponentTabs.call(this);
79 <script type="text/javascript">
80 writeSubComponentTabs.call(this);
82 <!-- Generated by Doxygen 1.9.6 -->
83 <script type="text/javascript">
84 /* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
85 var searchBox = new SearchBox("searchBox", "search/",'.html');
89 <div id="side-nav" class="ui-resizable side-nav-resizable">
91 <div id="nav-tree-contents">
92 <div id="nav-sync" class="sync"></div>
95 <div id="splitbar" style="-moz-user-select:none;"
96 class="ui-resizable-handle">
99 <script type="text/javascript">
100 /* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
101 $(document).ready(function(){initNavTree('group__mpu8__functions.html',''); initResizable(); });
104 <div id="doc-content">
105 <!-- window showing the filter options -->
106 <div id="MSearchSelectWindow"
107 onmouseover="return searchBox.OnSearchSelectShow()"
108 onmouseout="return searchBox.OnSearchSelectHide()"
109 onkeydown="return searchBox.OnSearchSelectKey(event)">
112 <!-- iframe showing the search results (closed by default) -->
113 <div id="MSearchResultsWindow">
114 <div id="MSearchResults">
117 <div id="SRResults"></div>
118 <div class="SRStatus" id="Loading">Loading...</div>
119 <div class="SRStatus" id="Searching">Searching...</div>
120 <div class="SRStatus" id="NoMatches">No Matches</div>
127 <div class="summary">
128 <a href="#nested-classes">Data Structures</a> |
129 <a href="#define-members">Macros</a> |
130 <a href="#func-members">Functions</a> </div>
131 <div class="headertitle"><div class="title">MPU Functions for Armv8-M</div></div>
133 <div class="contents">
135 <p>Functions that relate to the Memory Protection Unit.
136 <a href="#details">More...</a></p>
137 <table class="memberdecls">
138 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
139 Data Structures</h2></td></tr>
140 <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structARM__MPU__Region__t.html">ARM_MPU_Region_t</a></td></tr>
141 <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Setup information of a single MPU Region. <a href="structARM__MPU__Region__t.html#details">More...</a><br /></td></tr>
142 <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
143 </table><table class="memberdecls">
144 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="define-members" name="define-members"></a>
145 Macros</h2></td></tr>
146 <tr class="memitem:gab4bfac6284dc050dc6fa6aeb8e954c2c"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__mpu8__functions.html#gab4bfac6284dc050dc6fa6aeb8e954c2c">ARM_MPU_ATTR_DEVICE</a>   ( 0U )</td></tr>
147 <tr class="memdesc:gab4bfac6284dc050dc6fa6aeb8e954c2c"><td class="mdescLeft"> </td><td class="mdescRight">Attribute for device memory (outer only) <br /></td></tr>
148 <tr class="separator:gab4bfac6284dc050dc6fa6aeb8e954c2c"><td class="memSeparator" colspan="2"> </td></tr>
149 <tr class="memitem:ga03266f9660485693eb1baec6ba255ab2"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__mpu8__functions.html#ga03266f9660485693eb1baec6ba255ab2">ARM_MPU_ATTR_NON_CACHEABLE</a>   ( 4U )</td></tr>
150 <tr class="memdesc:ga03266f9660485693eb1baec6ba255ab2"><td class="mdescLeft"> </td><td class="mdescRight">Attribute for non-cacheable, normal memory. <br /></td></tr>
151 <tr class="separator:ga03266f9660485693eb1baec6ba255ab2"><td class="memSeparator" colspan="2"> </td></tr>
152 <tr class="memitem:gac2f1c567950e3785d75773362b525390"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__mpu8__functions.html#gac2f1c567950e3785d75773362b525390">ARM_MPU_ATTR_MEMORY_</a>(NT, WB, RA, WA)</td></tr>
153 <tr class="memdesc:gac2f1c567950e3785d75773362b525390"><td class="mdescLeft"> </td><td class="mdescRight">Attribute for Normal memory, Outer and Inner cacheability. <br /></td></tr>
154 <tr class="separator:gac2f1c567950e3785d75773362b525390"><td class="memSeparator" colspan="2"> </td></tr>
155 <tr class="memitem:gabfa9ae279357044cf5b74e77af22a686"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__mpu8__functions.html#gabfa9ae279357044cf5b74e77af22a686">ARM_MPU_ATTR_DEVICE_nGnRnE</a></td></tr>
156 <tr class="memdesc:gabfa9ae279357044cf5b74e77af22a686"><td class="mdescLeft"> </td><td class="mdescRight">Device memory type non Gathering, non Re-ordering, non Early Write Acknowledgement. <br /></td></tr>
157 <tr class="separator:gabfa9ae279357044cf5b74e77af22a686"><td class="memSeparator" colspan="2"> </td></tr>
158 <tr class="memitem:ga6e08ae44fab85e03fea96ae6a5fcdfb0"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__mpu8__functions.html#ga6e08ae44fab85e03fea96ae6a5fcdfb0">ARM_MPU_ATTR_DEVICE_nGnRE</a></td></tr>
159 <tr class="memdesc:ga6e08ae44fab85e03fea96ae6a5fcdfb0"><td class="mdescLeft"> </td><td class="mdescRight">Device memory type non Gathering, non Re-ordering, Early Write Acknowledgement. <br /></td></tr>
160 <tr class="separator:ga6e08ae44fab85e03fea96ae6a5fcdfb0"><td class="memSeparator" colspan="2"> </td></tr>
161 <tr class="memitem:gadcc9977aabb4dc7177d30cbbac1b53d1"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__mpu8__functions.html#gadcc9977aabb4dc7177d30cbbac1b53d1">ARM_MPU_ATTR_DEVICE_nGRE</a></td></tr>
162 <tr class="memdesc:gadcc9977aabb4dc7177d30cbbac1b53d1"><td class="mdescLeft"> </td><td class="mdescRight">Device memory type non Gathering, Re-ordering, Early Write Acknowledgement. <br /></td></tr>
163 <tr class="separator:gadcc9977aabb4dc7177d30cbbac1b53d1"><td class="memSeparator" colspan="2"> </td></tr>
164 <tr class="memitem:ga496bcd6a2bbd038d8935049fec9d0fda"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__mpu8__functions.html#ga496bcd6a2bbd038d8935049fec9d0fda">ARM_MPU_ATTR_DEVICE_GRE</a></td></tr>
165 <tr class="memdesc:ga496bcd6a2bbd038d8935049fec9d0fda"><td class="mdescLeft"> </td><td class="mdescRight">Device memory type Gathering, Re-ordering, Early Write Acknowledgement. <br /></td></tr>
166 <tr class="separator:ga496bcd6a2bbd038d8935049fec9d0fda"><td class="memSeparator" colspan="2"> </td></tr>
167 <tr class="memitem:gab0847e1992e71f74ed5a31316d22b7bd"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__mpu8__functions.html#gab0847e1992e71f74ed5a31316d22b7bd">MPU_ATTR_NORMAL_OUTER_NON_CACHEABLE</a></td></tr>
168 <tr class="memdesc:gab0847e1992e71f74ed5a31316d22b7bd"><td class="mdescLeft"> </td><td class="mdescRight">Normal memory outer-cacheable and inner-cacheable attributes WT = Write Through, WB = Write Back, TR = Transient, RA = Read-Allocate, WA = Write Allocate. <br /></td></tr>
169 <tr class="separator:gab0847e1992e71f74ed5a31316d22b7bd"><td class="memSeparator" colspan="2"> </td></tr>
170 <tr class="memitem:ga55c4d3e20300bbbb02b8567ed8f2b4e1"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__mpu8__functions.html#ga55c4d3e20300bbbb02b8567ed8f2b4e1">MPU_ATTR_NORMAL_OUTER_WT_TR_RA</a></td></tr>
171 <tr class="separator:ga55c4d3e20300bbbb02b8567ed8f2b4e1"><td class="memSeparator" colspan="2"> </td></tr>
172 <tr class="memitem:ga129149491f30c513784a3ffd28b59a48"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__mpu8__functions.html#ga129149491f30c513784a3ffd28b59a48">MPU_ATTR_NORMAL_OUTER_WT_TR_WA</a></td></tr>
173 <tr class="separator:ga129149491f30c513784a3ffd28b59a48"><td class="memSeparator" colspan="2"> </td></tr>
174 <tr class="memitem:ga9425e85dc19e840dd303094f79ed38e3"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__mpu8__functions.html#ga9425e85dc19e840dd303094f79ed38e3">MPU_ATTR_NORMAL_OUTER_WT_TR_RA_WA</a></td></tr>
175 <tr class="separator:ga9425e85dc19e840dd303094f79ed38e3"><td class="memSeparator" colspan="2"> </td></tr>
176 <tr class="memitem:gae321b8422975d41ac1c488ad4ea149c0"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__mpu8__functions.html#gae321b8422975d41ac1c488ad4ea149c0">MPU_ATTR_NORMAL_OUTER_WT_RA</a></td></tr>
177 <tr class="separator:gae321b8422975d41ac1c488ad4ea149c0"><td class="memSeparator" colspan="2"> </td></tr>
178 <tr class="memitem:ga9d1be17c0bd5895736d4ab352434f61e"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__mpu8__functions.html#ga9d1be17c0bd5895736d4ab352434f61e">MPU_ATTR_NORMAL_OUTER_WT_WA</a></td></tr>
179 <tr class="separator:ga9d1be17c0bd5895736d4ab352434f61e"><td class="memSeparator" colspan="2"> </td></tr>
180 <tr class="memitem:gaa7643b0faffce08a7e5598d720e1bfa5"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__mpu8__functions.html#gaa7643b0faffce08a7e5598d720e1bfa5">MPU_ATTR_NORMAL_OUTER_WT_RA_WA</a></td></tr>
181 <tr class="separator:gaa7643b0faffce08a7e5598d720e1bfa5"><td class="memSeparator" colspan="2"> </td></tr>
182 <tr class="memitem:ga0012b8fe0edfcac50ee368c44ae98123"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__mpu8__functions.html#ga0012b8fe0edfcac50ee368c44ae98123">MPU_ATTR_NORMAL_OUTER_WB_TR_RA</a></td></tr>
183 <tr class="separator:ga0012b8fe0edfcac50ee368c44ae98123"><td class="memSeparator" colspan="2"> </td></tr>
184 <tr class="memitem:ga934e2485b0df7a213a99896018786278"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__mpu8__functions.html#ga934e2485b0df7a213a99896018786278">MPU_ATTR_NORMAL_OUTER_WB_TR_WA</a></td></tr>
185 <tr class="separator:ga934e2485b0df7a213a99896018786278"><td class="memSeparator" colspan="2"> </td></tr>
186 <tr class="memitem:gac6951446163b7acc7ec945d81e35de5d"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__mpu8__functions.html#gac6951446163b7acc7ec945d81e35de5d">MPU_ATTR_NORMAL_OUTER_WB_TR_RA_WA</a></td></tr>
187 <tr class="separator:gac6951446163b7acc7ec945d81e35de5d"><td class="memSeparator" colspan="2"> </td></tr>
188 <tr class="memitem:gad5312c58ebef6849b86765e276bf614a"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__mpu8__functions.html#gad5312c58ebef6849b86765e276bf614a">MPU_ATTR_NORMAL_OUTER_WB_RA</a></td></tr>
189 <tr class="separator:gad5312c58ebef6849b86765e276bf614a"><td class="memSeparator" colspan="2"> </td></tr>
190 <tr class="memitem:ga9e83c355036cda1e65cc64f0dc6ca2a8"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__mpu8__functions.html#ga9e83c355036cda1e65cc64f0dc6ca2a8">MPU_ATTR_NORMAL_OUTER_WB_WA</a></td></tr>
191 <tr class="separator:ga9e83c355036cda1e65cc64f0dc6ca2a8"><td class="memSeparator" colspan="2"> </td></tr>
192 <tr class="memitem:ga72a1da6f37f307e4e7b122bec86bc63a"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__mpu8__functions.html#ga72a1da6f37f307e4e7b122bec86bc63a">MPU_ATTR_NORMAL_OUTER_WB_RA_WA</a></td></tr>
193 <tr class="separator:ga72a1da6f37f307e4e7b122bec86bc63a"><td class="memSeparator" colspan="2"> </td></tr>
194 <tr class="memitem:ga386cab980b576bc5f61388b659eea9a8"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__mpu8__functions.html#ga386cab980b576bc5f61388b659eea9a8">MPU_ATTR_NORMAL_INNER_NON_CACHEABLE</a></td></tr>
195 <tr class="separator:ga386cab980b576bc5f61388b659eea9a8"><td class="memSeparator" colspan="2"> </td></tr>
196 <tr class="memitem:ga8669f856b6f0132b6c4022916ca1ad94"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__mpu8__functions.html#ga8669f856b6f0132b6c4022916ca1ad94">MPU_ATTR_NORMAL_INNER_WT_TR_RA</a></td></tr>
197 <tr class="separator:ga8669f856b6f0132b6c4022916ca1ad94"><td class="memSeparator" colspan="2"> </td></tr>
198 <tr class="memitem:gac41f314de36519d6ebde13a1e997c65f"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__mpu8__functions.html#gac41f314de36519d6ebde13a1e997c65f">MPU_ATTR_NORMAL_INNER_WT_TR_WA</a></td></tr>
199 <tr class="separator:gac41f314de36519d6ebde13a1e997c65f"><td class="memSeparator" colspan="2"> </td></tr>
200 <tr class="memitem:gac1c0b1a3b22d0c0ea875355039eae4c0"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__mpu8__functions.html#gac1c0b1a3b22d0c0ea875355039eae4c0">MPU_ATTR_NORMAL_INNER_WT_TR_RA_WA</a></td></tr>
201 <tr class="separator:gac1c0b1a3b22d0c0ea875355039eae4c0"><td class="memSeparator" colspan="2"> </td></tr>
202 <tr class="memitem:gaa865e157ac3fc278d39c5c688165252b"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__mpu8__functions.html#gaa865e157ac3fc278d39c5c688165252b">MPU_ATTR_NORMAL_INNER_WT_RA</a></td></tr>
203 <tr class="separator:gaa865e157ac3fc278d39c5c688165252b"><td class="memSeparator" colspan="2"> </td></tr>
204 <tr class="memitem:ga4550de69e30075efc70213a79b929e92"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__mpu8__functions.html#ga4550de69e30075efc70213a79b929e92">MPU_ATTR_NORMAL_INNER_WT_WA</a></td></tr>
205 <tr class="separator:ga4550de69e30075efc70213a79b929e92"><td class="memSeparator" colspan="2"> </td></tr>
206 <tr class="memitem:gae871e61119bdab6409a01fd45aa28811"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__mpu8__functions.html#gae871e61119bdab6409a01fd45aa28811">MPU_ATTR_NORMAL_INNER_WT_RA_WA</a></td></tr>
207 <tr class="separator:gae871e61119bdab6409a01fd45aa28811"><td class="memSeparator" colspan="2"> </td></tr>
208 <tr class="memitem:ga9ae76961b518f86ba1d390913f4ee45e"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__mpu8__functions.html#ga9ae76961b518f86ba1d390913f4ee45e">MPU_ATTR_NORMAL_INNER_WB_TR_RA</a></td></tr>
209 <tr class="separator:ga9ae76961b518f86ba1d390913f4ee45e"><td class="memSeparator" colspan="2"> </td></tr>
210 <tr class="memitem:ga2e30e4ab7f3aee0a16399f6de178e532"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__mpu8__functions.html#ga2e30e4ab7f3aee0a16399f6de178e532">MPU_ATTR_NORMAL_INNER_WB_TR_WA</a></td></tr>
211 <tr class="separator:ga2e30e4ab7f3aee0a16399f6de178e532"><td class="memSeparator" colspan="2"> </td></tr>
212 <tr class="memitem:gaf63176f20e4a30bd283463c98c363cf2"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__mpu8__functions.html#gaf63176f20e4a30bd283463c98c363cf2">MPU_ATTR_NORMAL_INNER_WB_TR_RA_WA</a></td></tr>
213 <tr class="separator:gaf63176f20e4a30bd283463c98c363cf2"><td class="memSeparator" colspan="2"> </td></tr>
214 <tr class="memitem:ga17b7f3281e42f8507336f709520e9785"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__mpu8__functions.html#ga17b7f3281e42f8507336f709520e9785">MPU_ATTR_NORMAL_INNER_WB_RA</a></td></tr>
215 <tr class="separator:ga17b7f3281e42f8507336f709520e9785"><td class="memSeparator" colspan="2"> </td></tr>
216 <tr class="memitem:gacb7962caa69fd238b5d8bbfb60a7a959"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__mpu8__functions.html#gacb7962caa69fd238b5d8bbfb60a7a959">MPU_ATTR_NORMAL_INNER_WB_WA</a></td></tr>
217 <tr class="separator:gacb7962caa69fd238b5d8bbfb60a7a959"><td class="memSeparator" colspan="2"> </td></tr>
218 <tr class="memitem:ga61c99cef4678523dd070d863a7385cec"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__mpu8__functions.html#ga61c99cef4678523dd070d863a7385cec">MPU_ATTR_NORMAL_INNER_WB_RA_WA</a></td></tr>
219 <tr class="separator:ga61c99cef4678523dd070d863a7385cec"><td class="memSeparator" colspan="2"> </td></tr>
220 <tr class="memitem:ga2c465cc9429b8233bcb9cd7cbef0e54c"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__mpu8__functions.html#ga2c465cc9429b8233bcb9cd7cbef0e54c">ARM_MPU_ATTR</a>(O, I)</td></tr>
221 <tr class="memdesc:ga2c465cc9429b8233bcb9cd7cbef0e54c"><td class="mdescLeft"> </td><td class="mdescRight">Memory Attribute. <br /></td></tr>
222 <tr class="separator:ga2c465cc9429b8233bcb9cd7cbef0e54c"><td class="memSeparator" colspan="2"> </td></tr>
223 <tr class="memitem:ga3d0f688198289f72264f73cf72a742e8"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__mpu8__functions.html#ga3d0f688198289f72264f73cf72a742e8">ARM_MPU_SH_NON</a></td></tr>
224 <tr class="memdesc:ga3d0f688198289f72264f73cf72a742e8"><td class="mdescLeft"> </td><td class="mdescRight">Normal memory non-shareable <br />
226 <tr class="separator:ga3d0f688198289f72264f73cf72a742e8"><td class="memSeparator" colspan="2"> </td></tr>
227 <tr class="memitem:gac4fddbdb9e1350bce6906de33c1fd500"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__mpu8__functions.html#gac4fddbdb9e1350bce6906de33c1fd500">ARM_MPU_SH_OUTER</a></td></tr>
228 <tr class="memdesc:gac4fddbdb9e1350bce6906de33c1fd500"><td class="mdescLeft"> </td><td class="mdescRight">Normal memory outer shareable <br />
230 <tr class="separator:gac4fddbdb9e1350bce6906de33c1fd500"><td class="memSeparator" colspan="2"> </td></tr>
231 <tr class="memitem:ga73c70127f24f34781ad463cbe51d8f6b"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__mpu8__functions.html#ga73c70127f24f34781ad463cbe51d8f6b">ARM_MPU_SH_INNER</a></td></tr>
232 <tr class="memdesc:ga73c70127f24f34781ad463cbe51d8f6b"><td class="mdescLeft"> </td><td class="mdescRight">Normal memory inner shareable <br />
234 <tr class="separator:ga73c70127f24f34781ad463cbe51d8f6b"><td class="memSeparator" colspan="2"> </td></tr>
235 <tr class="memitem:ga17ea49d510a4e30ff6026eed9302ae54"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__mpu8__functions.html#ga17ea49d510a4e30ff6026eed9302ae54">ARM_MPU_AP_RW</a></td></tr>
236 <tr class="memdesc:ga17ea49d510a4e30ff6026eed9302ae54"><td class="mdescLeft"> </td><td class="mdescRight">Normal memory, read/write. <br /></td></tr>
237 <tr class="separator:ga17ea49d510a4e30ff6026eed9302ae54"><td class="memSeparator" colspan="2"> </td></tr>
238 <tr class="memitem:ga64e249c7c678144b52493a4b6f8f6b3c"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__mpu8__functions.html#ga64e249c7c678144b52493a4b6f8f6b3c">ARM_MPU_AP_RO</a></td></tr>
239 <tr class="memdesc:ga64e249c7c678144b52493a4b6f8f6b3c"><td class="mdescLeft"> </td><td class="mdescRight">Normal memory, read-only. <br /></td></tr>
240 <tr class="separator:ga64e249c7c678144b52493a4b6f8f6b3c"><td class="memSeparator" colspan="2"> </td></tr>
241 <tr class="memitem:gae62d5195b6ab6082a3f4a2584c101fab"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__mpu8__functions.html#gae62d5195b6ab6082a3f4a2584c101fab">ARM_MPU_AP_NP</a></td></tr>
242 <tr class="memdesc:gae62d5195b6ab6082a3f4a2584c101fab"><td class="mdescLeft"> </td><td class="mdescRight">Normal memory, any privilege level. <br /></td></tr>
243 <tr class="separator:gae62d5195b6ab6082a3f4a2584c101fab"><td class="memSeparator" colspan="2"> </td></tr>
244 <tr class="memitem:ga52386005c0529821308140cf86e6d1a5"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__mpu8__functions.html#ga52386005c0529821308140cf86e6d1a5">ARM_MPU_AP_PO</a></td></tr>
245 <tr class="memdesc:ga52386005c0529821308140cf86e6d1a5"><td class="mdescLeft"> </td><td class="mdescRight">Normal memory, privileged access only. <br /></td></tr>
246 <tr class="separator:ga52386005c0529821308140cf86e6d1a5"><td class="memSeparator" colspan="2"> </td></tr>
247 <tr class="memitem:ga8127782b882cbb8419519fc6c98a0b6b"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__mpu8__functions.html#ga8127782b882cbb8419519fc6c98a0b6b">ARM_MPU_XN</a></td></tr>
248 <tr class="memdesc:ga8127782b882cbb8419519fc6c98a0b6b"><td class="mdescLeft"> </td><td class="mdescRight">Normal memory, Execution only permitted if read permitted. <br /></td></tr>
249 <tr class="separator:ga8127782b882cbb8419519fc6c98a0b6b"><td class="memSeparator" colspan="2"> </td></tr>
250 <tr class="memitem:ga613533046759fd317008e9937cda62de"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__mpu8__functions.html#ga613533046759fd317008e9937cda62de">ARM_MPU_EX</a></td></tr>
251 <tr class="memdesc:ga613533046759fd317008e9937cda62de"><td class="mdescLeft"> </td><td class="mdescRight">Normal memory, Execution only permitted if read permitted. <br /></td></tr>
252 <tr class="separator:ga613533046759fd317008e9937cda62de"><td class="memSeparator" colspan="2"> </td></tr>
253 <tr class="memitem:ga81b2aa3fb55cdd5feadff02da10d391b"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__mpu8__functions.html#ga81b2aa3fb55cdd5feadff02da10d391b">ARM_MPU_AP_</a>(RO, NP)</td></tr>
254 <tr class="memdesc:ga81b2aa3fb55cdd5feadff02da10d391b"><td class="mdescLeft"> </td><td class="mdescRight">Memory access permissions. <br /></td></tr>
255 <tr class="separator:ga81b2aa3fb55cdd5feadff02da10d391b"><td class="memSeparator" colspan="2"> </td></tr>
256 <tr class="memitem:gafe39c2f98058bcac7e7e0501e64e7a9d"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__mpu8__functions.html#gafe39c2f98058bcac7e7e0501e64e7a9d">ARM_MPU_RBAR</a>(BASE, SH, RO, NP, XN)</td></tr>
257 <tr class="memdesc:gafe39c2f98058bcac7e7e0501e64e7a9d"><td class="mdescLeft"> </td><td class="mdescRight">Region Base Address Register value. <br /></td></tr>
258 <tr class="separator:gafe39c2f98058bcac7e7e0501e64e7a9d"><td class="memSeparator" colspan="2"> </td></tr>
259 <tr class="memitem:gaeaaa071276ba7956944e6c3dc05d677e"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__mpu8__functions.html#gaeaaa071276ba7956944e6c3dc05d677e">ARM_MPU_RLAR</a>(LIMIT, IDX)</td></tr>
260 <tr class="memdesc:gaeaaa071276ba7956944e6c3dc05d677e"><td class="mdescLeft"> </td><td class="mdescRight">Region Limit Address Register value. <br /></td></tr>
261 <tr class="separator:gaeaaa071276ba7956944e6c3dc05d677e"><td class="memSeparator" colspan="2"> </td></tr>
262 <tr class="memitem:ga5bff4d6cfaa678776b3b1eab4af70f95"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__mpu8__functions.html#ga5bff4d6cfaa678776b3b1eab4af70f95">ARM_MPU_RLAR_PXN</a>(LIMIT, PXN, IDX)</td></tr>
263 <tr class="memdesc:ga5bff4d6cfaa678776b3b1eab4af70f95"><td class="mdescLeft"> </td><td class="mdescRight">Region Limit Address Register with PXN value. <br /></td></tr>
264 <tr class="separator:ga5bff4d6cfaa678776b3b1eab4af70f95"><td class="memSeparator" colspan="2"> </td></tr>
265 </table><table class="memberdecls">
266 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
267 Functions</h2></td></tr>
268 <tr class="memitem:gabd11943b38cdf185dcb8e60e459d5854"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__compiler__conntrol__gr.html#gaba87361bfad2ae52cfe2f40c1a1dbf9c">__STATIC_INLINE</a> uint32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__mpu8__functions.html#gabd11943b38cdf185dcb8e60e459d5854">ARM_MPU_TYPE</a> ()</td></tr>
269 <tr class="memdesc:gabd11943b38cdf185dcb8e60e459d5854"><td class="mdescLeft"> </td><td class="mdescRight">Read MPU Type Register. <br /></td></tr>
270 <tr class="separator:gabd11943b38cdf185dcb8e60e459d5854"><td class="memSeparator" colspan="2"> </td></tr>
271 <tr class="memitem:ga5a3f40314553baccdeea551f86d9a997"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__compiler__conntrol__gr.html#gaba87361bfad2ae52cfe2f40c1a1dbf9c">__STATIC_INLINE</a> void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__mpu8__functions.html#ga5a3f40314553baccdeea551f86d9a997">ARM_MPU_Enable</a> (uint32_t MPU_Control)</td></tr>
272 <tr class="memdesc:ga5a3f40314553baccdeea551f86d9a997"><td class="mdescLeft"> </td><td class="mdescRight">Enable the MPU. <br /></td></tr>
273 <tr class="separator:ga5a3f40314553baccdeea551f86d9a997"><td class="memSeparator" colspan="2"> </td></tr>
274 <tr class="memitem:ga61814eba4652a0fdfb76bbe222086327"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__compiler__conntrol__gr.html#gaba87361bfad2ae52cfe2f40c1a1dbf9c">__STATIC_INLINE</a> void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__mpu8__functions.html#ga61814eba4652a0fdfb76bbe222086327">ARM_MPU_Disable</a> (void)</td></tr>
275 <tr class="separator:ga61814eba4652a0fdfb76bbe222086327"><td class="memSeparator" colspan="2"> </td></tr>
276 <tr class="memitem:ga5866c75d6deb9148a1e9af6337eec50a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__compiler__conntrol__gr.html#gaba87361bfad2ae52cfe2f40c1a1dbf9c">__STATIC_INLINE</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__mpu8__functions.html#ga5866c75d6deb9148a1e9af6337eec50a">ARM_MPU_Enable_NS</a> (uint32_t MPU_Control)</td></tr>
277 <tr class="separator:ga5866c75d6deb9148a1e9af6337eec50a"><td class="memSeparator" colspan="2"> </td></tr>
278 <tr class="memitem:ga389f9b6049d176bc83f9964d3259b712"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__compiler__conntrol__gr.html#gaba87361bfad2ae52cfe2f40c1a1dbf9c">__STATIC_INLINE</a> void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__mpu8__functions.html#ga389f9b6049d176bc83f9964d3259b712">ARM_MPU_Disable_NS</a> (void)</td></tr>
279 <tr class="separator:ga389f9b6049d176bc83f9964d3259b712"><td class="memSeparator" colspan="2"> </td></tr>
280 <tr class="memitem:ga1799413f08a157d636a1491371c15ce2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__compiler__conntrol__gr.html#gaba87361bfad2ae52cfe2f40c1a1dbf9c">__STATIC_INLINE</a> void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__mpu8__functions.html#ga1799413f08a157d636a1491371c15ce2">ARM_MPU_SetMemAttrEx</a> (<a class="el" href="structMPU__Type.html">MPU_Type</a> *mpu, uint8_t idx, uint8_t attr)</td></tr>
281 <tr class="separator:ga1799413f08a157d636a1491371c15ce2"><td class="memSeparator" colspan="2"> </td></tr>
282 <tr class="memitem:gab5b3c0a53d19c09a5550f1d9071ae65c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__compiler__conntrol__gr.html#gaba87361bfad2ae52cfe2f40c1a1dbf9c">__STATIC_INLINE</a> void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__mpu8__functions.html#gab5b3c0a53d19c09a5550f1d9071ae65c">ARM_MPU_SetMemAttr</a> (uint8_t idx, uint8_t attr)</td></tr>
283 <tr class="separator:gab5b3c0a53d19c09a5550f1d9071ae65c"><td class="memSeparator" colspan="2"> </td></tr>
284 <tr class="memitem:ga5100a150a755902af2455a455a329ef9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__compiler__conntrol__gr.html#gaba87361bfad2ae52cfe2f40c1a1dbf9c">__STATIC_INLINE</a> void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__mpu8__functions.html#ga5100a150a755902af2455a455a329ef9">ARM_MPU_SetMemAttr_NS</a> (uint8_t idx, uint8_t attr)</td></tr>
285 <tr class="separator:ga5100a150a755902af2455a455a329ef9"><td class="memSeparator" colspan="2"> </td></tr>
286 <tr class="memitem:ga01fa1151c9ec0ba5de76f908c0999316"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__compiler__conntrol__gr.html#gaba87361bfad2ae52cfe2f40c1a1dbf9c">__STATIC_INLINE</a> void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__mpu8__functions.html#ga01fa1151c9ec0ba5de76f908c0999316">ARM_MPU_ClrRegionEx</a> (<a class="el" href="structMPU__Type.html">MPU_Type</a> *mpu, uint32_t rnr)</td></tr>
287 <tr class="separator:ga01fa1151c9ec0ba5de76f908c0999316"><td class="memSeparator" colspan="2"> </td></tr>
288 <tr class="memitem:ga9dcb0afddf4ac351f33f3c7a5169c62c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__compiler__conntrol__gr.html#gaba87361bfad2ae52cfe2f40c1a1dbf9c">__STATIC_INLINE</a> void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__mpu8__functions.html#ga9dcb0afddf4ac351f33f3c7a5169c62c">ARM_MPU_ClrRegion</a> (uint32_t rnr)</td></tr>
289 <tr class="separator:ga9dcb0afddf4ac351f33f3c7a5169c62c"><td class="memSeparator" colspan="2"> </td></tr>
290 <tr class="memitem:gac526bc5bfcf048ce57a44c0c0cdadbe4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__compiler__conntrol__gr.html#gaba87361bfad2ae52cfe2f40c1a1dbf9c">__STATIC_INLINE</a> void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__mpu8__functions.html#gac526bc5bfcf048ce57a44c0c0cdadbe4">ARM_MPU_ClrRegion_NS</a> (uint32_t rnr)</td></tr>
291 <tr class="separator:gac526bc5bfcf048ce57a44c0c0cdadbe4"><td class="memSeparator" colspan="2"> </td></tr>
292 <tr class="memitem:ga3d50ba8546252bea959e45c8fdf16993"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__compiler__conntrol__gr.html#gaba87361bfad2ae52cfe2f40c1a1dbf9c">__STATIC_INLINE</a> void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__mpu8__functions.html#ga3d50ba8546252bea959e45c8fdf16993">ARM_MPU_SetRegionEx</a> (<a class="el" href="structMPU__Type.html">MPU_Type</a> *mpu, uint32_t rnr, uint32_t rbar, uint32_t rlar)</td></tr>
293 <tr class="separator:ga3d50ba8546252bea959e45c8fdf16993"><td class="memSeparator" colspan="2"> </td></tr>
294 <tr class="memitem:ga6d7f220015c070c0e469948c1775ee3d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__compiler__conntrol__gr.html#gaba87361bfad2ae52cfe2f40c1a1dbf9c">__STATIC_INLINE</a> void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__mpu8__functions.html#ga6d7f220015c070c0e469948c1775ee3d">ARM_MPU_SetRegion</a> (uint32_t rnr, uint32_t rbar, uint32_t rlar)</td></tr>
295 <tr class="separator:ga6d7f220015c070c0e469948c1775ee3d"><td class="memSeparator" colspan="2"> </td></tr>
296 <tr class="memitem:ga7566931ca9bb9f22d213a67ec5f8c745"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__compiler__conntrol__gr.html#gaba87361bfad2ae52cfe2f40c1a1dbf9c">__STATIC_INLINE</a> void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__mpu8__functions.html#ga7566931ca9bb9f22d213a67ec5f8c745">ARM_MPU_SetRegion_NS</a> (uint32_t rnr, uint32_t rbar, uint32_t rlar)</td></tr>
297 <tr class="separator:ga7566931ca9bb9f22d213a67ec5f8c745"><td class="memSeparator" colspan="2"> </td></tr>
298 <tr class="memitem:gac1a949403bf84eecaf407003fb553ae7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__compiler__conntrol__gr.html#gaba87361bfad2ae52cfe2f40c1a1dbf9c">__STATIC_INLINE</a> void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__mpu8__functions.html#gac1a949403bf84eecaf407003fb553ae7">ARM_MPU_OrderedMemcpy</a> (volatile uint32_t *dst, const uint32_t *<a class="el" href="group__compiler__conntrol__gr.html#ga378ac21329d33f561f90265eef89f564">__RESTRICT</a> src, uint32_t len)</td></tr>
299 <tr class="separator:gac1a949403bf84eecaf407003fb553ae7"><td class="memSeparator" colspan="2"> </td></tr>
300 <tr class="memitem:gab6094419f2abd678f1f3b121cd115049"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__compiler__conntrol__gr.html#gaba87361bfad2ae52cfe2f40c1a1dbf9c">__STATIC_INLINE</a> void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__mpu8__functions.html#gab6094419f2abd678f1f3b121cd115049">ARM_MPU_LoadEx</a> (<a class="el" href="structMPU__Type.html">MPU_Type</a> *mpu, uint32_t rnr, <a class="el" href="structARM__MPU__Region__t.html">ARM_MPU_Region_t</a> const *table, uint32_t cnt)</td></tr>
301 <tr class="separator:gab6094419f2abd678f1f3b121cd115049"><td class="memSeparator" colspan="2"> </td></tr>
302 <tr class="memitem:gaca76614e3091c7324aa9d60e634621bf"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__compiler__conntrol__gr.html#gaba87361bfad2ae52cfe2f40c1a1dbf9c">__STATIC_INLINE</a> void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__mpu8__functions.html#gaca76614e3091c7324aa9d60e634621bf">ARM_MPU_Load</a> (uint32_t rnr, <a class="el" href="structARM__MPU__Region__t.html">ARM_MPU_Region_t</a> const *table, uint32_t cnt)</td></tr>
303 <tr class="separator:gaca76614e3091c7324aa9d60e634621bf"><td class="memSeparator" colspan="2"> </td></tr>
304 <tr class="memitem:ga7f8c6e09be98067d613e4df1832c543d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__compiler__conntrol__gr.html#gaba87361bfad2ae52cfe2f40c1a1dbf9c">__STATIC_INLINE</a> void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__mpu8__functions.html#ga7f8c6e09be98067d613e4df1832c543d">ARM_MPU_Load_NS</a> (uint32_t rnr, <a class="el" href="structARM__MPU__Region__t.html">ARM_MPU_Region_t</a> const *table, uint32_t cnt)</td></tr>
305 <tr class="separator:ga7f8c6e09be98067d613e4df1832c543d"><td class="memSeparator" colspan="2"> </td></tr>
307 <a name="details" id="details"></a><h2 class="groupheader">Description</h2>
308 <p>Functions that relate to the Memory Protection Unit. </p>
309 <p>The following functions support the optional Memory Protection Unit (MPU) that is available on the Cortex-M23, M33, M35P processor.</p>
310 <p>The MPU is used to prevent from illegal memory accesses that are typically caused by errors in an application software.</p>
311 <p><b>Example:</b> </p><div class="fragment"><div class="line"><span class="keywordtype">int</span> main() </div>
312 <div class="line">{</div>
313 <div class="line"> <span class="comment">// Set Region 0 using Attr 0</span></div>
314 <div class="line"> <a class="code hl_function" href="group__mpu8__functions.html#gab5b3c0a53d19c09a5550f1d9071ae65c">ARM_MPU_SetMemAttr</a>(0UL, <a class="code hl_define" href="group__mpu8__functions.html#ga2c465cc9429b8233bcb9cd7cbef0e54c">ARM_MPU_ATTR</a>( <span class="comment">/* Normal memory */</span></div>
315 <div class="line"> <a class="code hl_define" href="group__mpu8__functions.html#ga9425e85dc19e840dd303094f79ed38e3">MPU_ATTR_NORMAL_OUTER_WT_TR_RA_WA</a>, <span class="comment">/* Outer Write-Back transient with read and write allocate */</span></div>
316 <div class="line"> <a class="code hl_define" href="group__mpu8__functions.html#gac1c0b1a3b22d0c0ea875355039eae4c0">MPU_ATTR_NORMAL_INNER_WT_TR_RA_WA</a> <span class="comment">/* Inner Write-Through transient with read and write allocate */</span></div>
317 <div class="line"> ));</div>
318 <div class="line"> </div>
319 <div class="line"> <a class="code hl_function" href="group__mpu__functions.html#ga16931f9ad84d7289e8218e169ae6db5d">ARM_MPU_SetRegion</a>(0UL,</div>
320 <div class="line"> <a class="code hl_define" href="group__mpu__functions.html#ga3fead12dc24a6d00ad53f55a042486ca">ARM_MPU_RBAR</a>(0x08000000UL, <a class="code hl_define" href="group__mpu8__functions.html#ga3d0f688198289f72264f73cf72a742e8">ARM_MPU_SH_NON</a>, <a class="code hl_define" href="group__mpu8__functions.html#ga17ea49d510a4e30ff6026eed9302ae54">ARM_MPU_AP_RW</a>, <a class="code hl_define" href="group__mpu8__functions.html#gae62d5195b6ab6082a3f4a2584c101fab">ARM_MPU_AP_NP</a>, <a class="code hl_define" href="group__mpu8__functions.html#ga8127782b882cbb8419519fc6c98a0b6b">ARM_MPU_XN</a>), <span class="comment">/* Non-shareable, read/write, non-privileged, execute-never */</span></div>
321 <div class="line"> <a class="code hl_define" href="group__mpu8__functions.html#gaeaaa071276ba7956944e6c3dc05d677e">ARM_MPU_RLAR</a>(0x080FFFFFUL, MAIR_ATTR(0)) <span class="comment">/* 1MB memory block using Attr 0 */</span></div>
322 <div class="line"> );</div>
323 <div class="line"> </div>
324 <div class="line"> <a class="code hl_function" href="group__mpu__functions.html#ga31406efd492ec9a091a70ffa2d8a42fb">ARM_MPU_Enable</a>(0);</div>
325 <div class="line"> </div>
326 <div class="line"> <span class="comment">// Execute application code that is access protected by the MPU</span></div>
327 <div class="line"> </div>
328 <div class="line"> <a class="code hl_function" href="group__mpu__functions.html#ga7cbc0a4a066ed90e85c8176228235d57">ARM_MPU_Disable</a>();</div>
329 <div class="line">}</div>
330 <div class="ttc" id="agroup__mpu8__functions_html_ga17ea49d510a4e30ff6026eed9302ae54"><div class="ttname"><a href="group__mpu8__functions.html#ga17ea49d510a4e30ff6026eed9302ae54">ARM_MPU_AP_RW</a></div><div class="ttdeci">#define ARM_MPU_AP_RW</div><div class="ttdoc">Normal memory, read/write.</div><div class="ttdef"><b>Definition:</b> ref_mpu8.txt:114</div></div>
331 <div class="ttc" id="agroup__mpu8__functions_html_ga2c465cc9429b8233bcb9cd7cbef0e54c"><div class="ttname"><a href="group__mpu8__functions.html#ga2c465cc9429b8233bcb9cd7cbef0e54c">ARM_MPU_ATTR</a></div><div class="ttdeci">#define ARM_MPU_ATTR(O, I)</div><div class="ttdoc">Memory Attribute.</div><div class="ttdef"><b>Definition:</b> ref_mpu8.txt:95</div></div>
332 <div class="ttc" id="agroup__mpu8__functions_html_ga3d0f688198289f72264f73cf72a742e8"><div class="ttname"><a href="group__mpu8__functions.html#ga3d0f688198289f72264f73cf72a742e8">ARM_MPU_SH_NON</a></div><div class="ttdeci">#define ARM_MPU_SH_NON</div><div class="ttdoc">Normal memory non-shareable</div><div class="ttdef"><b>Definition:</b> ref_mpu8.txt:101</div></div>
333 <div class="ttc" id="agroup__mpu8__functions_html_ga8127782b882cbb8419519fc6c98a0b6b"><div class="ttname"><a href="group__mpu8__functions.html#ga8127782b882cbb8419519fc6c98a0b6b">ARM_MPU_XN</a></div><div class="ttdeci">#define ARM_MPU_XN</div><div class="ttdoc">Normal memory, Execution only permitted if read permitted.</div><div class="ttdef"><b>Definition:</b> ref_mpu8.txt:130</div></div>
334 <div class="ttc" id="agroup__mpu8__functions_html_ga9425e85dc19e840dd303094f79ed38e3"><div class="ttname"><a href="group__mpu8__functions.html#ga9425e85dc19e840dd303094f79ed38e3">MPU_ATTR_NORMAL_OUTER_WT_TR_RA_WA</a></div><div class="ttdeci">#define MPU_ATTR_NORMAL_OUTER_WT_TR_RA_WA</div><div class="ttdef"><b>Definition:</b> ref_mpu8.txt:67</div></div>
335 <div class="ttc" id="agroup__mpu8__functions_html_gab5b3c0a53d19c09a5550f1d9071ae65c"><div class="ttname"><a href="group__mpu8__functions.html#gab5b3c0a53d19c09a5550f1d9071ae65c">ARM_MPU_SetMemAttr</a></div><div class="ttdeci">__STATIC_INLINE void ARM_MPU_SetMemAttr(uint8_t idx, uint8_t attr)</div></div>
336 <div class="ttc" id="agroup__mpu8__functions_html_gac1c0b1a3b22d0c0ea875355039eae4c0"><div class="ttname"><a href="group__mpu8__functions.html#gac1c0b1a3b22d0c0ea875355039eae4c0">MPU_ATTR_NORMAL_INNER_WT_TR_RA_WA</a></div><div class="ttdeci">#define MPU_ATTR_NORMAL_INNER_WT_TR_RA_WA</div><div class="ttdef"><b>Definition:</b> ref_mpu8.txt:80</div></div>
337 <div class="ttc" id="agroup__mpu8__functions_html_gae62d5195b6ab6082a3f4a2584c101fab"><div class="ttname"><a href="group__mpu8__functions.html#gae62d5195b6ab6082a3f4a2584c101fab">ARM_MPU_AP_NP</a></div><div class="ttdeci">#define ARM_MPU_AP_NP</div><div class="ttdoc">Normal memory, any privilege level.</div><div class="ttdef"><b>Definition:</b> ref_mpu8.txt:120</div></div>
338 <div class="ttc" id="agroup__mpu8__functions_html_gaeaaa071276ba7956944e6c3dc05d677e"><div class="ttname"><a href="group__mpu8__functions.html#gaeaaa071276ba7956944e6c3dc05d677e">ARM_MPU_RLAR</a></div><div class="ttdeci">#define ARM_MPU_RLAR(LIMIT, IDX)</div><div class="ttdoc">Region Limit Address Register value.</div><div class="ttdef"><b>Definition:</b> ref_mpu8.txt:154</div></div>
339 <div class="ttc" id="agroup__mpu__functions_html_ga16931f9ad84d7289e8218e169ae6db5d"><div class="ttname"><a href="group__mpu__functions.html#ga16931f9ad84d7289e8218e169ae6db5d">ARM_MPU_SetRegion</a></div><div class="ttdeci">__STATIC_INLINE void ARM_MPU_SetRegion(uint32_t rbar, uint32_t rasr)</div></div>
340 <div class="ttc" id="agroup__mpu__functions_html_ga31406efd492ec9a091a70ffa2d8a42fb"><div class="ttname"><a href="group__mpu__functions.html#ga31406efd492ec9a091a70ffa2d8a42fb">ARM_MPU_Enable</a></div><div class="ttdeci">__STATIC_INLINE void ARM_MPU_Enable(uint32_t MPU_CTRL)</div><div class="ttdoc">Enable the memory protection unit (MPU) and.</div></div>
341 <div class="ttc" id="agroup__mpu__functions_html_ga3fead12dc24a6d00ad53f55a042486ca"><div class="ttname"><a href="group__mpu__functions.html#ga3fead12dc24a6d00ad53f55a042486ca">ARM_MPU_RBAR</a></div><div class="ttdeci">#define ARM_MPU_RBAR(Region, BaseAddress)</div><div class="ttdoc">MPU Region Base Address Register Value.</div><div class="ttdef"><b>Definition:</b> ref_mpu.txt:41</div></div>
342 <div class="ttc" id="agroup__mpu__functions_html_ga7cbc0a4a066ed90e85c8176228235d57"><div class="ttname"><a href="group__mpu__functions.html#ga7cbc0a4a066ed90e85c8176228235d57">ARM_MPU_Disable</a></div><div class="ttdeci">__STATIC_INLINE void ARM_MPU_Disable()</div></div>
343 </div><!-- fragment --> <h2 class="groupheader">Macro Definition Documentation</h2>
344 <a id="ga81b2aa3fb55cdd5feadff02da10d391b" name="ga81b2aa3fb55cdd5feadff02da10d391b"></a>
345 <h2 class="memtitle"><span class="permalink"><a href="#ga81b2aa3fb55cdd5feadff02da10d391b">◆ </a></span>ARM_MPU_AP_</h2>
347 <div class="memitem">
348 <div class="memproto">
349 <table class="memname">
351 <td class="memname">#define ARM_MPU_AP_</td>
353 <td class="paramtype"> </td>
354 <td class="paramname">RO, </td>
357 <td class="paramkey"></td>
359 <td class="paramtype"> </td>
360 <td class="paramname">NP </td>
368 </div><div class="memdoc">
370 <p>Memory access permissions. </p>
371 <dl class="params"><dt>Parameters</dt><dd>
372 <table class="params">
373 <tr><td class="paramname">RO</td><td>Read-Only: Set to 1 for read-only memory. </td></tr>
374 <tr><td class="paramname">NP</td><td>Non-Privileged: Set to 1 for non-privileged memory. </td></tr>
381 <a id="gae62d5195b6ab6082a3f4a2584c101fab" name="gae62d5195b6ab6082a3f4a2584c101fab"></a>
382 <h2 class="memtitle"><span class="permalink"><a href="#gae62d5195b6ab6082a3f4a2584c101fab">◆ </a></span>ARM_MPU_AP_NP</h2>
384 <div class="memitem">
385 <div class="memproto">
386 <table class="memname">
388 <td class="memname">#define ARM_MPU_AP_NP</td>
391 </div><div class="memdoc">
393 <p>Normal memory, any privilege level. </p>
397 <a id="ga52386005c0529821308140cf86e6d1a5" name="ga52386005c0529821308140cf86e6d1a5"></a>
398 <h2 class="memtitle"><span class="permalink"><a href="#ga52386005c0529821308140cf86e6d1a5">◆ </a></span>ARM_MPU_AP_PO</h2>
400 <div class="memitem">
401 <div class="memproto">
402 <table class="memname">
404 <td class="memname">#define ARM_MPU_AP_PO</td>
407 </div><div class="memdoc">
409 <p>Normal memory, privileged access only. </p>
413 <a id="ga64e249c7c678144b52493a4b6f8f6b3c" name="ga64e249c7c678144b52493a4b6f8f6b3c"></a>
414 <h2 class="memtitle"><span class="permalink"><a href="#ga64e249c7c678144b52493a4b6f8f6b3c">◆ </a></span>ARM_MPU_AP_RO</h2>
416 <div class="memitem">
417 <div class="memproto">
418 <table class="memname">
420 <td class="memname">#define ARM_MPU_AP_RO</td>
423 </div><div class="memdoc">
425 <p>Normal memory, read-only. </p>
429 <a id="ga17ea49d510a4e30ff6026eed9302ae54" name="ga17ea49d510a4e30ff6026eed9302ae54"></a>
430 <h2 class="memtitle"><span class="permalink"><a href="#ga17ea49d510a4e30ff6026eed9302ae54">◆ </a></span>ARM_MPU_AP_RW</h2>
432 <div class="memitem">
433 <div class="memproto">
434 <table class="memname">
436 <td class="memname">#define ARM_MPU_AP_RW</td>
439 </div><div class="memdoc">
441 <p>Normal memory, read/write. </p>
442 <p>Access permissions AP = Access permission, RO = Read-only, RW = Read/Write, NP = Any privilege, PO = Privileged code only </p>
446 <a id="ga2c465cc9429b8233bcb9cd7cbef0e54c" name="ga2c465cc9429b8233bcb9cd7cbef0e54c"></a>
447 <h2 class="memtitle"><span class="permalink"><a href="#ga2c465cc9429b8233bcb9cd7cbef0e54c">◆ </a></span>ARM_MPU_ATTR</h2>
449 <div class="memitem">
450 <div class="memproto">
451 <table class="memname">
453 <td class="memname">#define ARM_MPU_ATTR</td>
455 <td class="paramtype"> </td>
456 <td class="paramname">O, </td>
459 <td class="paramkey"></td>
461 <td class="paramtype"> </td>
462 <td class="paramname">I </td>
470 </div><div class="memdoc">
472 <p>Memory Attribute. </p>
473 <dl class="params"><dt>Parameters</dt><dd>
474 <table class="params">
475 <tr><td class="paramname">O</td><td>Outer memory attributes </td></tr>
476 <tr><td class="paramname">I</td><td>O == ARM_MPU_ATTR_DEVICE: Device memory attributes, else: Inner memory attributes </td></tr>
483 <a id="gab4bfac6284dc050dc6fa6aeb8e954c2c" name="gab4bfac6284dc050dc6fa6aeb8e954c2c"></a>
484 <h2 class="memtitle"><span class="permalink"><a href="#gab4bfac6284dc050dc6fa6aeb8e954c2c">◆ </a></span>ARM_MPU_ATTR_DEVICE</h2>
486 <div class="memitem">
487 <div class="memproto">
488 <table class="memname">
490 <td class="memname">#define ARM_MPU_ATTR_DEVICE   ( 0U )</td>
493 </div><div class="memdoc">
495 <p>Attribute for device memory (outer only) </p>
499 <a id="ga496bcd6a2bbd038d8935049fec9d0fda" name="ga496bcd6a2bbd038d8935049fec9d0fda"></a>
500 <h2 class="memtitle"><span class="permalink"><a href="#ga496bcd6a2bbd038d8935049fec9d0fda">◆ </a></span>ARM_MPU_ATTR_DEVICE_GRE</h2>
502 <div class="memitem">
503 <div class="memproto">
504 <table class="memname">
506 <td class="memname">#define ARM_MPU_ATTR_DEVICE_GRE</td>
509 </div><div class="memdoc">
511 <p>Device memory type Gathering, Re-ordering, Early Write Acknowledgement. </p>
515 <a id="ga6e08ae44fab85e03fea96ae6a5fcdfb0" name="ga6e08ae44fab85e03fea96ae6a5fcdfb0"></a>
516 <h2 class="memtitle"><span class="permalink"><a href="#ga6e08ae44fab85e03fea96ae6a5fcdfb0">◆ </a></span>ARM_MPU_ATTR_DEVICE_nGnRE</h2>
518 <div class="memitem">
519 <div class="memproto">
520 <table class="memname">
522 <td class="memname">#define ARM_MPU_ATTR_DEVICE_nGnRE</td>
525 </div><div class="memdoc">
527 <p>Device memory type non Gathering, non Re-ordering, Early Write Acknowledgement. </p>
531 <a id="gabfa9ae279357044cf5b74e77af22a686" name="gabfa9ae279357044cf5b74e77af22a686"></a>
532 <h2 class="memtitle"><span class="permalink"><a href="#gabfa9ae279357044cf5b74e77af22a686">◆ </a></span>ARM_MPU_ATTR_DEVICE_nGnRnE</h2>
534 <div class="memitem">
535 <div class="memproto">
536 <table class="memname">
538 <td class="memname">#define ARM_MPU_ATTR_DEVICE_nGnRnE</td>
541 </div><div class="memdoc">
543 <p>Device memory type non Gathering, non Re-ordering, non Early Write Acknowledgement. </p>
547 <a id="gadcc9977aabb4dc7177d30cbbac1b53d1" name="gadcc9977aabb4dc7177d30cbbac1b53d1"></a>
548 <h2 class="memtitle"><span class="permalink"><a href="#gadcc9977aabb4dc7177d30cbbac1b53d1">◆ </a></span>ARM_MPU_ATTR_DEVICE_nGRE</h2>
550 <div class="memitem">
551 <div class="memproto">
552 <table class="memname">
554 <td class="memname">#define ARM_MPU_ATTR_DEVICE_nGRE</td>
557 </div><div class="memdoc">
559 <p>Device memory type non Gathering, Re-ordering, Early Write Acknowledgement. </p>
563 <a id="gac2f1c567950e3785d75773362b525390" name="gac2f1c567950e3785d75773362b525390"></a>
564 <h2 class="memtitle"><span class="permalink"><a href="#gac2f1c567950e3785d75773362b525390">◆ </a></span>ARM_MPU_ATTR_MEMORY_</h2>
566 <div class="memitem">
567 <div class="memproto">
568 <table class="memname">
570 <td class="memname">#define ARM_MPU_ATTR_MEMORY_</td>
572 <td class="paramtype"> </td>
573 <td class="paramname">NT, </td>
576 <td class="paramkey"></td>
578 <td class="paramtype"> </td>
579 <td class="paramname">WB, </td>
582 <td class="paramkey"></td>
584 <td class="paramtype"> </td>
585 <td class="paramname">RA, </td>
588 <td class="paramkey"></td>
590 <td class="paramtype"> </td>
591 <td class="paramname">WA </td>
599 </div><div class="memdoc">
601 <p>Attribute for Normal memory, Outer and Inner cacheability. </p>
602 <dl class="params"><dt>Parameters</dt><dd>
603 <table class="params">
604 <tr><td class="paramname">NT</td><td>Non-Transient: Set to 1 for Non-transient data. Set to 0 for Transient data. </td></tr>
605 <tr><td class="paramname">WB</td><td>Write-Back: Set to 1 to use a Write-Back policy. Set to 0 to use a Write-Through policy. </td></tr>
606 <tr><td class="paramname">RA</td><td>Read Allocation: Set to 1 to enable cache allocation on read miss. Set to 0 to disable cache allocation on read miss. </td></tr>
607 <tr><td class="paramname">WA</td><td>Write Allocation: Set to 1 to enable cache allocation on write miss. Set to 0 to disable cache allocation on write miss. </td></tr>
614 <a id="ga03266f9660485693eb1baec6ba255ab2" name="ga03266f9660485693eb1baec6ba255ab2"></a>
615 <h2 class="memtitle"><span class="permalink"><a href="#ga03266f9660485693eb1baec6ba255ab2">◆ </a></span>ARM_MPU_ATTR_NON_CACHEABLE</h2>
617 <div class="memitem">
618 <div class="memproto">
619 <table class="memname">
621 <td class="memname">#define ARM_MPU_ATTR_NON_CACHEABLE   ( 4U )</td>
624 </div><div class="memdoc">
626 <p>Attribute for non-cacheable, normal memory. </p>
630 <a id="ga613533046759fd317008e9937cda62de" name="ga613533046759fd317008e9937cda62de"></a>
631 <h2 class="memtitle"><span class="permalink"><a href="#ga613533046759fd317008e9937cda62de">◆ </a></span>ARM_MPU_EX</h2>
633 <div class="memitem">
634 <div class="memproto">
635 <table class="memname">
637 <td class="memname">#define ARM_MPU_EX</td>
640 </div><div class="memdoc">
642 <p>Normal memory, Execution only permitted if read permitted. </p>
646 <a id="gafe39c2f98058bcac7e7e0501e64e7a9d" name="gafe39c2f98058bcac7e7e0501e64e7a9d"></a>
647 <h2 class="memtitle"><span class="permalink"><a href="#gafe39c2f98058bcac7e7e0501e64e7a9d">◆ </a></span>ARM_MPU_RBAR</h2>
649 <div class="memitem">
650 <div class="memproto">
651 <table class="memname">
653 <td class="memname">#define ARM_MPU_RBAR</td>
655 <td class="paramtype"> </td>
656 <td class="paramname">BASE, </td>
659 <td class="paramkey"></td>
661 <td class="paramtype"> </td>
662 <td class="paramname">SH, </td>
665 <td class="paramkey"></td>
667 <td class="paramtype"> </td>
668 <td class="paramname">RO, </td>
671 <td class="paramkey"></td>
673 <td class="paramtype"> </td>
674 <td class="paramname">NP, </td>
677 <td class="paramkey"></td>
679 <td class="paramtype"> </td>
680 <td class="paramname">XN </td>
688 </div><div class="memdoc">
690 <p>Region Base Address Register value. </p>
691 <dl class="params"><dt>Parameters</dt><dd>
692 <table class="params">
693 <tr><td class="paramname">BASE</td><td>The base address bits [31:5] of a memory region. The value is zero extended. Effective address gets 32 byte aligned. </td></tr>
694 <tr><td class="paramname">SH</td><td>Defines the Shareability domain for this memory region. </td></tr>
695 <tr><td class="paramname">RO</td><td>Read-Only: Set to 1 for a read-only memory region. Set to 0 for a read/write memory region. </td></tr>
696 <tr><td class="paramname">NP</td><td>Non-Privileged: Set to 1 for a non-privileged memory region. Set to 0 for privileged memory region. </td></tr>
697 <tr><td class="paramname">XN</td><td>eXecute Never: Set to 1 for a non-executable memory region. Set to 0 for an executable memory region. </td></tr>
704 <a id="gaeaaa071276ba7956944e6c3dc05d677e" name="gaeaaa071276ba7956944e6c3dc05d677e"></a>
705 <h2 class="memtitle"><span class="permalink"><a href="#gaeaaa071276ba7956944e6c3dc05d677e">◆ </a></span>ARM_MPU_RLAR</h2>
707 <div class="memitem">
708 <div class="memproto">
709 <table class="memname">
711 <td class="memname">#define ARM_MPU_RLAR</td>
713 <td class="paramtype"> </td>
714 <td class="paramname">LIMIT, </td>
717 <td class="paramkey"></td>
719 <td class="paramtype"> </td>
720 <td class="paramname">IDX </td>
728 </div><div class="memdoc">
730 <p>Region Limit Address Register value. </p>
731 <dl class="params"><dt>Parameters</dt><dd>
732 <table class="params">
733 <tr><td class="paramname">LIMIT</td><td>The limit address bits [31:5] for this memory region. The value is one extended. </td></tr>
734 <tr><td class="paramname">IDX</td><td>The attribute index to be associated with this memory region. </td></tr>
741 <a id="ga5bff4d6cfaa678776b3b1eab4af70f95" name="ga5bff4d6cfaa678776b3b1eab4af70f95"></a>
742 <h2 class="memtitle"><span class="permalink"><a href="#ga5bff4d6cfaa678776b3b1eab4af70f95">◆ </a></span>ARM_MPU_RLAR_PXN</h2>
744 <div class="memitem">
745 <div class="memproto">
746 <table class="memname">
748 <td class="memname">#define ARM_MPU_RLAR_PXN</td>
750 <td class="paramtype"> </td>
751 <td class="paramname">LIMIT, </td>
754 <td class="paramkey"></td>
756 <td class="paramtype"> </td>
757 <td class="paramname">PXN, </td>
760 <td class="paramkey"></td>
762 <td class="paramtype"> </td>
763 <td class="paramname">IDX </td>
771 </div><div class="memdoc">
773 <p>Region Limit Address Register with PXN value. </p>
774 <dl class="params"><dt>Parameters</dt><dd>
775 <table class="params">
776 <tr><td class="paramname">LIMIT</td><td>The limit address bits [31:5] for this memory region. The value is one extended. </td></tr>
777 <tr><td class="paramname">PXN</td><td>Privileged execute never. Defines whether code can be executed from this privileged region. </td></tr>
778 <tr><td class="paramname">IDX</td><td>The attribute index to be associated with this memory region. </td></tr>
785 <a id="ga73c70127f24f34781ad463cbe51d8f6b" name="ga73c70127f24f34781ad463cbe51d8f6b"></a>
786 <h2 class="memtitle"><span class="permalink"><a href="#ga73c70127f24f34781ad463cbe51d8f6b">◆ </a></span>ARM_MPU_SH_INNER</h2>
788 <div class="memitem">
789 <div class="memproto">
790 <table class="memname">
792 <td class="memname">#define ARM_MPU_SH_INNER</td>
795 </div><div class="memdoc">
797 <p>Normal memory inner shareable <br />
802 <a id="ga3d0f688198289f72264f73cf72a742e8" name="ga3d0f688198289f72264f73cf72a742e8"></a>
803 <h2 class="memtitle"><span class="permalink"><a href="#ga3d0f688198289f72264f73cf72a742e8">◆ </a></span>ARM_MPU_SH_NON</h2>
805 <div class="memitem">
806 <div class="memproto">
807 <table class="memname">
809 <td class="memname">#define ARM_MPU_SH_NON</td>
812 </div><div class="memdoc">
814 <p>Normal memory non-shareable <br />
820 <a id="gac4fddbdb9e1350bce6906de33c1fd500" name="gac4fddbdb9e1350bce6906de33c1fd500"></a>
821 <h2 class="memtitle"><span class="permalink"><a href="#gac4fddbdb9e1350bce6906de33c1fd500">◆ </a></span>ARM_MPU_SH_OUTER</h2>
823 <div class="memitem">
824 <div class="memproto">
825 <table class="memname">
827 <td class="memname">#define ARM_MPU_SH_OUTER</td>
830 </div><div class="memdoc">
832 <p>Normal memory outer shareable <br />
837 <a id="ga8127782b882cbb8419519fc6c98a0b6b" name="ga8127782b882cbb8419519fc6c98a0b6b"></a>
838 <h2 class="memtitle"><span class="permalink"><a href="#ga8127782b882cbb8419519fc6c98a0b6b">◆ </a></span>ARM_MPU_XN</h2>
840 <div class="memitem">
841 <div class="memproto">
842 <table class="memname">
844 <td class="memname">#define ARM_MPU_XN</td>
847 </div><div class="memdoc">
849 <p>Normal memory, Execution only permitted if read permitted. </p>
853 <a id="ga386cab980b576bc5f61388b659eea9a8" name="ga386cab980b576bc5f61388b659eea9a8"></a>
854 <h2 class="memtitle"><span class="permalink"><a href="#ga386cab980b576bc5f61388b659eea9a8">◆ </a></span>MPU_ATTR_NORMAL_INNER_NON_CACHEABLE</h2>
856 <div class="memitem">
857 <div class="memproto">
858 <table class="memname">
860 <td class="memname">#define MPU_ATTR_NORMAL_INNER_NON_CACHEABLE</td>
863 </div><div class="memdoc">
867 <a id="ga17b7f3281e42f8507336f709520e9785" name="ga17b7f3281e42f8507336f709520e9785"></a>
868 <h2 class="memtitle"><span class="permalink"><a href="#ga17b7f3281e42f8507336f709520e9785">◆ </a></span>MPU_ATTR_NORMAL_INNER_WB_RA</h2>
870 <div class="memitem">
871 <div class="memproto">
872 <table class="memname">
874 <td class="memname">#define MPU_ATTR_NORMAL_INNER_WB_RA</td>
877 </div><div class="memdoc">
881 <a id="ga61c99cef4678523dd070d863a7385cec" name="ga61c99cef4678523dd070d863a7385cec"></a>
882 <h2 class="memtitle"><span class="permalink"><a href="#ga61c99cef4678523dd070d863a7385cec">◆ </a></span>MPU_ATTR_NORMAL_INNER_WB_RA_WA</h2>
884 <div class="memitem">
885 <div class="memproto">
886 <table class="memname">
888 <td class="memname">#define MPU_ATTR_NORMAL_INNER_WB_RA_WA</td>
891 </div><div class="memdoc">
895 <a id="ga9ae76961b518f86ba1d390913f4ee45e" name="ga9ae76961b518f86ba1d390913f4ee45e"></a>
896 <h2 class="memtitle"><span class="permalink"><a href="#ga9ae76961b518f86ba1d390913f4ee45e">◆ </a></span>MPU_ATTR_NORMAL_INNER_WB_TR_RA</h2>
898 <div class="memitem">
899 <div class="memproto">
900 <table class="memname">
902 <td class="memname">#define MPU_ATTR_NORMAL_INNER_WB_TR_RA</td>
905 </div><div class="memdoc">
909 <a id="gaf63176f20e4a30bd283463c98c363cf2" name="gaf63176f20e4a30bd283463c98c363cf2"></a>
910 <h2 class="memtitle"><span class="permalink"><a href="#gaf63176f20e4a30bd283463c98c363cf2">◆ </a></span>MPU_ATTR_NORMAL_INNER_WB_TR_RA_WA</h2>
912 <div class="memitem">
913 <div class="memproto">
914 <table class="memname">
916 <td class="memname">#define MPU_ATTR_NORMAL_INNER_WB_TR_RA_WA</td>
919 </div><div class="memdoc">
923 <a id="ga2e30e4ab7f3aee0a16399f6de178e532" name="ga2e30e4ab7f3aee0a16399f6de178e532"></a>
924 <h2 class="memtitle"><span class="permalink"><a href="#ga2e30e4ab7f3aee0a16399f6de178e532">◆ </a></span>MPU_ATTR_NORMAL_INNER_WB_TR_WA</h2>
926 <div class="memitem">
927 <div class="memproto">
928 <table class="memname">
930 <td class="memname">#define MPU_ATTR_NORMAL_INNER_WB_TR_WA</td>
933 </div><div class="memdoc">
937 <a id="gacb7962caa69fd238b5d8bbfb60a7a959" name="gacb7962caa69fd238b5d8bbfb60a7a959"></a>
938 <h2 class="memtitle"><span class="permalink"><a href="#gacb7962caa69fd238b5d8bbfb60a7a959">◆ </a></span>MPU_ATTR_NORMAL_INNER_WB_WA</h2>
940 <div class="memitem">
941 <div class="memproto">
942 <table class="memname">
944 <td class="memname">#define MPU_ATTR_NORMAL_INNER_WB_WA</td>
947 </div><div class="memdoc">
951 <a id="gaa865e157ac3fc278d39c5c688165252b" name="gaa865e157ac3fc278d39c5c688165252b"></a>
952 <h2 class="memtitle"><span class="permalink"><a href="#gaa865e157ac3fc278d39c5c688165252b">◆ </a></span>MPU_ATTR_NORMAL_INNER_WT_RA</h2>
954 <div class="memitem">
955 <div class="memproto">
956 <table class="memname">
958 <td class="memname">#define MPU_ATTR_NORMAL_INNER_WT_RA</td>
961 </div><div class="memdoc">
965 <a id="gae871e61119bdab6409a01fd45aa28811" name="gae871e61119bdab6409a01fd45aa28811"></a>
966 <h2 class="memtitle"><span class="permalink"><a href="#gae871e61119bdab6409a01fd45aa28811">◆ </a></span>MPU_ATTR_NORMAL_INNER_WT_RA_WA</h2>
968 <div class="memitem">
969 <div class="memproto">
970 <table class="memname">
972 <td class="memname">#define MPU_ATTR_NORMAL_INNER_WT_RA_WA</td>
975 </div><div class="memdoc">
979 <a id="ga8669f856b6f0132b6c4022916ca1ad94" name="ga8669f856b6f0132b6c4022916ca1ad94"></a>
980 <h2 class="memtitle"><span class="permalink"><a href="#ga8669f856b6f0132b6c4022916ca1ad94">◆ </a></span>MPU_ATTR_NORMAL_INNER_WT_TR_RA</h2>
982 <div class="memitem">
983 <div class="memproto">
984 <table class="memname">
986 <td class="memname">#define MPU_ATTR_NORMAL_INNER_WT_TR_RA</td>
989 </div><div class="memdoc">
993 <a id="gac1c0b1a3b22d0c0ea875355039eae4c0" name="gac1c0b1a3b22d0c0ea875355039eae4c0"></a>
994 <h2 class="memtitle"><span class="permalink"><a href="#gac1c0b1a3b22d0c0ea875355039eae4c0">◆ </a></span>MPU_ATTR_NORMAL_INNER_WT_TR_RA_WA</h2>
996 <div class="memitem">
997 <div class="memproto">
998 <table class="memname">
1000 <td class="memname">#define MPU_ATTR_NORMAL_INNER_WT_TR_RA_WA</td>
1003 </div><div class="memdoc">
1007 <a id="gac41f314de36519d6ebde13a1e997c65f" name="gac41f314de36519d6ebde13a1e997c65f"></a>
1008 <h2 class="memtitle"><span class="permalink"><a href="#gac41f314de36519d6ebde13a1e997c65f">◆ </a></span>MPU_ATTR_NORMAL_INNER_WT_TR_WA</h2>
1010 <div class="memitem">
1011 <div class="memproto">
1012 <table class="memname">
1014 <td class="memname">#define MPU_ATTR_NORMAL_INNER_WT_TR_WA</td>
1017 </div><div class="memdoc">
1021 <a id="ga4550de69e30075efc70213a79b929e92" name="ga4550de69e30075efc70213a79b929e92"></a>
1022 <h2 class="memtitle"><span class="permalink"><a href="#ga4550de69e30075efc70213a79b929e92">◆ </a></span>MPU_ATTR_NORMAL_INNER_WT_WA</h2>
1024 <div class="memitem">
1025 <div class="memproto">
1026 <table class="memname">
1028 <td class="memname">#define MPU_ATTR_NORMAL_INNER_WT_WA</td>
1031 </div><div class="memdoc">
1035 <a id="gab0847e1992e71f74ed5a31316d22b7bd" name="gab0847e1992e71f74ed5a31316d22b7bd"></a>
1036 <h2 class="memtitle"><span class="permalink"><a href="#gab0847e1992e71f74ed5a31316d22b7bd">◆ </a></span>MPU_ATTR_NORMAL_OUTER_NON_CACHEABLE</h2>
1038 <div class="memitem">
1039 <div class="memproto">
1040 <table class="memname">
1042 <td class="memname">#define MPU_ATTR_NORMAL_OUTER_NON_CACHEABLE</td>
1045 </div><div class="memdoc">
1047 <p>Normal memory outer-cacheable and inner-cacheable attributes WT = Write Through, WB = Write Back, TR = Transient, RA = Read-Allocate, WA = Write Allocate. </p>
1051 <a id="gad5312c58ebef6849b86765e276bf614a" name="gad5312c58ebef6849b86765e276bf614a"></a>
1052 <h2 class="memtitle"><span class="permalink"><a href="#gad5312c58ebef6849b86765e276bf614a">◆ </a></span>MPU_ATTR_NORMAL_OUTER_WB_RA</h2>
1054 <div class="memitem">
1055 <div class="memproto">
1056 <table class="memname">
1058 <td class="memname">#define MPU_ATTR_NORMAL_OUTER_WB_RA</td>
1061 </div><div class="memdoc">
1065 <a id="ga72a1da6f37f307e4e7b122bec86bc63a" name="ga72a1da6f37f307e4e7b122bec86bc63a"></a>
1066 <h2 class="memtitle"><span class="permalink"><a href="#ga72a1da6f37f307e4e7b122bec86bc63a">◆ </a></span>MPU_ATTR_NORMAL_OUTER_WB_RA_WA</h2>
1068 <div class="memitem">
1069 <div class="memproto">
1070 <table class="memname">
1072 <td class="memname">#define MPU_ATTR_NORMAL_OUTER_WB_RA_WA</td>
1075 </div><div class="memdoc">
1079 <a id="ga0012b8fe0edfcac50ee368c44ae98123" name="ga0012b8fe0edfcac50ee368c44ae98123"></a>
1080 <h2 class="memtitle"><span class="permalink"><a href="#ga0012b8fe0edfcac50ee368c44ae98123">◆ </a></span>MPU_ATTR_NORMAL_OUTER_WB_TR_RA</h2>
1082 <div class="memitem">
1083 <div class="memproto">
1084 <table class="memname">
1086 <td class="memname">#define MPU_ATTR_NORMAL_OUTER_WB_TR_RA</td>
1089 </div><div class="memdoc">
1093 <a id="gac6951446163b7acc7ec945d81e35de5d" name="gac6951446163b7acc7ec945d81e35de5d"></a>
1094 <h2 class="memtitle"><span class="permalink"><a href="#gac6951446163b7acc7ec945d81e35de5d">◆ </a></span>MPU_ATTR_NORMAL_OUTER_WB_TR_RA_WA</h2>
1096 <div class="memitem">
1097 <div class="memproto">
1098 <table class="memname">
1100 <td class="memname">#define MPU_ATTR_NORMAL_OUTER_WB_TR_RA_WA</td>
1103 </div><div class="memdoc">
1107 <a id="ga934e2485b0df7a213a99896018786278" name="ga934e2485b0df7a213a99896018786278"></a>
1108 <h2 class="memtitle"><span class="permalink"><a href="#ga934e2485b0df7a213a99896018786278">◆ </a></span>MPU_ATTR_NORMAL_OUTER_WB_TR_WA</h2>
1110 <div class="memitem">
1111 <div class="memproto">
1112 <table class="memname">
1114 <td class="memname">#define MPU_ATTR_NORMAL_OUTER_WB_TR_WA</td>
1117 </div><div class="memdoc">
1121 <a id="ga9e83c355036cda1e65cc64f0dc6ca2a8" name="ga9e83c355036cda1e65cc64f0dc6ca2a8"></a>
1122 <h2 class="memtitle"><span class="permalink"><a href="#ga9e83c355036cda1e65cc64f0dc6ca2a8">◆ </a></span>MPU_ATTR_NORMAL_OUTER_WB_WA</h2>
1124 <div class="memitem">
1125 <div class="memproto">
1126 <table class="memname">
1128 <td class="memname">#define MPU_ATTR_NORMAL_OUTER_WB_WA</td>
1131 </div><div class="memdoc">
1135 <a id="gae321b8422975d41ac1c488ad4ea149c0" name="gae321b8422975d41ac1c488ad4ea149c0"></a>
1136 <h2 class="memtitle"><span class="permalink"><a href="#gae321b8422975d41ac1c488ad4ea149c0">◆ </a></span>MPU_ATTR_NORMAL_OUTER_WT_RA</h2>
1138 <div class="memitem">
1139 <div class="memproto">
1140 <table class="memname">
1142 <td class="memname">#define MPU_ATTR_NORMAL_OUTER_WT_RA</td>
1145 </div><div class="memdoc">
1149 <a id="gaa7643b0faffce08a7e5598d720e1bfa5" name="gaa7643b0faffce08a7e5598d720e1bfa5"></a>
1150 <h2 class="memtitle"><span class="permalink"><a href="#gaa7643b0faffce08a7e5598d720e1bfa5">◆ </a></span>MPU_ATTR_NORMAL_OUTER_WT_RA_WA</h2>
1152 <div class="memitem">
1153 <div class="memproto">
1154 <table class="memname">
1156 <td class="memname">#define MPU_ATTR_NORMAL_OUTER_WT_RA_WA</td>
1159 </div><div class="memdoc">
1163 <a id="ga55c4d3e20300bbbb02b8567ed8f2b4e1" name="ga55c4d3e20300bbbb02b8567ed8f2b4e1"></a>
1164 <h2 class="memtitle"><span class="permalink"><a href="#ga55c4d3e20300bbbb02b8567ed8f2b4e1">◆ </a></span>MPU_ATTR_NORMAL_OUTER_WT_TR_RA</h2>
1166 <div class="memitem">
1167 <div class="memproto">
1168 <table class="memname">
1170 <td class="memname">#define MPU_ATTR_NORMAL_OUTER_WT_TR_RA</td>
1173 </div><div class="memdoc">
1177 <a id="ga9425e85dc19e840dd303094f79ed38e3" name="ga9425e85dc19e840dd303094f79ed38e3"></a>
1178 <h2 class="memtitle"><span class="permalink"><a href="#ga9425e85dc19e840dd303094f79ed38e3">◆ </a></span>MPU_ATTR_NORMAL_OUTER_WT_TR_RA_WA</h2>
1180 <div class="memitem">
1181 <div class="memproto">
1182 <table class="memname">
1184 <td class="memname">#define MPU_ATTR_NORMAL_OUTER_WT_TR_RA_WA</td>
1187 </div><div class="memdoc">
1191 <a id="ga129149491f30c513784a3ffd28b59a48" name="ga129149491f30c513784a3ffd28b59a48"></a>
1192 <h2 class="memtitle"><span class="permalink"><a href="#ga129149491f30c513784a3ffd28b59a48">◆ </a></span>MPU_ATTR_NORMAL_OUTER_WT_TR_WA</h2>
1194 <div class="memitem">
1195 <div class="memproto">
1196 <table class="memname">
1198 <td class="memname">#define MPU_ATTR_NORMAL_OUTER_WT_TR_WA</td>
1201 </div><div class="memdoc">
1205 <a id="ga9d1be17c0bd5895736d4ab352434f61e" name="ga9d1be17c0bd5895736d4ab352434f61e"></a>
1206 <h2 class="memtitle"><span class="permalink"><a href="#ga9d1be17c0bd5895736d4ab352434f61e">◆ </a></span>MPU_ATTR_NORMAL_OUTER_WT_WA</h2>
1208 <div class="memitem">
1209 <div class="memproto">
1210 <table class="memname">
1212 <td class="memname">#define MPU_ATTR_NORMAL_OUTER_WT_WA</td>
1215 </div><div class="memdoc">
1219 <h2 class="groupheader">Function Documentation</h2>
1220 <a id="ga9dcb0afddf4ac351f33f3c7a5169c62c" name="ga9dcb0afddf4ac351f33f3c7a5169c62c"></a>
1221 <h2 class="memtitle"><span class="permalink"><a href="#ga9dcb0afddf4ac351f33f3c7a5169c62c">◆ </a></span>ARM_MPU_ClrRegion()</h2>
1223 <div class="memitem">
1224 <div class="memproto">
1225 <table class="memname">
1227 <td class="memname"><a class="el" href="group__compiler__conntrol__gr.html#gaba87361bfad2ae52cfe2f40c1a1dbf9c">__STATIC_INLINE</a> void ARM_MPU_ClrRegion </td>
1229 <td class="paramtype">uint32_t </td>
1230 <td class="paramname"><em>rnr</em></td><td>)</td>
1234 </div><div class="memdoc">
1235 <p>Clear and disable the given MPU region. </p><dl class="params"><dt>Parameters</dt><dd>
1236 <table class="params">
1237 <tr><td class="paramname">rnr</td><td>Region number to be cleared. </td></tr>
1244 <a id="gac526bc5bfcf048ce57a44c0c0cdadbe4" name="gac526bc5bfcf048ce57a44c0c0cdadbe4"></a>
1245 <h2 class="memtitle"><span class="permalink"><a href="#gac526bc5bfcf048ce57a44c0c0cdadbe4">◆ </a></span>ARM_MPU_ClrRegion_NS()</h2>
1247 <div class="memitem">
1248 <div class="memproto">
1249 <table class="memname">
1251 <td class="memname"><a class="el" href="group__compiler__conntrol__gr.html#gaba87361bfad2ae52cfe2f40c1a1dbf9c">__STATIC_INLINE</a> void ARM_MPU_ClrRegion_NS </td>
1253 <td class="paramtype">uint32_t </td>
1254 <td class="paramname"><em>rnr</em></td><td>)</td>
1258 </div><div class="memdoc">
1259 <p>Clear and disable the given Non-secure MPU region. </p><dl class="params"><dt>Parameters</dt><dd>
1260 <table class="params">
1261 <tr><td class="paramname">rnr</td><td>Region number to be cleared. </td></tr>
1268 <a id="ga01fa1151c9ec0ba5de76f908c0999316" name="ga01fa1151c9ec0ba5de76f908c0999316"></a>
1269 <h2 class="memtitle"><span class="permalink"><a href="#ga01fa1151c9ec0ba5de76f908c0999316">◆ </a></span>ARM_MPU_ClrRegionEx()</h2>
1271 <div class="memitem">
1272 <div class="memproto">
1273 <table class="memname">
1275 <td class="memname"><a class="el" href="group__compiler__conntrol__gr.html#gaba87361bfad2ae52cfe2f40c1a1dbf9c">__STATIC_INLINE</a> void ARM_MPU_ClrRegionEx </td>
1277 <td class="paramtype"><a class="el" href="structMPU__Type.html">MPU_Type</a> * </td>
1278 <td class="paramname"><em>mpu</em>, </td>
1281 <td class="paramkey"></td>
1283 <td class="paramtype">uint32_t </td>
1284 <td class="paramname"><em>rnr</em> </td>
1292 </div><div class="memdoc">
1293 <p>Clear and disable the given MPU region of the given MPU. </p><dl class="params"><dt>Parameters</dt><dd>
1294 <table class="params">
1295 <tr><td class="paramname">mpu</td><td>Pointer to MPU to be used. </td></tr>
1296 <tr><td class="paramname">rnr</td><td>Region number to be cleared. </td></tr>
1303 <a id="ga61814eba4652a0fdfb76bbe222086327" name="ga61814eba4652a0fdfb76bbe222086327"></a>
1304 <h2 class="memtitle"><span class="permalink"><a href="#ga61814eba4652a0fdfb76bbe222086327">◆ </a></span>ARM_MPU_Disable()</h2>
1306 <div class="memitem">
1307 <div class="memproto">
1308 <table class="memname">
1310 <td class="memname"><a class="el" href="group__compiler__conntrol__gr.html#gaba87361bfad2ae52cfe2f40c1a1dbf9c">__STATIC_INLINE</a> void ARM_MPU_Disable </td>
1312 <td class="paramtype">void </td>
1313 <td class="paramname"></td><td>)</td>
1317 </div><div class="memdoc">
1318 <p>Disable the MPU. </p>
1322 <a id="ga389f9b6049d176bc83f9964d3259b712" name="ga389f9b6049d176bc83f9964d3259b712"></a>
1323 <h2 class="memtitle"><span class="permalink"><a href="#ga389f9b6049d176bc83f9964d3259b712">◆ </a></span>ARM_MPU_Disable_NS()</h2>
1325 <div class="memitem">
1326 <div class="memproto">
1327 <table class="memname">
1329 <td class="memname"><a class="el" href="group__compiler__conntrol__gr.html#gaba87361bfad2ae52cfe2f40c1a1dbf9c">__STATIC_INLINE</a> void ARM_MPU_Disable_NS </td>
1331 <td class="paramtype">void </td>
1332 <td class="paramname"></td><td>)</td>
1336 </div><div class="memdoc">
1337 <p>Disable the Non-secure MPU. </p>
1341 <a id="ga5a3f40314553baccdeea551f86d9a997" name="ga5a3f40314553baccdeea551f86d9a997"></a>
1342 <h2 class="memtitle"><span class="permalink"><a href="#ga5a3f40314553baccdeea551f86d9a997">◆ </a></span>ARM_MPU_Enable()</h2>
1344 <div class="memitem">
1345 <div class="memproto">
1346 <table class="memname">
1348 <td class="memname"><a class="el" href="group__compiler__conntrol__gr.html#gaba87361bfad2ae52cfe2f40c1a1dbf9c">__STATIC_INLINE</a> void ARM_MPU_Enable </td>
1350 <td class="paramtype">uint32_t </td>
1351 <td class="paramname"><em>MPU_Control</em></td><td>)</td>
1355 </div><div class="memdoc">
1357 <p>Enable the MPU. </p>
1358 <dl class="params"><dt>Parameters</dt><dd>
1359 <table class="params">
1360 <tr><td class="paramname">MPU_Control</td><td>Default access permissions for unconfigured regions. </td></tr>
1367 <a id="ga5866c75d6deb9148a1e9af6337eec50a" name="ga5866c75d6deb9148a1e9af6337eec50a"></a>
1368 <h2 class="memtitle"><span class="permalink"><a href="#ga5866c75d6deb9148a1e9af6337eec50a">◆ </a></span>ARM_MPU_Enable_NS()</h2>
1370 <div class="memitem">
1371 <div class="memproto">
1372 <table class="memname">
1374 <td class="memname"><a class="el" href="group__compiler__conntrol__gr.html#gaba87361bfad2ae52cfe2f40c1a1dbf9c">__STATIC_INLINE</a> ARM_MPU_Enable_NS </td>
1376 <td class="paramtype">uint32_t </td>
1377 <td class="paramname"><em>MPU_Control</em></td><td>)</td>
1381 </div><div class="memdoc">
1382 <p>Enable the Non-secure MPU. </p><dl class="params"><dt>Parameters</dt><dd>
1383 <table class="params">
1384 <tr><td class="paramname">MPU_Control</td><td>Default access permissions for unconfigured regions. </td></tr>
1391 <a id="gaca76614e3091c7324aa9d60e634621bf" name="gaca76614e3091c7324aa9d60e634621bf"></a>
1392 <h2 class="memtitle"><span class="permalink"><a href="#gaca76614e3091c7324aa9d60e634621bf">◆ </a></span>ARM_MPU_Load()</h2>
1394 <div class="memitem">
1395 <div class="memproto">
1396 <table class="memname">
1398 <td class="memname"><a class="el" href="group__compiler__conntrol__gr.html#gaba87361bfad2ae52cfe2f40c1a1dbf9c">__STATIC_INLINE</a> void ARM_MPU_Load </td>
1400 <td class="paramtype">uint32_t </td>
1401 <td class="paramname"><em>rnr</em>, </td>
1404 <td class="paramkey"></td>
1406 <td class="paramtype"><a class="el" href="structARM__MPU__Region__t.html">ARM_MPU_Region_t</a> const * </td>
1407 <td class="paramname"><em>table</em>, </td>
1410 <td class="paramkey"></td>
1412 <td class="paramtype">uint32_t </td>
1413 <td class="paramname"><em>cnt</em> </td>
1421 </div><div class="memdoc">
1422 <p>Load the given number of MPU regions from a table. </p><dl class="params"><dt>Parameters</dt><dd>
1423 <table class="params">
1424 <tr><td class="paramname">rnr</td><td>First region number to be configured. </td></tr>
1425 <tr><td class="paramname">table</td><td>Pointer to the MPU configuration table. </td></tr>
1426 <tr><td class="paramname">cnt</td><td>Amount of regions to be configured.</td></tr>
1430 <p><b>Example:</b> </p><div class="fragment"><div class="line"><span class="keyword">const</span> <a class="code hl_struct" href="structARM__MPU__Region__t.html">ARM_MPU_Region_t</a> mpuTable[1][4] = {</div>
1431 <div class="line"> {</div>
1432 <div class="line"> <span class="comment">// BASE SH RO NP XN LIMIT ATTR </span></div>
1433 <div class="line"> { .<a class="code hl_variable" href="structARM__MPU__Region__t.html#afe7a7721aa08988d915670efa432cdd2">RBAR</a> = <a class="code hl_define" href="group__mpu__functions.html#ga3fead12dc24a6d00ad53f55a042486ca">ARM_MPU_RBAR</a>(0x08000000UL, <a class="code hl_define" href="group__mpu8__functions.html#ga3d0f688198289f72264f73cf72a742e8">ARM_MPU_SH_NON</a>, <a class="code hl_define" href="group__mpu8__functions.html#ga64e249c7c678144b52493a4b6f8f6b3c">ARM_MPU_AP_RO</a>, <a class="code hl_define" href="group__mpu8__functions.html#gae62d5195b6ab6082a3f4a2584c101fab">ARM_MPU_AP_NP</a>, <a class="code hl_define" href="group__mpu8__functions.html#ga8127782b882cbb8419519fc6c98a0b6b">ARM_MPU_XN</a>), .RLAR = <a class="code hl_define" href="group__mpu8__functions.html#gaeaaa071276ba7956944e6c3dc05d677e">ARM_MPU_RLAR</a>(0x080FFFFFUL, MAIR_ATTR(0)) },</div>
1434 <div class="line"> { .RBAR = <a class="code hl_define" href="group__mpu__functions.html#ga3fead12dc24a6d00ad53f55a042486ca">ARM_MPU_RBAR</a>(0x20000000UL, <a class="code hl_define" href="group__mpu8__functions.html#ga3d0f688198289f72264f73cf72a742e8">ARM_MPU_SH_NON</a>, <a class="code hl_define" href="group__mpu8__functions.html#ga64e249c7c678144b52493a4b6f8f6b3c">ARM_MPU_AP_RO</a>, <a class="code hl_define" href="group__mpu8__functions.html#gae62d5195b6ab6082a3f4a2584c101fab">ARM_MPU_AP_NP</a>, <a class="code hl_define" href="group__mpu8__functions.html#ga8127782b882cbb8419519fc6c98a0b6b">ARM_MPU_XN</a>), .RLAR = <a class="code hl_define" href="group__mpu8__functions.html#gaeaaa071276ba7956944e6c3dc05d677e">ARM_MPU_RLAR</a>(0x20007FFFUL, MAIR_ATTR(0)) },</div>
1435 <div class="line"> { .RBAR = <a class="code hl_define" href="group__mpu__functions.html#ga3fead12dc24a6d00ad53f55a042486ca">ARM_MPU_RBAR</a>(0x40020000UL, <a class="code hl_define" href="group__mpu8__functions.html#ga3d0f688198289f72264f73cf72a742e8">ARM_MPU_SH_NON</a>, <a class="code hl_define" href="group__mpu8__functions.html#ga64e249c7c678144b52493a4b6f8f6b3c">ARM_MPU_AP_RO</a>, <a class="code hl_define" href="group__mpu8__functions.html#gae62d5195b6ab6082a3f4a2584c101fab">ARM_MPU_AP_NP</a>, <a class="code hl_define" href="group__mpu8__functions.html#ga8127782b882cbb8419519fc6c98a0b6b">ARM_MPU_XN</a>), .RLAR = <a class="code hl_define" href="group__mpu8__functions.html#gaeaaa071276ba7956944e6c3dc05d677e">ARM_MPU_RLAR</a>(0x40021FFFUL, MAIR_ATTR(1)) },</div>
1436 <div class="line"> { .RBAR = <a class="code hl_define" href="group__mpu__functions.html#ga3fead12dc24a6d00ad53f55a042486ca">ARM_MPU_RBAR</a>(0x40022000UL, <a class="code hl_define" href="group__mpu8__functions.html#ga3d0f688198289f72264f73cf72a742e8">ARM_MPU_SH_NON</a>, <a class="code hl_define" href="group__mpu8__functions.html#ga64e249c7c678144b52493a4b6f8f6b3c">ARM_MPU_AP_RO</a>, <a class="code hl_define" href="group__mpu8__functions.html#gae62d5195b6ab6082a3f4a2584c101fab">ARM_MPU_AP_NP</a>, <a class="code hl_define" href="group__mpu8__functions.html#ga8127782b882cbb8419519fc6c98a0b6b">ARM_MPU_XN</a>), .RLAR = <a class="code hl_define" href="group__mpu8__functions.html#gaeaaa071276ba7956944e6c3dc05d677e">ARM_MPU_RLAR</a>(0x40022FFFUL, MAIR_ATTR(1)) }</div>
1437 <div class="line"> }</div>
1438 <div class="line">};</div>
1439 <div class="line"> </div>
1440 <div class="line"><span class="keywordtype">void</span> UpdateMpu(uint32_t idx)</div>
1441 <div class="line">{</div>
1442 <div class="line"> <a class="code hl_function" href="group__mpu__functions.html#gafa27b26d5847fa8e465584e376b6078a">ARM_MPU_Load</a>(0, mpuTable[idx], 4);</div>
1443 <div class="line">}</div>
1444 <div class="ttc" id="agroup__mpu8__functions_html_ga64e249c7c678144b52493a4b6f8f6b3c"><div class="ttname"><a href="group__mpu8__functions.html#ga64e249c7c678144b52493a4b6f8f6b3c">ARM_MPU_AP_RO</a></div><div class="ttdeci">#define ARM_MPU_AP_RO</div><div class="ttdoc">Normal memory, read-only.</div><div class="ttdef"><b>Definition:</b> ref_mpu8.txt:117</div></div>
1445 <div class="ttc" id="agroup__mpu__functions_html_gafa27b26d5847fa8e465584e376b6078a"><div class="ttname"><a href="group__mpu__functions.html#gafa27b26d5847fa8e465584e376b6078a">ARM_MPU_Load</a></div><div class="ttdeci">__STATIC_INLINE void ARM_MPU_Load(MPU_Region_t const *table, uint32_t cnt)</div></div>
1446 <div class="ttc" id="astructARM__MPU__Region__t_html"><div class="ttname"><a href="structARM__MPU__Region__t.html">ARM_MPU_Region_t</a></div><div class="ttdoc">Setup information of a single MPU Region.</div><div class="ttdef"><b>Definition:</b> ref_mpu.txt:84</div></div>
1447 <div class="ttc" id="astructARM__MPU__Region__t_html_afe7a7721aa08988d915670efa432cdd2"><div class="ttname"><a href="structARM__MPU__Region__t.html#afe7a7721aa08988d915670efa432cdd2">ARM_MPU_Region_t::RBAR</a></div><div class="ttdeci">uint32_t RBAR</div><div class="ttdoc">The region base address register value (RBAR)</div><div class="ttdef"><b>Definition:</b> ref_mpu.txt:85</div></div>
1448 </div><!-- fragment -->
1451 <a id="ga7f8c6e09be98067d613e4df1832c543d" name="ga7f8c6e09be98067d613e4df1832c543d"></a>
1452 <h2 class="memtitle"><span class="permalink"><a href="#ga7f8c6e09be98067d613e4df1832c543d">◆ </a></span>ARM_MPU_Load_NS()</h2>
1454 <div class="memitem">
1455 <div class="memproto">
1456 <table class="memname">
1458 <td class="memname"><a class="el" href="group__compiler__conntrol__gr.html#gaba87361bfad2ae52cfe2f40c1a1dbf9c">__STATIC_INLINE</a> void ARM_MPU_Load_NS </td>
1460 <td class="paramtype">uint32_t </td>
1461 <td class="paramname"><em>rnr</em>, </td>
1464 <td class="paramkey"></td>
1466 <td class="paramtype"><a class="el" href="structARM__MPU__Region__t.html">ARM_MPU_Region_t</a> const * </td>
1467 <td class="paramname"><em>table</em>, </td>
1470 <td class="paramkey"></td>
1472 <td class="paramtype">uint32_t </td>
1473 <td class="paramname"><em>cnt</em> </td>
1481 </div><div class="memdoc">
1482 <p>Load the given number of MPU regions from a table to the Non-secure MPU. </p><dl class="params"><dt>Parameters</dt><dd>
1483 <table class="params">
1484 <tr><td class="paramname">rnr</td><td>First region number to be configured. </td></tr>
1485 <tr><td class="paramname">table</td><td>Pointer to the MPU configuration table. </td></tr>
1486 <tr><td class="paramname">cnt</td><td>Amount of regions to be configured. </td></tr>
1493 <a id="gab6094419f2abd678f1f3b121cd115049" name="gab6094419f2abd678f1f3b121cd115049"></a>
1494 <h2 class="memtitle"><span class="permalink"><a href="#gab6094419f2abd678f1f3b121cd115049">◆ </a></span>ARM_MPU_LoadEx()</h2>
1496 <div class="memitem">
1497 <div class="memproto">
1498 <table class="memname">
1500 <td class="memname"><a class="el" href="group__compiler__conntrol__gr.html#gaba87361bfad2ae52cfe2f40c1a1dbf9c">__STATIC_INLINE</a> void ARM_MPU_LoadEx </td>
1502 <td class="paramtype"><a class="el" href="structMPU__Type.html">MPU_Type</a> * </td>
1503 <td class="paramname"><em>mpu</em>, </td>
1506 <td class="paramkey"></td>
1508 <td class="paramtype">uint32_t </td>
1509 <td class="paramname"><em>rnr</em>, </td>
1512 <td class="paramkey"></td>
1514 <td class="paramtype"><a class="el" href="structARM__MPU__Region__t.html">ARM_MPU_Region_t</a> const * </td>
1515 <td class="paramname"><em>table</em>, </td>
1518 <td class="paramkey"></td>
1520 <td class="paramtype">uint32_t </td>
1521 <td class="paramname"><em>cnt</em> </td>
1529 </div><div class="memdoc">
1530 <p>Load the given number of MPU regions from a table to the given MPU. </p><dl class="params"><dt>Parameters</dt><dd>
1531 <table class="params">
1532 <tr><td class="paramname">mpu</td><td>Pointer to the MPU registers to be used. </td></tr>
1533 <tr><td class="paramname">rnr</td><td>First region number to be configured. </td></tr>
1534 <tr><td class="paramname">table</td><td>Pointer to the MPU configuration table. </td></tr>
1535 <tr><td class="paramname">cnt</td><td>Amount of regions to be configured. </td></tr>
1542 <a id="gac1a949403bf84eecaf407003fb553ae7" name="gac1a949403bf84eecaf407003fb553ae7"></a>
1543 <h2 class="memtitle"><span class="permalink"><a href="#gac1a949403bf84eecaf407003fb553ae7">◆ </a></span>ARM_MPU_OrderedMemcpy()</h2>
1545 <div class="memitem">
1546 <div class="memproto">
1547 <table class="memname">
1549 <td class="memname"><a class="el" href="group__compiler__conntrol__gr.html#gaba87361bfad2ae52cfe2f40c1a1dbf9c">__STATIC_INLINE</a> void ARM_MPU_OrderedMemcpy </td>
1551 <td class="paramtype">volatile uint32_t * </td>
1552 <td class="paramname"><em>dst</em>, </td>
1555 <td class="paramkey"></td>
1557 <td class="paramtype">const uint32_t *<a class="el" href="group__compiler__conntrol__gr.html#ga378ac21329d33f561f90265eef89f564">__RESTRICT</a> </td>
1558 <td class="paramname"><em>src</em>, </td>
1561 <td class="paramkey"></td>
1563 <td class="paramtype">uint32_t </td>
1564 <td class="paramname"><em>len</em> </td>
1572 </div><div class="memdoc">
1573 <p>Memcpy with strictly ordered memory access, e.g. used by code in <a class="el" href="group__mpu8__functions.html#gab6094419f2abd678f1f3b121cd115049">ARM_MPU_LoadEx</a>. </p><dl class="params"><dt>Parameters</dt><dd>
1574 <table class="params">
1575 <tr><td class="paramname">dst</td><td>Destination data is copied to. </td></tr>
1576 <tr><td class="paramname">src</td><td>Source data is copied from. </td></tr>
1577 <tr><td class="paramname">len</td><td>Amount of data words to be copied. </td></tr>
1584 <a id="gab5b3c0a53d19c09a5550f1d9071ae65c" name="gab5b3c0a53d19c09a5550f1d9071ae65c"></a>
1585 <h2 class="memtitle"><span class="permalink"><a href="#gab5b3c0a53d19c09a5550f1d9071ae65c">◆ </a></span>ARM_MPU_SetMemAttr()</h2>
1587 <div class="memitem">
1588 <div class="memproto">
1589 <table class="memname">
1591 <td class="memname"><a class="el" href="group__compiler__conntrol__gr.html#gaba87361bfad2ae52cfe2f40c1a1dbf9c">__STATIC_INLINE</a> void ARM_MPU_SetMemAttr </td>
1593 <td class="paramtype">uint8_t </td>
1594 <td class="paramname"><em>idx</em>, </td>
1597 <td class="paramkey"></td>
1599 <td class="paramtype">uint8_t </td>
1600 <td class="paramname"><em>attr</em> </td>
1608 </div><div class="memdoc">
1609 <p>Set the memory attribute encoding. </p><dl class="params"><dt>Parameters</dt><dd>
1610 <table class="params">
1611 <tr><td class="paramname">idx</td><td>The attribute index to be set [0-7] </td></tr>
1612 <tr><td class="paramname">attr</td><td>The attribute value to be set. </td></tr>
1619 <a id="ga5100a150a755902af2455a455a329ef9" name="ga5100a150a755902af2455a455a329ef9"></a>
1620 <h2 class="memtitle"><span class="permalink"><a href="#ga5100a150a755902af2455a455a329ef9">◆ </a></span>ARM_MPU_SetMemAttr_NS()</h2>
1622 <div class="memitem">
1623 <div class="memproto">
1624 <table class="memname">
1626 <td class="memname"><a class="el" href="group__compiler__conntrol__gr.html#gaba87361bfad2ae52cfe2f40c1a1dbf9c">__STATIC_INLINE</a> void ARM_MPU_SetMemAttr_NS </td>
1628 <td class="paramtype">uint8_t </td>
1629 <td class="paramname"><em>idx</em>, </td>
1632 <td class="paramkey"></td>
1634 <td class="paramtype">uint8_t </td>
1635 <td class="paramname"><em>attr</em> </td>
1643 </div><div class="memdoc">
1644 <p>Set the memory attribute encoding to the Non-secure MPU. </p><dl class="params"><dt>Parameters</dt><dd>
1645 <table class="params">
1646 <tr><td class="paramname">idx</td><td>The attribute index to be set [0-7] </td></tr>
1647 <tr><td class="paramname">attr</td><td>The attribute value to be set. </td></tr>
1654 <a id="ga1799413f08a157d636a1491371c15ce2" name="ga1799413f08a157d636a1491371c15ce2"></a>
1655 <h2 class="memtitle"><span class="permalink"><a href="#ga1799413f08a157d636a1491371c15ce2">◆ </a></span>ARM_MPU_SetMemAttrEx()</h2>
1657 <div class="memitem">
1658 <div class="memproto">
1659 <table class="memname">
1661 <td class="memname"><a class="el" href="group__compiler__conntrol__gr.html#gaba87361bfad2ae52cfe2f40c1a1dbf9c">__STATIC_INLINE</a> void ARM_MPU_SetMemAttrEx </td>
1663 <td class="paramtype"><a class="el" href="structMPU__Type.html">MPU_Type</a> * </td>
1664 <td class="paramname"><em>mpu</em>, </td>
1667 <td class="paramkey"></td>
1669 <td class="paramtype">uint8_t </td>
1670 <td class="paramname"><em>idx</em>, </td>
1673 <td class="paramkey"></td>
1675 <td class="paramtype">uint8_t </td>
1676 <td class="paramname"><em>attr</em> </td>
1684 </div><div class="memdoc">
1685 <p>Set the memory attribute encoding to the given MPU. </p><dl class="params"><dt>Parameters</dt><dd>
1686 <table class="params">
1687 <tr><td class="paramname">mpu</td><td>Pointer to the MPU to be configured. </td></tr>
1688 <tr><td class="paramname">idx</td><td>The attribute index to be set [0-7] </td></tr>
1689 <tr><td class="paramname">attr</td><td>The attribute value to be set. </td></tr>
1696 <a id="ga6d7f220015c070c0e469948c1775ee3d" name="ga6d7f220015c070c0e469948c1775ee3d"></a>
1697 <h2 class="memtitle"><span class="permalink"><a href="#ga6d7f220015c070c0e469948c1775ee3d">◆ </a></span>ARM_MPU_SetRegion()</h2>
1699 <div class="memitem">
1700 <div class="memproto">
1701 <table class="memname">
1703 <td class="memname"><a class="el" href="group__compiler__conntrol__gr.html#gaba87361bfad2ae52cfe2f40c1a1dbf9c">__STATIC_INLINE</a> void ARM_MPU_SetRegion </td>
1705 <td class="paramtype">uint32_t </td>
1706 <td class="paramname"><em>rnr</em>, </td>
1709 <td class="paramkey"></td>
1711 <td class="paramtype">uint32_t </td>
1712 <td class="paramname"><em>rbar</em>, </td>
1715 <td class="paramkey"></td>
1717 <td class="paramtype">uint32_t </td>
1718 <td class="paramname"><em>rlar</em> </td>
1726 </div><div class="memdoc">
1727 <p>Configure the given MPU region. </p><dl class="params"><dt>Parameters</dt><dd>
1728 <table class="params">
1729 <tr><td class="paramname">rnr</td><td>Region number to be configured. </td></tr>
1730 <tr><td class="paramname">rbar</td><td>Value for RBAR register. </td></tr>
1731 <tr><td class="paramname">rlar</td><td>Value for RLAR register. </td></tr>
1738 <a id="ga7566931ca9bb9f22d213a67ec5f8c745" name="ga7566931ca9bb9f22d213a67ec5f8c745"></a>
1739 <h2 class="memtitle"><span class="permalink"><a href="#ga7566931ca9bb9f22d213a67ec5f8c745">◆ </a></span>ARM_MPU_SetRegion_NS()</h2>
1741 <div class="memitem">
1742 <div class="memproto">
1743 <table class="memname">
1745 <td class="memname"><a class="el" href="group__compiler__conntrol__gr.html#gaba87361bfad2ae52cfe2f40c1a1dbf9c">__STATIC_INLINE</a> void ARM_MPU_SetRegion_NS </td>
1747 <td class="paramtype">uint32_t </td>
1748 <td class="paramname"><em>rnr</em>, </td>
1751 <td class="paramkey"></td>
1753 <td class="paramtype">uint32_t </td>
1754 <td class="paramname"><em>rbar</em>, </td>
1757 <td class="paramkey"></td>
1759 <td class="paramtype">uint32_t </td>
1760 <td class="paramname"><em>rlar</em> </td>
1768 </div><div class="memdoc">
1769 <p>Configure the given Non-secure MPU region. </p><dl class="params"><dt>Parameters</dt><dd>
1770 <table class="params">
1771 <tr><td class="paramname">rnr</td><td>Region number to be configured. </td></tr>
1772 <tr><td class="paramname">rbar</td><td>Value for RBAR register. </td></tr>
1773 <tr><td class="paramname">rlar</td><td>Value for RLAR register. </td></tr>
1780 <a id="ga3d50ba8546252bea959e45c8fdf16993" name="ga3d50ba8546252bea959e45c8fdf16993"></a>
1781 <h2 class="memtitle"><span class="permalink"><a href="#ga3d50ba8546252bea959e45c8fdf16993">◆ </a></span>ARM_MPU_SetRegionEx()</h2>
1783 <div class="memitem">
1784 <div class="memproto">
1785 <table class="memname">
1787 <td class="memname"><a class="el" href="group__compiler__conntrol__gr.html#gaba87361bfad2ae52cfe2f40c1a1dbf9c">__STATIC_INLINE</a> void ARM_MPU_SetRegionEx </td>
1789 <td class="paramtype"><a class="el" href="structMPU__Type.html">MPU_Type</a> * </td>
1790 <td class="paramname"><em>mpu</em>, </td>
1793 <td class="paramkey"></td>
1795 <td class="paramtype">uint32_t </td>
1796 <td class="paramname"><em>rnr</em>, </td>
1799 <td class="paramkey"></td>
1801 <td class="paramtype">uint32_t </td>
1802 <td class="paramname"><em>rbar</em>, </td>
1805 <td class="paramkey"></td>
1807 <td class="paramtype">uint32_t </td>
1808 <td class="paramname"><em>rlar</em> </td>
1816 </div><div class="memdoc">
1817 <p>Configure the given MPU region of the given MPU. </p><dl class="params"><dt>Parameters</dt><dd>
1818 <table class="params">
1819 <tr><td class="paramname">mpu</td><td>Pointer to MPU to be used. </td></tr>
1820 <tr><td class="paramname">rnr</td><td>Region number to be configured. </td></tr>
1821 <tr><td class="paramname">rbar</td><td>Value for RBAR register. </td></tr>
1822 <tr><td class="paramname">rlar</td><td>Value for RLAR register. </td></tr>
1829 <a id="gabd11943b38cdf185dcb8e60e459d5854" name="gabd11943b38cdf185dcb8e60e459d5854"></a>
1830 <h2 class="memtitle"><span class="permalink"><a href="#gabd11943b38cdf185dcb8e60e459d5854">◆ </a></span>ARM_MPU_TYPE()</h2>
1832 <div class="memitem">
1833 <div class="memproto">
1834 <table class="memname">
1836 <td class="memname"><a class="el" href="group__compiler__conntrol__gr.html#gaba87361bfad2ae52cfe2f40c1a1dbf9c">__STATIC_INLINE</a> uint32_t ARM_MPU_TYPE </td>
1838 <td class="paramname"></td><td>)</td>
1842 </div><div class="memdoc">
1844 <p>Read MPU Type Register. </p>
1845 <dl class="section return"><dt>Returns</dt><dd>Number of MPU regions </dd></dl>
1849 </div><!-- contents -->
1850 </div><!-- doc-content -->
1851 <!-- start footer part -->
1852 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
1855 <script type="text/javascript">
1857 writeFooter.call(this);