]> begriffs open source - cmsis/blob - main/Driver/Driver__Storage_8h.html
Update documentation for branch main
[cmsis] / main / Driver / Driver__Storage_8h.html
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">
4 <head>
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-Driver: Driver_Storage.h File Reference</title>
9 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
10 <link href="tabs.css" rel="stylesheet" type="text/css"/>
11 <link href="extra_navtree.css" rel="stylesheet" type="text/css"/>
12 <link href="extra_stylesheet.css" rel="stylesheet" type="text/css"/>
13 <link href="extra_search.css" rel="stylesheet" type="text/css"/>
14 <script type="text/javascript" src="jquery.js"></script>
15 <script type="text/javascript" src="dynsections.js"></script>
16 <script type="text/javascript" src="printComponentTabs.js"></script>
17 <script type="text/javascript" src="footer.js"></script>
18 <script type="text/javascript" src="navtree.js"></script>
19 <link href="navtree.css" rel="stylesheet" type="text/css"/>
20 <script type="text/javascript" src="resize.js"></script>
21 <script type="text/javascript" src="navtreedata.js"></script>
22 <script type="text/javascript" src="navtree.js"></script>
23 <link href="search/search.css" rel="stylesheet" type="text/css"/>
24 <script type="text/javascript" src="search/searchdata.js"></script>
25 <script type="text/javascript" src="search/search.js"></script>
26 <script type="text/javascript">
27 /* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
28   $(document).ready(function() { init_search(); });
29 /* @license-end */
30 </script>
31 <script type="text/javascript" src="darkmode_toggle.js"></script>
32 <link href="extra_stylesheet.css" rel="stylesheet" type="text/css"/>
33 <link href="extra_navtree.css" rel="stylesheet" type="text/css"/>
34 <link href="extra_search.css" rel="stylesheet" type="text/css"/>
35 <link href="version.css" rel="stylesheet" type="text/css" />
36 <script type="text/javascript" src="../../version.js"></script>
37 </head>
38 <body>
39 <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
40 <div id="titlearea">
41 <table cellspacing="0" cellpadding="0">
42  <tbody>
43  <tr style="height: 55px;">
44   <td id="projectlogo" style="padding: 1.5em;"><img alt="Logo" src="cmsis_logo_white_small.png"/></td>
45   <td style="padding-left: 1em; padding-bottom: 1em;padding-top: 1em;">
46    <div id="projectname">CMSIS-Driver
47    &#160;<span id="projectnumber"><script type="text/javascript">
48      <!--
49      writeHeader.call(this);
50      writeVersionDropdown.call(this, "CMSIS-Driver");
51      //-->
52     </script>
53    </span>
54    </div>
55    <div id="projectbrief">Peripheral Interface for Middleware and Application Code</div>
56   </td>
57    <td>        <div id="MSearchBox" class="MSearchBoxInactive">
58         <span class="left">
59           <span id="MSearchSelect"                onmouseover="return searchBox.OnSearchSelectShow()"                onmouseout="return searchBox.OnSearchSelectHide()">&#160;</span>
60           <input type="text" id="MSearchField" value="" placeholder="Search" accesskey="S"
61                onfocus="searchBox.OnSearchFieldFocus(true)" 
62                onblur="searchBox.OnSearchFieldFocus(false)" 
63                onkeyup="searchBox.OnSearchFieldChange(event)"/>
64           </span><span class="right">
65             <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
66           </span>
67         </div>
68 </td>
69   <!--END !PROJECT_NAME-->
70  </tr>
71  </tbody>
72 </table>
73 </div>
74 <!-- end header part -->
75 <div id="CMSISnav" class="tabs1">
76   <ul class="tablist">
77     <script type="text/javascript">
78       writeComponentTabs.call(this);
79     </script>
80   </ul>
81 </div>
82 <script type="text/javascript">
83   writeSubComponentTabs.call(this);
84 </script>
85 <!-- Generated by Doxygen 1.9.6 -->
86 <script type="text/javascript">
87 /* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
88 var searchBox = new SearchBox("searchBox", "search/",'.html');
89 /* @license-end */
90 </script>
91 </div><!-- top -->
92 <div id="side-nav" class="ui-resizable side-nav-resizable">
93   <div id="nav-tree">
94     <div id="nav-tree-contents">
95       <div id="nav-sync" class="sync"></div>
96     </div>
97   </div>
98   <div id="splitbar" style="-moz-user-select:none;" 
99        class="ui-resizable-handle">
100   </div>
101 </div>
102 <script type="text/javascript">
103 /* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
104 $(document).ready(function(){initNavTree('Driver__Storage_8h.html',''); initResizable(); });
105 /* @license-end */
106 </script>
107 <div id="doc-content">
108 <!-- window showing the filter options -->
109 <div id="MSearchSelectWindow"
110      onmouseover="return searchBox.OnSearchSelectShow()"
111      onmouseout="return searchBox.OnSearchSelectHide()"
112      onkeydown="return searchBox.OnSearchSelectKey(event)">
113 </div>
114
115 <!-- iframe showing the search results (closed by default) -->
116 <div id="MSearchResultsWindow">
117 <div id="MSearchResults">
118 <div class="SRPage">
119 <div id="SRIndex">
120 <div id="SRResults"></div>
121 <div class="SRStatus" id="Loading">Loading...</div>
122 <div class="SRStatus" id="Searching">Searching...</div>
123 <div class="SRStatus" id="NoMatches">No Matches</div>
124 </div>
125 </div>
126 </div>
127 </div>
128
129 <div class="header">
130   <div class="summary">
131 <a href="#nested-classes">Data Structures</a> &#124;
132 <a href="#define-members">Macros</a> &#124;
133 <a href="#typedef-members">Typedefs</a> &#124;
134 <a href="#enum-members">Enumerations</a>  </div>
135   <div class="headertitle"><div class="title">Driver_Storage.h File Reference</div></div>
136 </div><!--header-->
137 <div class="contents">
138 <table class="memberdecls">
139 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
140 Data Structures</h2></td></tr>
141 <tr class="memitem:structARM__STORAGE__BLOCK__ATTRIBUTES"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__storage__interface__gr.html#structARM__STORAGE__BLOCK__ATTRIBUTES">ARM_STORAGE_BLOCK_ATTRIBUTES</a></td></tr>
142 <tr class="memdesc:structARM__STORAGE__BLOCK__ATTRIBUTES"><td class="mdescLeft">&#160;</td><td class="mdescRight">Attributes of the storage range within a storage block.  <a href="group__storage__interface__gr.html#structARM__STORAGE__BLOCK__ATTRIBUTES">More...</a><br /></td></tr>
143 <tr class="separator:structARM__STORAGE__BLOCK__ATTRIBUTES"><td class="memSeparator" colspan="2">&#160;</td></tr>
144 <tr class="memitem:structARM__STORAGE__BLOCK"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__storage__interface__gr.html#structARM__STORAGE__BLOCK">ARM_STORAGE_BLOCK</a></td></tr>
145 <tr class="memdesc:structARM__STORAGE__BLOCK"><td class="mdescLeft">&#160;</td><td class="mdescRight">A storage block is a range of memory with uniform attributes.  <a href="group__storage__interface__gr.html#structARM__STORAGE__BLOCK">More...</a><br /></td></tr>
146 <tr class="separator:structARM__STORAGE__BLOCK"><td class="memSeparator" colspan="2">&#160;</td></tr>
147 <tr class="memitem:structARM__STORAGE__SECURITY__FEATURES"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="Driver__Storage_8h.html#structARM__STORAGE__SECURITY__FEATURES">ARM_STORAGE_SECURITY_FEATURES</a></td></tr>
148 <tr class="separator:structARM__STORAGE__SECURITY__FEATURES"><td class="memSeparator" colspan="2">&#160;</td></tr>
149 <tr class="memitem:structARM__STORAGE__INFO"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__storage__interface__gr.html#structARM__STORAGE__INFO">ARM_STORAGE_INFO</a></td></tr>
150 <tr class="separator:structARM__STORAGE__INFO"><td class="memSeparator" colspan="2">&#160;</td></tr>
151 <tr class="memitem:structARM__STORAGE__STATUS"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__storage__interface__gr.html#structARM__STORAGE__STATUS">ARM_STORAGE_STATUS</a></td></tr>
152 <tr class="memdesc:structARM__STORAGE__STATUS"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operating status of the storage controller.  <a href="group__storage__interface__gr.html#structARM__STORAGE__STATUS">More...</a><br /></td></tr>
153 <tr class="separator:structARM__STORAGE__STATUS"><td class="memSeparator" colspan="2">&#160;</td></tr>
154 <tr class="memitem:structARM__STORAGE__CAPABILITIES"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__storage__interface__gr.html#structARM__STORAGE__CAPABILITIES">ARM_STORAGE_CAPABILITIES</a></td></tr>
155 <tr class="memdesc:structARM__STORAGE__CAPABILITIES"><td class="mdescLeft">&#160;</td><td class="mdescRight">Storage Driver API Capabilities.  <a href="group__storage__interface__gr.html#structARM__STORAGE__CAPABILITIES">More...</a><br /></td></tr>
156 <tr class="separator:structARM__STORAGE__CAPABILITIES"><td class="memSeparator" colspan="2">&#160;</td></tr>
157 <tr class="memitem:structARM__DRIVER__STORAGE"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__storage__interface__gr.html#structARM__DRIVER__STORAGE">ARM_DRIVER_STORAGE</a></td></tr>
158 <tr class="separator:structARM__DRIVER__STORAGE"><td class="memSeparator" colspan="2">&#160;</td></tr>
159 </table><table class="memberdecls">
160 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="define-members" name="define-members"></a>
161 Macros</h2></td></tr>
162 <tr class="memitem:a2ec531cd9d7d4916f2479efd4ff65b96"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="Driver__Storage_8h.html#a2ec531cd9d7d4916f2479efd4ff65b96">ARM_STORAGE_API_VERSION</a>&#160;&#160;&#160;<a class="el" href="Driver__Common_8h.html#a43c7ca1eb0786d818624246c09932a74">ARM_DRIVER_VERSION_MAJOR_MINOR</a>(1,2)  /* API version */</td></tr>
163 <tr class="separator:a2ec531cd9d7d4916f2479efd4ff65b96"><td class="memSeparator" colspan="2">&#160;</td></tr>
164 <tr class="memitem:a21777a6487158bdc1f113996e65ff0bd"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="Driver__Storage_8h.html#a21777a6487158bdc1f113996e65ff0bd">_ARM_Driver_Storage_</a>(n)&#160;&#160;&#160;Driver_Storage##n</td></tr>
165 <tr class="separator:a21777a6487158bdc1f113996e65ff0bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
166 <tr class="memitem:af4ce245f055ef69edd1306ef8fde37cf"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="Driver__Storage_8h.html#af4ce245f055ef69edd1306ef8fde37cf">ARM_Driver_Storage_</a>(n)&#160;&#160;&#160;<a class="el" href="Driver__Storage_8h.html#a21777a6487158bdc1f113996e65ff0bd">_ARM_Driver_Storage_</a>(n)</td></tr>
167 <tr class="separator:af4ce245f055ef69edd1306ef8fde37cf"><td class="memSeparator" colspan="2">&#160;</td></tr>
168 <tr class="memitem:ab8112c1c73ba434c93d19fa1a445c6bf"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="Driver__Storage_8h.html#ab8112c1c73ba434c93d19fa1a445c6bf">ARM_STORAGE_INVALID_OFFSET</a>&#160;&#160;&#160;(0xFFFFFFFFFFFFFFFFULL)</td></tr>
169 <tr class="memdesc:ab8112c1c73ba434c93d19fa1a445c6bf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Invalid address (relative to a storage controller's address space). A storage block may never start at this address.  <br /></td></tr>
170 <tr class="separator:ab8112c1c73ba434c93d19fa1a445c6bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
171 <tr class="memitem:a5499f02c78acaccb22d6ecc6be195058"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="Driver__Storage_8h.html#a5499f02c78acaccb22d6ecc6be195058">ARM_STORAGE_INVALID_ADDRESS</a>&#160;&#160;&#160;(0xFFFFFFFFUL)</td></tr>
172 <tr class="memdesc:a5499f02c78acaccb22d6ecc6be195058"><td class="mdescLeft">&#160;</td><td class="mdescRight">Invalid address within the processor's memory address space. Refer to memory-mapped storage, i.e. <a class="el" href="group__storage__interface__gr.html#a974a1edf42132d42beccc9819417307b">ARM_DRIVER_STORAGE::ResolveAddress()</a>.  <br /></td></tr>
173 <tr class="separator:a5499f02c78acaccb22d6ecc6be195058"><td class="memSeparator" colspan="2">&#160;</td></tr>
174 <tr class="memitem:a7d81999c123625db0e66b8a2c2b0e1b9"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="Driver__Storage_8h.html#a7d81999c123625db0e66b8a2c2b0e1b9">ARM_STORAGE_ERROR_NOT_ERASABLE</a>&#160;&#160;&#160;(<a class="el" href="group__execution__status.html#ga5a2b5d68f6649598d099b88c0eaee3e5">ARM_DRIVER_ERROR_SPECIFIC</a> - 1)</td></tr>
175 <tr class="memdesc:a7d81999c123625db0e66b8a2c2b0e1b9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Part (or all) of the range provided to Erase() isn't erasable.  <br /></td></tr>
176 <tr class="separator:a7d81999c123625db0e66b8a2c2b0e1b9"><td class="memSeparator" colspan="2">&#160;</td></tr>
177 <tr class="memitem:a5a97bf8a1813abdf6fef26f0d777a252"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="Driver__Storage_8h.html#a5a97bf8a1813abdf6fef26f0d777a252">ARM_STORAGE_ERROR_NOT_PROGRAMMABLE</a>&#160;&#160;&#160;(<a class="el" href="group__execution__status.html#ga5a2b5d68f6649598d099b88c0eaee3e5">ARM_DRIVER_ERROR_SPECIFIC</a> - 2)</td></tr>
178 <tr class="memdesc:a5a97bf8a1813abdf6fef26f0d777a252"><td class="mdescLeft">&#160;</td><td class="mdescRight">Part (or all) of the range provided to ProgramData() isn't programmable.  <br /></td></tr>
179 <tr class="separator:a5a97bf8a1813abdf6fef26f0d777a252"><td class="memSeparator" colspan="2">&#160;</td></tr>
180 <tr class="memitem:a71f6e5ed403c06a5c99c4882bacdf76e"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="Driver__Storage_8h.html#a71f6e5ed403c06a5c99c4882bacdf76e">ARM_STORAGE_ERROR_PROTECTED</a>&#160;&#160;&#160;(<a class="el" href="group__execution__status.html#ga5a2b5d68f6649598d099b88c0eaee3e5">ARM_DRIVER_ERROR_SPECIFIC</a> - 3)</td></tr>
181 <tr class="memdesc:a71f6e5ed403c06a5c99c4882bacdf76e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Part (or all) of the range to Erase() or ProgramData() is protected.  <br /></td></tr>
182 <tr class="separator:a71f6e5ed403c06a5c99c4882bacdf76e"><td class="memSeparator" colspan="2">&#160;</td></tr>
183 <tr class="memitem:a955b1ca2ea24cfd3a8923731b581cfd4"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="Driver__Storage_8h.html#a955b1ca2ea24cfd3a8923731b581cfd4">ARM_STORAGE_VALID_BLOCK</a>(BLK)&#160;&#160;&#160;(((BLK)-&gt;addr != <a class="el" href="Driver__Storage_8h.html#ab8112c1c73ba434c93d19fa1a445c6bf">ARM_STORAGE_INVALID_OFFSET</a>) &amp;&amp; ((BLK)-&gt;size != 0))</td></tr>
184 <tr class="separator:a955b1ca2ea24cfd3a8923731b581cfd4"><td class="memSeparator" colspan="2">&#160;</td></tr>
185 <tr class="memitem:a66cd2a20f084db2d28f6a98cbc503d8a"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="Driver__Storage_8h.html#a66cd2a20f084db2d28f6a98cbc503d8a">ARM_STORAGE_PROGRAMMABILITY_RAM</a>&#160;&#160;&#160;(0U)</td></tr>
186 <tr class="memdesc:a66cd2a20f084db2d28f6a98cbc503d8a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Values for encoding storage memory-types with respect to programmability.  <br /></td></tr>
187 <tr class="separator:a66cd2a20f084db2d28f6a98cbc503d8a"><td class="memSeparator" colspan="2">&#160;</td></tr>
188 <tr class="memitem:af232495db19beb7025aebc6e3f9e7553"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="Driver__Storage_8h.html#af232495db19beb7025aebc6e3f9e7553">ARM_STORAGE_PROGRAMMABILITY_ROM</a>&#160;&#160;&#160;(1U)</td></tr>
189 <tr class="memdesc:af232495db19beb7025aebc6e3f9e7553"><td class="mdescLeft">&#160;</td><td class="mdescRight">Read-only memory.  <br /></td></tr>
190 <tr class="separator:af232495db19beb7025aebc6e3f9e7553"><td class="memSeparator" colspan="2">&#160;</td></tr>
191 <tr class="memitem:a373cda87e59c51b2a04f46f4d31d5dd8"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="Driver__Storage_8h.html#a373cda87e59c51b2a04f46f4d31d5dd8">ARM_STORAGE_PROGRAMMABILITY_WORM</a>&#160;&#160;&#160;(2U)</td></tr>
192 <tr class="memdesc:a373cda87e59c51b2a04f46f4d31d5dd8"><td class="mdescLeft">&#160;</td><td class="mdescRight">write-once-read-only-memory (WORM).  <br /></td></tr>
193 <tr class="separator:a373cda87e59c51b2a04f46f4d31d5dd8"><td class="memSeparator" colspan="2">&#160;</td></tr>
194 <tr class="memitem:a08670c9b9270eba2e030d90c4af9317c"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="Driver__Storage_8h.html#a08670c9b9270eba2e030d90c4af9317c">ARM_STORAGE_PROGRAMMABILITY_ERASABLE</a>&#160;&#160;&#160;(3U)</td></tr>
195 <tr class="memdesc:a08670c9b9270eba2e030d90c4af9317c"><td class="mdescLeft">&#160;</td><td class="mdescRight">re-programmable based on erase. Supports multiple writes.  <br /></td></tr>
196 <tr class="separator:a08670c9b9270eba2e030d90c4af9317c"><td class="memSeparator" colspan="2">&#160;</td></tr>
197 <tr class="memitem:afb918a33a4b8655321c45dfb99b86339"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="Driver__Storage_8h.html#afb918a33a4b8655321c45dfb99b86339">ARM_RETENTION_WHILE_DEVICE_ACTIVE</a>&#160;&#160;&#160;(0U)</td></tr>
198 <tr class="memdesc:afb918a33a4b8655321c45dfb99b86339"><td class="mdescLeft">&#160;</td><td class="mdescRight">Data is retained only during device activity.  <br /></td></tr>
199 <tr class="separator:afb918a33a4b8655321c45dfb99b86339"><td class="memSeparator" colspan="2">&#160;</td></tr>
200 <tr class="memitem:a42cdcdcda35d29552ed4558542770dbe"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="Driver__Storage_8h.html#a42cdcdcda35d29552ed4558542770dbe">ARM_RETENTION_ACROSS_SLEEP</a>&#160;&#160;&#160;(1U)</td></tr>
201 <tr class="memdesc:a42cdcdcda35d29552ed4558542770dbe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Data is retained across processor sleep.  <br /></td></tr>
202 <tr class="separator:a42cdcdcda35d29552ed4558542770dbe"><td class="memSeparator" colspan="2">&#160;</td></tr>
203 <tr class="memitem:acd3c172f37d0c13ac5d5c1477837c638"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="Driver__Storage_8h.html#acd3c172f37d0c13ac5d5c1477837c638">ARM_RETENTION_ACROSS_DEEP_SLEEP</a>&#160;&#160;&#160;(2U)</td></tr>
204 <tr class="memdesc:acd3c172f37d0c13ac5d5c1477837c638"><td class="mdescLeft">&#160;</td><td class="mdescRight">Data is retained across processor deep-sleep.  <br /></td></tr>
205 <tr class="separator:acd3c172f37d0c13ac5d5c1477837c638"><td class="memSeparator" colspan="2">&#160;</td></tr>
206 <tr class="memitem:a1b8e7fc9ce024ef2e7d2efb24793c101"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="Driver__Storage_8h.html#a1b8e7fc9ce024ef2e7d2efb24793c101">ARM_RETENTION_BATTERY_BACKED</a>&#160;&#160;&#160;(3U)</td></tr>
207 <tr class="memdesc:a1b8e7fc9ce024ef2e7d2efb24793c101"><td class="mdescLeft">&#160;</td><td class="mdescRight">Data is battery-backed. Device can be powered off.  <br /></td></tr>
208 <tr class="separator:a1b8e7fc9ce024ef2e7d2efb24793c101"><td class="memSeparator" colspan="2">&#160;</td></tr>
209 <tr class="memitem:aec136119f63303cf9309e1d787e02ca3"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="Driver__Storage_8h.html#aec136119f63303cf9309e1d787e02ca3">ARM_RETENTION_NVM</a>&#160;&#160;&#160;(4U)</td></tr>
210 <tr class="memdesc:aec136119f63303cf9309e1d787e02ca3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Data is retained in non-volatile memory.  <br /></td></tr>
211 <tr class="separator:aec136119f63303cf9309e1d787e02ca3"><td class="memSeparator" colspan="2">&#160;</td></tr>
212 <tr class="memitem:ab6f380932e1a8e7802be024a224faf93"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="Driver__Storage_8h.html#ab6f380932e1a8e7802be024a224faf93">ARM_STORAGE_PROGRAM_CYCLES_INFINITE</a>&#160;&#160;&#160;(0UL)</td></tr>
213 <tr class="separator:ab6f380932e1a8e7802be024a224faf93"><td class="memSeparator" colspan="2">&#160;</td></tr>
214 </table><table class="memberdecls">
215 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="typedef-members" name="typedef-members"></a>
216 Typedefs</h2></td></tr>
217 <tr class="memitem:ga4b290224fea782e6d2ad06f541b28a98"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__storage__interface__gr.html#ga4b290224fea782e6d2ad06f541b28a98">ARM_Storage_Callback_t</a>) (int32_t status, <a class="el" href="group__storage__interface__gr.html#ga3a9277f89946d61c41b22da72e3eef7c">ARM_STORAGE_OPERATION</a> operation)</td></tr>
218 <tr class="separator:ga4b290224fea782e6d2ad06f541b28a98"><td class="memSeparator" colspan="2">&#160;</td></tr>
219 </table><table class="memberdecls">
220 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="enum-members" name="enum-members"></a>
221 Enumerations</h2></td></tr>
222 <tr class="memitem:ga3a9277f89946d61c41b22da72e3eef7c"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__storage__interface__gr.html#ga3a9277f89946d61c41b22da72e3eef7c">ARM_STORAGE_OPERATION</a> { <br />
223 &#160;&#160;<a class="el" href="group__storage__interface__gr.html#ga3a9277f89946d61c41b22da72e3eef7cac82e2ca0f9b7ec94e24ae56c45f12f8c">ARM_STORAGE_OPERATION_GET_VERSION</a>
224 , <br />
225 &#160;&#160;<a class="el" href="group__storage__interface__gr.html#ga3a9277f89946d61c41b22da72e3eef7ca314621ae4384fef7094d8724d59b65c4">ARM_STORAGE_OPERATION_GET_CAPABILITIES</a>
226 , <br />
227 &#160;&#160;<a class="el" href="group__storage__interface__gr.html#ga3a9277f89946d61c41b22da72e3eef7caca3985b874bf393dc2e448b339668971">ARM_STORAGE_OPERATION_INITIALIZE</a>
228 , <br />
229 &#160;&#160;<a class="el" href="group__storage__interface__gr.html#ga3a9277f89946d61c41b22da72e3eef7cab9488e567ad58b16c5df2637df3902e9">ARM_STORAGE_OPERATION_UNINITIALIZE</a>
230 , <br />
231 &#160;&#160;<a class="el" href="group__storage__interface__gr.html#ga3a9277f89946d61c41b22da72e3eef7ca213a74ac5a692a80f17fd6d8e6565e05">ARM_STORAGE_OPERATION_POWER_CONTROL</a>
232 , <br />
233 &#160;&#160;<a class="el" href="group__storage__interface__gr.html#ga3a9277f89946d61c41b22da72e3eef7ca177812f3cb27c413473d94ebe9480454">ARM_STORAGE_OPERATION_READ_DATA</a>
234 , <br />
235 &#160;&#160;<a class="el" href="group__storage__interface__gr.html#ga3a9277f89946d61c41b22da72e3eef7ca586b4774a7a092d1932d3415cc42abb0">ARM_STORAGE_OPERATION_PROGRAM_DATA</a>
236 , <br />
237 &#160;&#160;<a class="el" href="group__storage__interface__gr.html#ga3a9277f89946d61c41b22da72e3eef7cab52a1d10b8087452fd97af8cdb9a6f75">ARM_STORAGE_OPERATION_ERASE</a>
238 , <br />
239 &#160;&#160;<a class="el" href="group__storage__interface__gr.html#ga3a9277f89946d61c41b22da72e3eef7ca60a0511bd5e32db2a22d3ab2023a601e">ARM_STORAGE_OPERATION_ERASE_ALL</a>
240 , <br />
241 &#160;&#160;<a class="el" href="group__storage__interface__gr.html#ga3a9277f89946d61c41b22da72e3eef7ca7c595cd3c439753efe0a0b17efd7bb7f">ARM_STORAGE_OPERATION_GET_STATUS</a>
242 , <br />
243 &#160;&#160;<a class="el" href="group__storage__interface__gr.html#ga3a9277f89946d61c41b22da72e3eef7ca0fe0ef7c0a9e69d053a0419282248f40">ARM_STORAGE_OPERATION_GET_INFO</a>
244 , <br />
245 &#160;&#160;<a class="el" href="group__storage__interface__gr.html#ga3a9277f89946d61c41b22da72e3eef7ca3292512d0222e4119d0cdf77de1508df">ARM_STORAGE_OPERATION_RESOLVE_ADDRESS</a>
246 , <br />
247 &#160;&#160;<a class="el" href="group__storage__interface__gr.html#ga3a9277f89946d61c41b22da72e3eef7ca9bfab6ee9caa3ace32338d4ef2d856f5">ARM_STORAGE_OPERATION_GET_NEXT_BLOCK</a>
248 , <br />
249 &#160;&#160;<a class="el" href="group__storage__interface__gr.html#ga3a9277f89946d61c41b22da72e3eef7cac75096931c3d29af1029f25fc44e7523">ARM_STORAGE_OPERATION_GET_BLOCK</a>
250 <br />
251  }</td></tr>
252 <tr class="separator:ga3a9277f89946d61c41b22da72e3eef7c"><td class="memSeparator" colspan="2">&#160;</td></tr>
253 </table>
254 <hr/><h2 class="groupheader">Data Structure Documentation</h2>
255 <a name="structARM__STORAGE__SECURITY__FEATURES" id="structARM__STORAGE__SECURITY__FEATURES"></a>
256 <h2 class="memtitle"><span class="permalink"><a href="#structARM__STORAGE__SECURITY__FEATURES">&#9670;&#160;</a></span>ARM_STORAGE_SECURITY_FEATURES</h2>
257
258 <div class="memitem">
259 <div class="memproto">
260       <table class="memname">
261         <tr>
262           <td class="memname">struct ARM_STORAGE_SECURITY_FEATURES</td>
263         </tr>
264       </table>
265 </div><div class="memdoc">
266 <div class="textblock"><p>Device Data Security Protection Features. Applicable mostly to EXTERNAL_NVM. </p>
267 </div><table class="fieldtable">
268 <tr><th colspan="3">Data Fields</th></tr>
269 <tr><td class="fieldtype">
270 <a id="abbd64eb8edcf2263db5c8ac140dc0448" name="abbd64eb8edcf2263db5c8ac140dc0448"></a>uint32_t</td>
271 <td class="fieldname">
272 acls: 1</td>
273 <td class="fielddoc">
274 Protection against internal software attacks using ACLs. </td></tr>
275 <tr><td class="fieldtype">
276 <a id="affe0253b35f41c44ea06ae1e87d91012" name="affe0253b35f41c44ea06ae1e87d91012"></a>uint32_t</td>
277 <td class="fieldname">
278 rollback_protection: 1</td>
279 <td class="fielddoc">
280 Roll-back protection. Set to true if the creator of the storage can ensure that an external attacker can't force an older firmware to run or to revert back to a previous state. </td></tr>
281 <tr><td class="fieldtype">
282 <a id="ac6f64a064cb84e29a631706586d6000c" name="ac6f64a064cb84e29a631706586d6000c"></a>uint32_t</td>
283 <td class="fieldname">
284 tamper_proof: 1</td>
285 <td class="fielddoc">
286 Tamper-proof memory (will be deleted on tamper-attempts using board level or chip level sensors). </td></tr>
287 <tr><td class="fieldtype">
288 <a id="a47dd9737459c9c5ce48f3e8a04995b9a" name="a47dd9737459c9c5ce48f3e8a04995b9a"></a>uint32_t</td>
289 <td class="fieldname">
290 internal_flash: 1</td>
291 <td class="fielddoc">
292 Internal flash. </td></tr>
293 <tr><td class="fieldtype">
294 <a id="aef9bb556c1530f5d648fd57e73b9a105" name="aef9bb556c1530f5d648fd57e73b9a105"></a>uint32_t</td>
295 <td class="fieldname">
296 reserved1: 12</td>
297 <td class="fielddoc">
298 </td></tr>
299 <tr><td class="fieldtype">
300 <a id="a1b6a0329dd65f25a0ab22496ab708306" name="a1b6a0329dd65f25a0ab22496ab708306"></a>uint32_t</td>
301 <td class="fieldname">
302 software_attacks: 1</td>
303 <td class="fielddoc">
304 device software (malware running on the device). <p>Encode support for hardening against various classes of attacks. </p>
305 </td></tr>
306 <tr><td class="fieldtype">
307 <a id="a3981b8fafe1520f11518f2b6e12ef644" name="a3981b8fafe1520f11518f2b6e12ef644"></a>uint32_t</td>
308 <td class="fieldname">
309 board_level_attacks: 1</td>
310 <td class="fielddoc">
311 board level attacks (debug probes, copy protection fuses.) </td></tr>
312 <tr><td class="fieldtype">
313 <a id="a19a70a7636956745f75a1f1bbb9cc478" name="a19a70a7636956745f75a1f1bbb9cc478"></a>uint32_t</td>
314 <td class="fieldname">
315 chip_level_attacks: 1</td>
316 <td class="fielddoc">
317 chip level attacks (tamper-protection). </td></tr>
318 <tr><td class="fieldtype">
319 <a id="acd90f369373d7551174a981c4083fef1" name="acd90f369373d7551174a981c4083fef1"></a>uint32_t</td>
320 <td class="fieldname">
321 side_channel_attacks: 1</td>
322 <td class="fielddoc">
323 side channel attacks. </td></tr>
324 <tr><td class="fieldtype">
325 <a id="ae673672452e4741c4ab7c174af880a87" name="ae673672452e4741c4ab7c174af880a87"></a>uint32_t</td>
326 <td class="fieldname">
327 reserved2: 12</td>
328 <td class="fielddoc">
329 </td></tr>
330 </table>
331
332 </div>
333 </div>
334 <h2 class="groupheader">Macro Definition Documentation</h2>
335 <a id="a2ec531cd9d7d4916f2479efd4ff65b96" name="a2ec531cd9d7d4916f2479efd4ff65b96"></a>
336 <h2 class="memtitle"><span class="permalink"><a href="#a2ec531cd9d7d4916f2479efd4ff65b96">&#9670;&#160;</a></span>ARM_STORAGE_API_VERSION</h2>
337
338 <div class="memitem">
339 <div class="memproto">
340       <table class="memname">
341         <tr>
342           <td class="memname">#define ARM_STORAGE_API_VERSION&#160;&#160;&#160;<a class="el" href="Driver__Common_8h.html#a43c7ca1eb0786d818624246c09932a74">ARM_DRIVER_VERSION_MAJOR_MINOR</a>(1,2)  /* API version */</td>
343         </tr>
344       </table>
345 </div><div class="memdoc">
346
347 </div>
348 </div>
349 <a id="a21777a6487158bdc1f113996e65ff0bd" name="a21777a6487158bdc1f113996e65ff0bd"></a>
350 <h2 class="memtitle"><span class="permalink"><a href="#a21777a6487158bdc1f113996e65ff0bd">&#9670;&#160;</a></span>_ARM_Driver_Storage_</h2>
351
352 <div class="memitem">
353 <div class="memproto">
354       <table class="memname">
355         <tr>
356           <td class="memname">#define _ARM_Driver_Storage_</td>
357           <td>(</td>
358           <td class="paramtype">&#160;</td>
359           <td class="paramname">n</td><td>)</td>
360           <td>&#160;&#160;&#160;Driver_Storage##n</td>
361         </tr>
362       </table>
363 </div><div class="memdoc">
364
365 </div>
366 </div>
367 <a id="af4ce245f055ef69edd1306ef8fde37cf" name="af4ce245f055ef69edd1306ef8fde37cf"></a>
368 <h2 class="memtitle"><span class="permalink"><a href="#af4ce245f055ef69edd1306ef8fde37cf">&#9670;&#160;</a></span>ARM_Driver_Storage_</h2>
369
370 <div class="memitem">
371 <div class="memproto">
372       <table class="memname">
373         <tr>
374           <td class="memname">#define ARM_Driver_Storage_</td>
375           <td>(</td>
376           <td class="paramtype">&#160;</td>
377           <td class="paramname">n</td><td>)</td>
378           <td>&#160;&#160;&#160;<a class="el" href="Driver__Storage_8h.html#a21777a6487158bdc1f113996e65ff0bd">_ARM_Driver_Storage_</a>(n)</td>
379         </tr>
380       </table>
381 </div><div class="memdoc">
382
383 </div>
384 </div>
385 <a id="ab8112c1c73ba434c93d19fa1a445c6bf" name="ab8112c1c73ba434c93d19fa1a445c6bf"></a>
386 <h2 class="memtitle"><span class="permalink"><a href="#ab8112c1c73ba434c93d19fa1a445c6bf">&#9670;&#160;</a></span>ARM_STORAGE_INVALID_OFFSET</h2>
387
388 <div class="memitem">
389 <div class="memproto">
390       <table class="memname">
391         <tr>
392           <td class="memname">#define ARM_STORAGE_INVALID_OFFSET&#160;&#160;&#160;(0xFFFFFFFFFFFFFFFFULL)</td>
393         </tr>
394       </table>
395 </div><div class="memdoc">
396
397 <p>Invalid address (relative to a storage controller's address space). A storage block may never start at this address. </p>
398
399 </div>
400 </div>
401 <a id="a5499f02c78acaccb22d6ecc6be195058" name="a5499f02c78acaccb22d6ecc6be195058"></a>
402 <h2 class="memtitle"><span class="permalink"><a href="#a5499f02c78acaccb22d6ecc6be195058">&#9670;&#160;</a></span>ARM_STORAGE_INVALID_ADDRESS</h2>
403
404 <div class="memitem">
405 <div class="memproto">
406       <table class="memname">
407         <tr>
408           <td class="memname">#define ARM_STORAGE_INVALID_ADDRESS&#160;&#160;&#160;(0xFFFFFFFFUL)</td>
409         </tr>
410       </table>
411 </div><div class="memdoc">
412
413 <p>Invalid address within the processor's memory address space. Refer to memory-mapped storage, i.e. <a class="el" href="group__storage__interface__gr.html#a974a1edf42132d42beccc9819417307b">ARM_DRIVER_STORAGE::ResolveAddress()</a>. </p>
414
415 </div>
416 </div>
417 <a id="a7d81999c123625db0e66b8a2c2b0e1b9" name="a7d81999c123625db0e66b8a2c2b0e1b9"></a>
418 <h2 class="memtitle"><span class="permalink"><a href="#a7d81999c123625db0e66b8a2c2b0e1b9">&#9670;&#160;</a></span>ARM_STORAGE_ERROR_NOT_ERASABLE</h2>
419
420 <div class="memitem">
421 <div class="memproto">
422       <table class="memname">
423         <tr>
424           <td class="memname">#define ARM_STORAGE_ERROR_NOT_ERASABLE&#160;&#160;&#160;(<a class="el" href="group__execution__status.html#ga5a2b5d68f6649598d099b88c0eaee3e5">ARM_DRIVER_ERROR_SPECIFIC</a> - 1)</td>
425         </tr>
426       </table>
427 </div><div class="memdoc">
428
429 <p>Part (or all) of the range provided to Erase() isn't erasable. </p>
430
431 </div>
432 </div>
433 <a id="a5a97bf8a1813abdf6fef26f0d777a252" name="a5a97bf8a1813abdf6fef26f0d777a252"></a>
434 <h2 class="memtitle"><span class="permalink"><a href="#a5a97bf8a1813abdf6fef26f0d777a252">&#9670;&#160;</a></span>ARM_STORAGE_ERROR_NOT_PROGRAMMABLE</h2>
435
436 <div class="memitem">
437 <div class="memproto">
438       <table class="memname">
439         <tr>
440           <td class="memname">#define ARM_STORAGE_ERROR_NOT_PROGRAMMABLE&#160;&#160;&#160;(<a class="el" href="group__execution__status.html#ga5a2b5d68f6649598d099b88c0eaee3e5">ARM_DRIVER_ERROR_SPECIFIC</a> - 2)</td>
441         </tr>
442       </table>
443 </div><div class="memdoc">
444
445 <p>Part (or all) of the range provided to ProgramData() isn't programmable. </p>
446
447 </div>
448 </div>
449 <a id="a71f6e5ed403c06a5c99c4882bacdf76e" name="a71f6e5ed403c06a5c99c4882bacdf76e"></a>
450 <h2 class="memtitle"><span class="permalink"><a href="#a71f6e5ed403c06a5c99c4882bacdf76e">&#9670;&#160;</a></span>ARM_STORAGE_ERROR_PROTECTED</h2>
451
452 <div class="memitem">
453 <div class="memproto">
454       <table class="memname">
455         <tr>
456           <td class="memname">#define ARM_STORAGE_ERROR_PROTECTED&#160;&#160;&#160;(<a class="el" href="group__execution__status.html#ga5a2b5d68f6649598d099b88c0eaee3e5">ARM_DRIVER_ERROR_SPECIFIC</a> - 3)</td>
457         </tr>
458       </table>
459 </div><div class="memdoc">
460
461 <p>Part (or all) of the range to Erase() or ProgramData() is protected. </p>
462
463 </div>
464 </div>
465 <a id="a955b1ca2ea24cfd3a8923731b581cfd4" name="a955b1ca2ea24cfd3a8923731b581cfd4"></a>
466 <h2 class="memtitle"><span class="permalink"><a href="#a955b1ca2ea24cfd3a8923731b581cfd4">&#9670;&#160;</a></span>ARM_STORAGE_VALID_BLOCK</h2>
467
468 <div class="memitem">
469 <div class="memproto">
470       <table class="memname">
471         <tr>
472           <td class="memname">#define ARM_STORAGE_VALID_BLOCK</td>
473           <td>(</td>
474           <td class="paramtype">&#160;</td>
475           <td class="paramname">BLK</td><td>)</td>
476           <td>&#160;&#160;&#160;(((BLK)-&gt;addr != <a class="el" href="Driver__Storage_8h.html#ab8112c1c73ba434c93d19fa1a445c6bf">ARM_STORAGE_INVALID_OFFSET</a>) &amp;&amp; ((BLK)-&gt;size != 0))</td>
477         </tr>
478       </table>
479 </div><div class="memdoc">
480 <p>The check for a valid <a class="el" href="group__storage__interface__gr.html#structARM__STORAGE__BLOCK" title="A storage block is a range of memory with uniform attributes.">ARM_STORAGE_BLOCK</a>. </p>
481
482 </div>
483 </div>
484 <a id="a66cd2a20f084db2d28f6a98cbc503d8a" name="a66cd2a20f084db2d28f6a98cbc503d8a"></a>
485 <h2 class="memtitle"><span class="permalink"><a href="#a66cd2a20f084db2d28f6a98cbc503d8a">&#9670;&#160;</a></span>ARM_STORAGE_PROGRAMMABILITY_RAM</h2>
486
487 <div class="memitem">
488 <div class="memproto">
489       <table class="memname">
490         <tr>
491           <td class="memname">#define ARM_STORAGE_PROGRAMMABILITY_RAM&#160;&#160;&#160;(0U)</td>
492         </tr>
493       </table>
494 </div><div class="memdoc">
495
496 <p>Values for encoding storage memory-types with respect to programmability. </p>
497 <p>Please ensure that the maximum of the following memory types doesn't exceed 16; we encode this in a 4-bit field within <a class="el" href="group__storage__interface__gr.html#aac0da06bf0775bd9b877aafbc4bcad77" title="A value to indicate storage programmability.">ARM_STORAGE_INFO::programmability</a>. </p>
498
499 </div>
500 </div>
501 <a id="af232495db19beb7025aebc6e3f9e7553" name="af232495db19beb7025aebc6e3f9e7553"></a>
502 <h2 class="memtitle"><span class="permalink"><a href="#af232495db19beb7025aebc6e3f9e7553">&#9670;&#160;</a></span>ARM_STORAGE_PROGRAMMABILITY_ROM</h2>
503
504 <div class="memitem">
505 <div class="memproto">
506       <table class="memname">
507         <tr>
508           <td class="memname">#define ARM_STORAGE_PROGRAMMABILITY_ROM&#160;&#160;&#160;(1U)</td>
509         </tr>
510       </table>
511 </div><div class="memdoc">
512
513 <p>Read-only memory. </p>
514
515 </div>
516 </div>
517 <a id="a373cda87e59c51b2a04f46f4d31d5dd8" name="a373cda87e59c51b2a04f46f4d31d5dd8"></a>
518 <h2 class="memtitle"><span class="permalink"><a href="#a373cda87e59c51b2a04f46f4d31d5dd8">&#9670;&#160;</a></span>ARM_STORAGE_PROGRAMMABILITY_WORM</h2>
519
520 <div class="memitem">
521 <div class="memproto">
522       <table class="memname">
523         <tr>
524           <td class="memname">#define ARM_STORAGE_PROGRAMMABILITY_WORM&#160;&#160;&#160;(2U)</td>
525         </tr>
526       </table>
527 </div><div class="memdoc">
528
529 <p>write-once-read-only-memory (WORM). </p>
530
531 </div>
532 </div>
533 <a id="a08670c9b9270eba2e030d90c4af9317c" name="a08670c9b9270eba2e030d90c4af9317c"></a>
534 <h2 class="memtitle"><span class="permalink"><a href="#a08670c9b9270eba2e030d90c4af9317c">&#9670;&#160;</a></span>ARM_STORAGE_PROGRAMMABILITY_ERASABLE</h2>
535
536 <div class="memitem">
537 <div class="memproto">
538       <table class="memname">
539         <tr>
540           <td class="memname">#define ARM_STORAGE_PROGRAMMABILITY_ERASABLE&#160;&#160;&#160;(3U)</td>
541         </tr>
542       </table>
543 </div><div class="memdoc">
544
545 <p>re-programmable based on erase. Supports multiple writes. </p>
546
547 </div>
548 </div>
549 <a id="afb918a33a4b8655321c45dfb99b86339" name="afb918a33a4b8655321c45dfb99b86339"></a>
550 <h2 class="memtitle"><span class="permalink"><a href="#afb918a33a4b8655321c45dfb99b86339">&#9670;&#160;</a></span>ARM_RETENTION_WHILE_DEVICE_ACTIVE</h2>
551
552 <div class="memitem">
553 <div class="memproto">
554       <table class="memname">
555         <tr>
556           <td class="memname">#define ARM_RETENTION_WHILE_DEVICE_ACTIVE&#160;&#160;&#160;(0U)</td>
557         </tr>
558       </table>
559 </div><div class="memdoc">
560
561 <p>Data is retained only during device activity. </p>
562 <p>Values for encoding data-retention levels for storage blocks.</p>
563 <p>Please ensure that the maximum of the following retention types doesn't exceed 16; we encode this in a 4-bit field within <a class="el" href="group__storage__interface__gr.html#a16d1a2aead689ffa28fd89cb6779e5a7">ARM_STORAGE_INFO::retention_level</a>. </p>
564
565 </div>
566 </div>
567 <a id="a42cdcdcda35d29552ed4558542770dbe" name="a42cdcdcda35d29552ed4558542770dbe"></a>
568 <h2 class="memtitle"><span class="permalink"><a href="#a42cdcdcda35d29552ed4558542770dbe">&#9670;&#160;</a></span>ARM_RETENTION_ACROSS_SLEEP</h2>
569
570 <div class="memitem">
571 <div class="memproto">
572       <table class="memname">
573         <tr>
574           <td class="memname">#define ARM_RETENTION_ACROSS_SLEEP&#160;&#160;&#160;(1U)</td>
575         </tr>
576       </table>
577 </div><div class="memdoc">
578
579 <p>Data is retained across processor sleep. </p>
580
581 </div>
582 </div>
583 <a id="acd3c172f37d0c13ac5d5c1477837c638" name="acd3c172f37d0c13ac5d5c1477837c638"></a>
584 <h2 class="memtitle"><span class="permalink"><a href="#acd3c172f37d0c13ac5d5c1477837c638">&#9670;&#160;</a></span>ARM_RETENTION_ACROSS_DEEP_SLEEP</h2>
585
586 <div class="memitem">
587 <div class="memproto">
588       <table class="memname">
589         <tr>
590           <td class="memname">#define ARM_RETENTION_ACROSS_DEEP_SLEEP&#160;&#160;&#160;(2U)</td>
591         </tr>
592       </table>
593 </div><div class="memdoc">
594
595 <p>Data is retained across processor deep-sleep. </p>
596
597 </div>
598 </div>
599 <a id="a1b8e7fc9ce024ef2e7d2efb24793c101" name="a1b8e7fc9ce024ef2e7d2efb24793c101"></a>
600 <h2 class="memtitle"><span class="permalink"><a href="#a1b8e7fc9ce024ef2e7d2efb24793c101">&#9670;&#160;</a></span>ARM_RETENTION_BATTERY_BACKED</h2>
601
602 <div class="memitem">
603 <div class="memproto">
604       <table class="memname">
605         <tr>
606           <td class="memname">#define ARM_RETENTION_BATTERY_BACKED&#160;&#160;&#160;(3U)</td>
607         </tr>
608       </table>
609 </div><div class="memdoc">
610
611 <p>Data is battery-backed. Device can be powered off. </p>
612
613 </div>
614 </div>
615 <a id="aec136119f63303cf9309e1d787e02ca3" name="aec136119f63303cf9309e1d787e02ca3"></a>
616 <h2 class="memtitle"><span class="permalink"><a href="#aec136119f63303cf9309e1d787e02ca3">&#9670;&#160;</a></span>ARM_RETENTION_NVM</h2>
617
618 <div class="memitem">
619 <div class="memproto">
620       <table class="memname">
621         <tr>
622           <td class="memname">#define ARM_RETENTION_NVM&#160;&#160;&#160;(4U)</td>
623         </tr>
624       </table>
625 </div><div class="memdoc">
626
627 <p>Data is retained in non-volatile memory. </p>
628
629 </div>
630 </div>
631 <a id="ab6f380932e1a8e7802be024a224faf93" name="ab6f380932e1a8e7802be024a224faf93"></a>
632 <h2 class="memtitle"><span class="permalink"><a href="#ab6f380932e1a8e7802be024a224faf93">&#9670;&#160;</a></span>ARM_STORAGE_PROGRAM_CYCLES_INFINITE</h2>
633
634 <div class="memitem">
635 <div class="memproto">
636       <table class="memname">
637         <tr>
638           <td class="memname">#define ARM_STORAGE_PROGRAM_CYCLES_INFINITE&#160;&#160;&#160;(0UL)</td>
639         </tr>
640       </table>
641 </div><div class="memdoc">
642 <p>Infinite or unknown endurance for reprogramming. </p>
643
644 </div>
645 </div>
646 </div><!-- contents -->
647 </div><!-- doc-content -->
648 <!-- start footer part -->
649 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
650   <ul>
651     <li class="navelem"><a class="el" href="dir_7151b3cc910409bb744bd274374c738d.html">Driver</a></li><li class="navelem"><a class="el" href="dir_9c39448ea46a8e15f1aabc7dec307fcf.html">Include</a></li><li class="navelem"><a class="el" href="Driver__Storage_8h.html">Driver_Storage.h</a></li>
652     <li class="footer">
653       <script type="text/javascript">
654         <!--
655         writeFooter.call(this);
656         //-->
657       </script> 
658     </li>
659   </ul>
660 </div>
661 </body>
662 </html>