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): Intrinsic Functions for CPU Instructions</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&dn=expat.txt MIT */
28 $(document).ready(function() { init_search(); });
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>
39 <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
41 <table cellspacing="0" cellpadding="0">
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-Core (Cortex-M)
47  <span id="projectnumber"><script type="text/javascript">
49 writeHeader.call(this);
50 writeVersionDropdown.call(this, "CMSIS-Core (Cortex-M)");
55 <div id="projectbrief">CMSIS-Core support for Cortex-M processor-based devices</div>
57 <td> <div id="MSearchBox" class="MSearchBoxInactive">
59 <span id="MSearchSelect" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()"> </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>
69 <!--END !PROJECT_NAME-->
74 <!-- end header part -->
75 <div id="CMSISnav" class="tabs1">
77 <script type="text/javascript">
78 writeComponentTabs.call(this);
82 <script type="text/javascript">
83 writeSubComponentTabs.call(this);
85 <!-- Generated by Doxygen 1.9.6 -->
86 <script type="text/javascript">
87 /* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
88 var searchBox = new SearchBox("searchBox", "search/",'.html');
92 <div id="side-nav" class="ui-resizable side-nav-resizable">
94 <div id="nav-tree-contents">
95 <div id="nav-sync" class="sync"></div>
98 <div id="splitbar" style="-moz-user-select:none;"
99 class="ui-resizable-handle">
102 <script type="text/javascript">
103 /* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
104 $(document).ready(function(){initNavTree('group__intrinsic__CPU__gr.html',''); initResizable(); });
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)">
115 <!-- iframe showing the search results (closed by default) -->
116 <div id="MSearchResultsWindow">
117 <div id="MSearchResults">
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>
130 <div class="summary">
131 <a href="#func-members">Functions</a> </div>
132 <div class="headertitle"><div class="title">Intrinsic Functions for CPU Instructions</div></div>
134 <div class="contents">
136 <p>Functions that generate specific Cortex-M CPU Instructions.
137 <a href="#details">More...</a></p>
138 <table class="memberdecls">
139 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
140 Functions</h2></td></tr>
141 <tr class="memitem:gac71fad9f0a91980fecafcb450ee0a63e"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__intrinsic__CPU__gr.html#gac71fad9f0a91980fecafcb450ee0a63e">__NOP</a> (void)</td></tr>
142 <tr class="memdesc:gac71fad9f0a91980fecafcb450ee0a63e"><td class="mdescLeft"> </td><td class="mdescRight">No Operation. <br /></td></tr>
143 <tr class="separator:gac71fad9f0a91980fecafcb450ee0a63e"><td class="memSeparator" colspan="2"> </td></tr>
144 <tr class="memitem:gaed91dfbf3d7d7b7fba8d912fcbeaad88"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__intrinsic__CPU__gr.html#gaed91dfbf3d7d7b7fba8d912fcbeaad88">__WFI</a> (void)</td></tr>
145 <tr class="memdesc:gaed91dfbf3d7d7b7fba8d912fcbeaad88"><td class="mdescLeft"> </td><td class="mdescRight">Wait For Interrupt. <br /></td></tr>
146 <tr class="separator:gaed91dfbf3d7d7b7fba8d912fcbeaad88"><td class="memSeparator" colspan="2"> </td></tr>
147 <tr class="memitem:gad3efec76c3bfa2b8528ded530386c563"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__intrinsic__CPU__gr.html#gad3efec76c3bfa2b8528ded530386c563">__WFE</a> (void)</td></tr>
148 <tr class="memdesc:gad3efec76c3bfa2b8528ded530386c563"><td class="mdescLeft"> </td><td class="mdescRight">Wait For Event. <br /></td></tr>
149 <tr class="separator:gad3efec76c3bfa2b8528ded530386c563"><td class="memSeparator" colspan="2"> </td></tr>
150 <tr class="memitem:ga3c34da7eb16496ae2668a5b95fa441e7"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__intrinsic__CPU__gr.html#ga3c34da7eb16496ae2668a5b95fa441e7">__SEV</a> (void)</td></tr>
151 <tr class="memdesc:ga3c34da7eb16496ae2668a5b95fa441e7"><td class="mdescLeft"> </td><td class="mdescRight">Send Event. <br /></td></tr>
152 <tr class="separator:ga3c34da7eb16496ae2668a5b95fa441e7"><td class="memSeparator" colspan="2"> </td></tr>
153 <tr class="memitem:ga92f5621626711931da71eaa8bf301af7"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__intrinsic__CPU__gr.html#ga92f5621626711931da71eaa8bf301af7">__BKPT</a> (uint8_t value)</td></tr>
154 <tr class="memdesc:ga92f5621626711931da71eaa8bf301af7"><td class="mdescLeft"> </td><td class="mdescRight">Set Breakpoint. <br /></td></tr>
155 <tr class="separator:ga92f5621626711931da71eaa8bf301af7"><td class="memSeparator" colspan="2"> </td></tr>
156 <tr class="memitem:ga93c09b4709394d81977300d5f84950e5"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__intrinsic__CPU__gr.html#ga93c09b4709394d81977300d5f84950e5">__ISB</a> (void)</td></tr>
157 <tr class="memdesc:ga93c09b4709394d81977300d5f84950e5"><td class="mdescLeft"> </td><td class="mdescRight">Instruction Synchronization Barrier. <br /></td></tr>
158 <tr class="separator:ga93c09b4709394d81977300d5f84950e5"><td class="memSeparator" colspan="2"> </td></tr>
159 <tr class="memitem:gacb2a8ca6eae1ba4b31161578b720c199"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__intrinsic__CPU__gr.html#gacb2a8ca6eae1ba4b31161578b720c199">__DSB</a> (void)</td></tr>
160 <tr class="memdesc:gacb2a8ca6eae1ba4b31161578b720c199"><td class="mdescLeft"> </td><td class="mdescRight">Data Synchronization Barrier. <br /></td></tr>
161 <tr class="separator:gacb2a8ca6eae1ba4b31161578b720c199"><td class="memSeparator" colspan="2"> </td></tr>
162 <tr class="memitem:gab1c9b393641dc2d397b3408fdbe72b96"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__intrinsic__CPU__gr.html#gab1c9b393641dc2d397b3408fdbe72b96">__DMB</a> (void)</td></tr>
163 <tr class="memdesc:gab1c9b393641dc2d397b3408fdbe72b96"><td class="mdescLeft"> </td><td class="mdescRight">Data Memory Barrier. <br /></td></tr>
164 <tr class="separator:gab1c9b393641dc2d397b3408fdbe72b96"><td class="memSeparator" colspan="2"> </td></tr>
165 <tr class="memitem:ga4717abc17af5ba29b1e4c055e0a0d9b8"><td class="memItemLeft" align="right" valign="top">uint32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__intrinsic__CPU__gr.html#ga4717abc17af5ba29b1e4c055e0a0d9b8">__REV</a> (uint32_t value)</td></tr>
166 <tr class="memdesc:ga4717abc17af5ba29b1e4c055e0a0d9b8"><td class="mdescLeft"> </td><td class="mdescRight">Reverse byte order (32 bit) <br /></td></tr>
167 <tr class="separator:ga4717abc17af5ba29b1e4c055e0a0d9b8"><td class="memSeparator" colspan="2"> </td></tr>
168 <tr class="memitem:gaeef6f853b6df3a365c838ee5b49a7a26"><td class="memItemLeft" align="right" valign="top">uint32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__intrinsic__CPU__gr.html#gaeef6f853b6df3a365c838ee5b49a7a26">__REV16</a> (uint32_t value)</td></tr>
169 <tr class="memdesc:gaeef6f853b6df3a365c838ee5b49a7a26"><td class="mdescLeft"> </td><td class="mdescRight">Reverse byte order (16 bit) <br /></td></tr>
170 <tr class="separator:gaeef6f853b6df3a365c838ee5b49a7a26"><td class="memSeparator" colspan="2"> </td></tr>
171 <tr class="memitem:ga211618c03a0bf3264a7b22ad626d4f0a"><td class="memItemLeft" align="right" valign="top">int16_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__intrinsic__CPU__gr.html#ga211618c03a0bf3264a7b22ad626d4f0a">__REVSH</a> (int16_t value)</td></tr>
172 <tr class="memdesc:ga211618c03a0bf3264a7b22ad626d4f0a"><td class="mdescLeft"> </td><td class="mdescRight">Reverse byte order (16 bit) <br /></td></tr>
173 <tr class="separator:ga211618c03a0bf3264a7b22ad626d4f0a"><td class="memSeparator" colspan="2"> </td></tr>
174 <tr class="memitem:gad6f9f297f6b91a995ee199fbc796b863"><td class="memItemLeft" align="right" valign="top">uint32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__intrinsic__CPU__gr.html#gad6f9f297f6b91a995ee199fbc796b863">__RBIT</a> (uint32_t value)</td></tr>
175 <tr class="memdesc:gad6f9f297f6b91a995ee199fbc796b863"><td class="mdescLeft"> </td><td class="mdescRight">Reverse bit order of value. <br /></td></tr>
176 <tr class="separator:gad6f9f297f6b91a995ee199fbc796b863"><td class="memSeparator" colspan="2"> </td></tr>
177 <tr class="memitem:gaf66beb577bb9d90424c3d1d7f684c024"><td class="memItemLeft" align="right" valign="top">uint32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__intrinsic__CPU__gr.html#gaf66beb577bb9d90424c3d1d7f684c024">__ROR</a> (uint32_t value, uint32_t shift)</td></tr>
178 <tr class="memdesc:gaf66beb577bb9d90424c3d1d7f684c024"><td class="mdescLeft"> </td><td class="mdescRight">Rotate a value right by a number of bits. <br /></td></tr>
179 <tr class="separator:gaf66beb577bb9d90424c3d1d7f684c024"><td class="memSeparator" colspan="2"> </td></tr>
180 <tr class="memitem:ga9e3ac13d8dcf4331176b624cf6234a7e"><td class="memItemLeft" align="right" valign="top">uint8_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__intrinsic__CPU__gr.html#ga9e3ac13d8dcf4331176b624cf6234a7e">__LDREXB</a> (volatile uint8_t *addr)</td></tr>
181 <tr class="memdesc:ga9e3ac13d8dcf4331176b624cf6234a7e"><td class="mdescLeft"> </td><td class="mdescRight">LDR Exclusive (8 bit) [not for Cortex-M0, Cortex-M0+, or SC000]. <br /></td></tr>
182 <tr class="separator:ga9e3ac13d8dcf4331176b624cf6234a7e"><td class="memSeparator" colspan="2"> </td></tr>
183 <tr class="memitem:ga9feffc093d6f68b120d592a7a0d45a15"><td class="memItemLeft" align="right" valign="top">uint16_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__intrinsic__CPU__gr.html#ga9feffc093d6f68b120d592a7a0d45a15">__LDREXH</a> (volatile uint16_t *addr)</td></tr>
184 <tr class="memdesc:ga9feffc093d6f68b120d592a7a0d45a15"><td class="mdescLeft"> </td><td class="mdescRight">LDR Exclusive (16 bit) [not for Cortex-M0, Cortex-M0+, or SC000]. <br /></td></tr>
185 <tr class="separator:ga9feffc093d6f68b120d592a7a0d45a15"><td class="memSeparator" colspan="2"> </td></tr>
186 <tr class="memitem:gabd78840a0f2464905b7cec791ebc6a4c"><td class="memItemLeft" align="right" valign="top">uint32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__intrinsic__CPU__gr.html#gabd78840a0f2464905b7cec791ebc6a4c">__LDREXW</a> (volatile uint32_t *addr)</td></tr>
187 <tr class="memdesc:gabd78840a0f2464905b7cec791ebc6a4c"><td class="mdescLeft"> </td><td class="mdescRight">LDR Exclusive (32 bit) [not for Cortex-M0, Cortex-M0+, or SC000]. <br /></td></tr>
188 <tr class="separator:gabd78840a0f2464905b7cec791ebc6a4c"><td class="memSeparator" colspan="2"> </td></tr>
189 <tr class="memitem:gaab6482d1f59f59e2b6b7efc1af391c99"><td class="memItemLeft" align="right" valign="top">uint32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__intrinsic__CPU__gr.html#gaab6482d1f59f59e2b6b7efc1af391c99">__STREXB</a> (uint8_t value, volatile uint8_t *addr)</td></tr>
190 <tr class="memdesc:gaab6482d1f59f59e2b6b7efc1af391c99"><td class="mdescLeft"> </td><td class="mdescRight">STR Exclusive (8 bit) [not for Cortex-M0, Cortex-M0+, or SC000]. <br /></td></tr>
191 <tr class="separator:gaab6482d1f59f59e2b6b7efc1af391c99"><td class="memSeparator" colspan="2"> </td></tr>
192 <tr class="memitem:ga0a354bdf71caa52f081a4a54e84c8d2a"><td class="memItemLeft" align="right" valign="top">uint32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__intrinsic__CPU__gr.html#ga0a354bdf71caa52f081a4a54e84c8d2a">__STREXH</a> (uint16_t value, volatile uint16_t *addr)</td></tr>
193 <tr class="memdesc:ga0a354bdf71caa52f081a4a54e84c8d2a"><td class="mdescLeft"> </td><td class="mdescRight">STR Exclusive (16 bit) [not for Cortex-M0, Cortex-M0+, or SC000]. <br /></td></tr>
194 <tr class="separator:ga0a354bdf71caa52f081a4a54e84c8d2a"><td class="memSeparator" colspan="2"> </td></tr>
195 <tr class="memitem:ga335deaaa7991490e1450cb7d1e4c5197"><td class="memItemLeft" align="right" valign="top">uint32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__intrinsic__CPU__gr.html#ga335deaaa7991490e1450cb7d1e4c5197">__STREXW</a> (uint32_t value, volatile uint32_t *addr)</td></tr>
196 <tr class="memdesc:ga335deaaa7991490e1450cb7d1e4c5197"><td class="mdescLeft"> </td><td class="mdescRight">STR Exclusive (32 bit) [not for Cortex-M0, Cortex-M0+, or SC000]. <br /></td></tr>
197 <tr class="separator:ga335deaaa7991490e1450cb7d1e4c5197"><td class="memSeparator" colspan="2"> </td></tr>
198 <tr class="memitem:ga354c5ac8870cc3dfb823367af9c4b412"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__intrinsic__CPU__gr.html#ga354c5ac8870cc3dfb823367af9c4b412">__CLREX</a> (void)</td></tr>
199 <tr class="memdesc:ga354c5ac8870cc3dfb823367af9c4b412"><td class="mdescLeft"> </td><td class="mdescRight">Remove the exclusive lock [not for Cortex-M0, Cortex-M0+, or SC000]. <br /></td></tr>
200 <tr class="separator:ga354c5ac8870cc3dfb823367af9c4b412"><td class="memSeparator" colspan="2"> </td></tr>
201 <tr class="memitem:ga8cfeb5ffe0e49ec6b29dafdde92e5118"><td class="memItemLeft" align="right" valign="top">int32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__intrinsic__CPU__gr.html#ga8cfeb5ffe0e49ec6b29dafdde92e5118">__SSAT</a> (int32_t value, uint32_t sat)</td></tr>
202 <tr class="memdesc:ga8cfeb5ffe0e49ec6b29dafdde92e5118"><td class="mdescLeft"> </td><td class="mdescRight">Signed Saturate. <br /></td></tr>
203 <tr class="separator:ga8cfeb5ffe0e49ec6b29dafdde92e5118"><td class="memSeparator" colspan="2"> </td></tr>
204 <tr class="memitem:ga9ba87371aebd17dd6244ed3458b29b5d"><td class="memItemLeft" align="right" valign="top">uint32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__intrinsic__CPU__gr.html#ga9ba87371aebd17dd6244ed3458b29b5d">__USAT</a> (int32_t value, uint32_t sat)</td></tr>
205 <tr class="memdesc:ga9ba87371aebd17dd6244ed3458b29b5d"><td class="mdescLeft"> </td><td class="mdescRight">Unsigned Saturate. <br /></td></tr>
206 <tr class="separator:ga9ba87371aebd17dd6244ed3458b29b5d"><td class="memSeparator" colspan="2"> </td></tr>
207 <tr class="memitem:ga90884c591ac5d73d6069334eba9d6c02"><td class="memItemLeft" align="right" valign="top">uint8_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__intrinsic__CPU__gr.html#ga90884c591ac5d73d6069334eba9d6c02">__CLZ</a> (uint32_t value)</td></tr>
208 <tr class="memdesc:ga90884c591ac5d73d6069334eba9d6c02"><td class="mdescLeft"> </td><td class="mdescRight">Count leading zeros. <br /></td></tr>
209 <tr class="separator:ga90884c591ac5d73d6069334eba9d6c02"><td class="memSeparator" colspan="2"> </td></tr>
210 <tr class="memitem:gac09134f1bf9c49db07282001afcc9380"><td class="memItemLeft" align="right" valign="top">uint32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__intrinsic__CPU__gr.html#gac09134f1bf9c49db07282001afcc9380">__RRX</a> (uint32_t value)</td></tr>
211 <tr class="memdesc:gac09134f1bf9c49db07282001afcc9380"><td class="mdescLeft"> </td><td class="mdescRight">Rotate Right with Extend (32 bit) <br /></td></tr>
212 <tr class="separator:gac09134f1bf9c49db07282001afcc9380"><td class="memSeparator" colspan="2"> </td></tr>
213 <tr class="memitem:ga9464d75db32846aa8295c3c3adfacb41"><td class="memItemLeft" align="right" valign="top">uint8_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__intrinsic__CPU__gr.html#ga9464d75db32846aa8295c3c3adfacb41">__LDRBT</a> (uint8_t ptr)</td></tr>
214 <tr class="memdesc:ga9464d75db32846aa8295c3c3adfacb41"><td class="mdescLeft"> </td><td class="mdescRight">LDRT Unprivileged (8 bit) <br /></td></tr>
215 <tr class="separator:ga9464d75db32846aa8295c3c3adfacb41"><td class="memSeparator" colspan="2"> </td></tr>
216 <tr class="memitem:gaa762b8bc5634ce38cb14d62a6b2aee32"><td class="memItemLeft" align="right" valign="top">uint16_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__intrinsic__CPU__gr.html#gaa762b8bc5634ce38cb14d62a6b2aee32">__LDRHT</a> (uint16_t ptr)</td></tr>
217 <tr class="memdesc:gaa762b8bc5634ce38cb14d62a6b2aee32"><td class="mdescLeft"> </td><td class="mdescRight">LDRT Unprivileged (16 bit) <br /></td></tr>
218 <tr class="separator:gaa762b8bc5634ce38cb14d62a6b2aee32"><td class="memSeparator" colspan="2"> </td></tr>
219 <tr class="memitem:ga616504f5da979ba8a073d428d6e8d5c7"><td class="memItemLeft" align="right" valign="top">uint32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__intrinsic__CPU__gr.html#ga616504f5da979ba8a073d428d6e8d5c7">__LDRT</a> (uint32_t ptr)</td></tr>
220 <tr class="memdesc:ga616504f5da979ba8a073d428d6e8d5c7"><td class="mdescLeft"> </td><td class="mdescRight">LDRT Unprivileged (32 bit) <br /></td></tr>
221 <tr class="separator:ga616504f5da979ba8a073d428d6e8d5c7"><td class="memSeparator" colspan="2"> </td></tr>
222 <tr class="memitem:gad41aa59c92c0a165b7f98428d3320cd5"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__intrinsic__CPU__gr.html#gad41aa59c92c0a165b7f98428d3320cd5">__STRBT</a> (uint8_t value, uint8_t ptr)</td></tr>
223 <tr class="memdesc:gad41aa59c92c0a165b7f98428d3320cd5"><td class="mdescLeft"> </td><td class="mdescRight">STRT Unprivileged (8 bit) <br /></td></tr>
224 <tr class="separator:gad41aa59c92c0a165b7f98428d3320cd5"><td class="memSeparator" colspan="2"> </td></tr>
225 <tr class="memitem:ga2b5d93b8e461755b1072a03df3f1722e"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__intrinsic__CPU__gr.html#ga2b5d93b8e461755b1072a03df3f1722e">__STRHT</a> (uint16_t value, uint16_t ptr)</td></tr>
226 <tr class="memdesc:ga2b5d93b8e461755b1072a03df3f1722e"><td class="mdescLeft"> </td><td class="mdescRight">STRT Unprivileged (16 bit) <br /></td></tr>
227 <tr class="separator:ga2b5d93b8e461755b1072a03df3f1722e"><td class="memSeparator" colspan="2"> </td></tr>
228 <tr class="memitem:ga625bc4ac0b1d50de9bcd13d9f050030e"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__intrinsic__CPU__gr.html#ga625bc4ac0b1d50de9bcd13d9f050030e">__STRT</a> (uint32_t value, uint32_t ptr)</td></tr>
229 <tr class="memdesc:ga625bc4ac0b1d50de9bcd13d9f050030e"><td class="mdescLeft"> </td><td class="mdescRight">STRT Unprivileged (32 bit) <br /></td></tr>
230 <tr class="separator:ga625bc4ac0b1d50de9bcd13d9f050030e"><td class="memSeparator" colspan="2"> </td></tr>
231 <tr class="memitem:ga263b9b2d9c06d731022873acddb6aa3f"><td class="memItemLeft" align="right" valign="top">uint8_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__intrinsic__CPU__gr.html#ga263b9b2d9c06d731022873acddb6aa3f">__LDAB</a> (volatile uint8_t *ptr)</td></tr>
232 <tr class="memdesc:ga263b9b2d9c06d731022873acddb6aa3f"><td class="mdescLeft"> </td><td class="mdescRight">Load-Acquire (8 bit) <br /></td></tr>
233 <tr class="separator:ga263b9b2d9c06d731022873acddb6aa3f"><td class="memSeparator" colspan="2"> </td></tr>
234 <tr class="memitem:ga5810ac0b87a37e321c2f909cd3860499"><td class="memItemLeft" align="right" valign="top">uint16_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__intrinsic__CPU__gr.html#ga5810ac0b87a37e321c2f909cd3860499">__LDAH</a> (volatile uint16_t *ptr)</td></tr>
235 <tr class="memdesc:ga5810ac0b87a37e321c2f909cd3860499"><td class="mdescLeft"> </td><td class="mdescRight">Load-Acquire (16 bit) <br /></td></tr>
236 <tr class="separator:ga5810ac0b87a37e321c2f909cd3860499"><td class="memSeparator" colspan="2"> </td></tr>
237 <tr class="memitem:ga22a24f416b65c2f5a82d9f1162d9394d"><td class="memItemLeft" align="right" valign="top">uint32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__intrinsic__CPU__gr.html#ga22a24f416b65c2f5a82d9f1162d9394d">__LDA</a> (volatile uint32_t *ptr)</td></tr>
238 <tr class="memdesc:ga22a24f416b65c2f5a82d9f1162d9394d"><td class="mdescLeft"> </td><td class="mdescRight">Load-Acquire (32 bit) <br /></td></tr>
239 <tr class="separator:ga22a24f416b65c2f5a82d9f1162d9394d"><td class="memSeparator" colspan="2"> </td></tr>
240 <tr class="memitem:gace025d3a1f85d2ab9bae7288838d6bc8"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__intrinsic__CPU__gr.html#gace025d3a1f85d2ab9bae7288838d6bc8">__STLB</a> (uint8_t value, volatile uint8_t *ptr)</td></tr>
241 <tr class="memdesc:gace025d3a1f85d2ab9bae7288838d6bc8"><td class="mdescLeft"> </td><td class="mdescRight">Store-Release (8 bit) <br /></td></tr>
242 <tr class="separator:gace025d3a1f85d2ab9bae7288838d6bc8"><td class="memSeparator" colspan="2"> </td></tr>
243 <tr class="memitem:ga25691650de536f9b248b15f6dc4a3e70"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__intrinsic__CPU__gr.html#ga25691650de536f9b248b15f6dc4a3e70">__STLH</a> (uint16_t value, volatile uint16_t *ptr)</td></tr>
244 <tr class="memdesc:ga25691650de536f9b248b15f6dc4a3e70"><td class="mdescLeft"> </td><td class="mdescRight">Store-Release (16 bit) <br /></td></tr>
245 <tr class="separator:ga25691650de536f9b248b15f6dc4a3e70"><td class="memSeparator" colspan="2"> </td></tr>
246 <tr class="memitem:ga5429d7083fb8d30c43cecd3a861e1672"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__intrinsic__CPU__gr.html#ga5429d7083fb8d30c43cecd3a861e1672">__STL</a> (uint32_t value, volatile uint32_t *ptr)</td></tr>
247 <tr class="memdesc:ga5429d7083fb8d30c43cecd3a861e1672"><td class="mdescLeft"> </td><td class="mdescRight">Store-Release (32 bit) <br /></td></tr>
248 <tr class="separator:ga5429d7083fb8d30c43cecd3a861e1672"><td class="memSeparator" colspan="2"> </td></tr>
249 <tr class="memitem:ga513beada40cdd7123281f22482603bcc"><td class="memItemLeft" align="right" valign="top">uint8_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__intrinsic__CPU__gr.html#ga513beada40cdd7123281f22482603bcc">__LDAEXB</a> (volatile uint32_t *ptr)</td></tr>
250 <tr class="memdesc:ga513beada40cdd7123281f22482603bcc"><td class="mdescLeft"> </td><td class="mdescRight">Load-Acquire Exclusive (8 bit) <br /></td></tr>
251 <tr class="separator:ga513beada40cdd7123281f22482603bcc"><td class="memSeparator" colspan="2"> </td></tr>
252 <tr class="memitem:ga426b61640fc68f21b21ae4dc2726f3b4"><td class="memItemLeft" align="right" valign="top">uint16_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__intrinsic__CPU__gr.html#ga426b61640fc68f21b21ae4dc2726f3b4">__LDAEXH</a> (volatile uint32_t *ptr)</td></tr>
253 <tr class="memdesc:ga426b61640fc68f21b21ae4dc2726f3b4"><td class="mdescLeft"> </td><td class="mdescRight">Load-Acquire Exclusive (16 bit) <br /></td></tr>
254 <tr class="separator:ga426b61640fc68f21b21ae4dc2726f3b4"><td class="memSeparator" colspan="2"> </td></tr>
255 <tr class="memitem:ga3c74d923529f664eda099d1b2668b3c1"><td class="memItemLeft" align="right" valign="top">uint32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__intrinsic__CPU__gr.html#ga3c74d923529f664eda099d1b2668b3c1">__LDAEX</a> (volatile uint32_t *ptr)</td></tr>
256 <tr class="memdesc:ga3c74d923529f664eda099d1b2668b3c1"><td class="mdescLeft"> </td><td class="mdescRight">Load-Acquire Exclusive (32 bit) <br /></td></tr>
257 <tr class="separator:ga3c74d923529f664eda099d1b2668b3c1"><td class="memSeparator" colspan="2"> </td></tr>
258 <tr class="memitem:ga590724a32a229978536fbbbd6cc82536"><td class="memItemLeft" align="right" valign="top">uint32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__intrinsic__CPU__gr.html#ga590724a32a229978536fbbbd6cc82536">__STLEXB</a> (uint8_t value, volatile uint8_t *ptr)</td></tr>
259 <tr class="memdesc:ga590724a32a229978536fbbbd6cc82536"><td class="mdescLeft"> </td><td class="mdescRight">Store-Release Exclusive (8 bit) <br /></td></tr>
260 <tr class="separator:ga590724a32a229978536fbbbd6cc82536"><td class="memSeparator" colspan="2"> </td></tr>
261 <tr class="memitem:ga047c3bebca3d0ae348ab8370a046301d"><td class="memItemLeft" align="right" valign="top">uint32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__intrinsic__CPU__gr.html#ga047c3bebca3d0ae348ab8370a046301d">__STLEXH</a> (uint16_t value, volatile uint16_t *ptr)</td></tr>
262 <tr class="memdesc:ga047c3bebca3d0ae348ab8370a046301d"><td class="mdescLeft"> </td><td class="mdescRight">Store-Release Exclusive (16 bit) <br /></td></tr>
263 <tr class="separator:ga047c3bebca3d0ae348ab8370a046301d"><td class="memSeparator" colspan="2"> </td></tr>
264 <tr class="memitem:gae7f955b91595cfd82a03e4b437c59afe"><td class="memItemLeft" align="right" valign="top">uint32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__intrinsic__CPU__gr.html#gae7f955b91595cfd82a03e4b437c59afe">__STLEX</a> (uint32_t value, volatile uint32_t *ptr)</td></tr>
265 <tr class="memdesc:gae7f955b91595cfd82a03e4b437c59afe"><td class="mdescLeft"> </td><td class="mdescRight">Store-Release Exclusive (32 bit) <br /></td></tr>
266 <tr class="separator:gae7f955b91595cfd82a03e4b437c59afe"><td class="memSeparator" colspan="2"> </td></tr>
268 <a name="details" id="details"></a><h2 class="groupheader">Description</h2>
269 <p>Functions that generate specific Cortex-M CPU Instructions. </p>
270 <p>The following functions generate specific Cortex-M instructions that cannot be directly accessed by the C/C++ Compiler. Refer to the <a class="el" href="index.html#ref_man_sec">Cortex-M Generic User Guides</a> for detailed information about these Cortex-M instructions.</p>
271 <dl class="section note"><dt>Note</dt><dd>When using the <b>Arm Compiler Version 5 Toolchain</b> the following <a class="el" href="group__intrinsic__CPU__gr.html">Intrinsic Functions for CPU Instructions</a> are implemented using the Embedded Assembler. As the Embedded Assembler may cause side effects (Refer to <b>Arm Compiler v5.xx User Guide - Using the Inline and Embedded Assemblers of the Arm Compiler</b> for more information) it is possible to disable the following intrinsic functions and therefore the usage of the Embedded Assembler with the <b><em>define __NO_EMBEDDED_ASM</em></b>:<ul>
272 <li><a class="el" href="group__intrinsic__CPU__gr.html#gaeef6f853b6df3a365c838ee5b49a7a26">__REV16</a></li>
273 <li><a class="el" href="group__intrinsic__CPU__gr.html#ga211618c03a0bf3264a7b22ad626d4f0a">__REVSH</a></li>
274 <li><a class="el" href="group__intrinsic__CPU__gr.html#gac09134f1bf9c49db07282001afcc9380">__RRX</a> </li>
277 <h2 class="groupheader">Function Documentation</h2>
278 <a id="ga92f5621626711931da71eaa8bf301af7" name="ga92f5621626711931da71eaa8bf301af7"></a>
279 <h2 class="memtitle"><span class="permalink"><a href="#ga92f5621626711931da71eaa8bf301af7">◆ </a></span>__BKPT()</h2>
281 <div class="memitem">
282 <div class="memproto">
283 <table class="memname">
285 <td class="memname">void __BKPT </td>
287 <td class="paramtype">uint8_t </td>
288 <td class="paramname"><em>value</em></td><td>)</td>
292 </div><div class="memdoc">
294 <p>Set Breakpoint. </p>
295 <p>This function causes the processor to enter Debug state. Debug tools can use this to investigate system state when the instruction at a particular address is reached.</p>
296 <dl class="params"><dt>Parameters</dt><dd>
297 <table class="params">
298 <tr><td class="paramdir">[in]</td><td class="paramname">value</td><td>is ignored by the processor. If required, a debugger can use it to obtain additional information about the breakpoint. </td></tr>
305 <a id="ga354c5ac8870cc3dfb823367af9c4b412" name="ga354c5ac8870cc3dfb823367af9c4b412"></a>
306 <h2 class="memtitle"><span class="permalink"><a href="#ga354c5ac8870cc3dfb823367af9c4b412">◆ </a></span>__CLREX()</h2>
308 <div class="memitem">
309 <div class="memproto">
310 <table class="memname">
312 <td class="memname">void __CLREX </td>
314 <td class="paramtype">void </td>
315 <td class="paramname"></td><td>)</td>
319 </div><div class="memdoc">
321 <p>Remove the exclusive lock [not for Cortex-M0, Cortex-M0+, or SC000]. </p>
322 <p>This function removes the exclusive lock which is created by LDREX [not for Cortex-M0, Cortex-M0+, or SC000]. </p>
326 <a id="ga90884c591ac5d73d6069334eba9d6c02" name="ga90884c591ac5d73d6069334eba9d6c02"></a>
327 <h2 class="memtitle"><span class="permalink"><a href="#ga90884c591ac5d73d6069334eba9d6c02">◆ </a></span>__CLZ()</h2>
329 <div class="memitem">
330 <div class="memproto">
331 <table class="memname">
333 <td class="memname">uint8_t __CLZ </td>
335 <td class="paramtype">uint32_t </td>
336 <td class="paramname"><em>value</em></td><td>)</td>
340 </div><div class="memdoc">
342 <p>Count leading zeros. </p>
343 <p>This function counts the number of leading zeros of a data value.</p>
344 <p>On Armv6-M (Cortex-M0, Cortex-M0+, and SC000) this function is not available as a core instruction instruction and thus __CLZ is implemented in software.</p>
345 <dl class="params"><dt>Parameters</dt><dd>
346 <table class="params">
347 <tr><td class="paramdir">[in]</td><td class="paramname">value</td><td>Value to count the leading zeros </td></tr>
351 <dl class="section return"><dt>Returns</dt><dd>number of leading zeros in value </dd></dl>
355 <a id="gab1c9b393641dc2d397b3408fdbe72b96" name="gab1c9b393641dc2d397b3408fdbe72b96"></a>
356 <h2 class="memtitle"><span class="permalink"><a href="#gab1c9b393641dc2d397b3408fdbe72b96">◆ </a></span>__DMB()</h2>
358 <div class="memitem">
359 <div class="memproto">
360 <table class="memname">
362 <td class="memname">void __DMB </td>
364 <td class="paramtype">void </td>
365 <td class="paramname"></td><td>)</td>
369 </div><div class="memdoc">
371 <p>Data Memory Barrier. </p>
372 <p>This function ensures the apparent order of the explicit memory operations before and after the instruction, without ensuring their completion. </p>
376 <a id="gacb2a8ca6eae1ba4b31161578b720c199" name="gacb2a8ca6eae1ba4b31161578b720c199"></a>
377 <h2 class="memtitle"><span class="permalink"><a href="#gacb2a8ca6eae1ba4b31161578b720c199">◆ </a></span>__DSB()</h2>
379 <div class="memitem">
380 <div class="memproto">
381 <table class="memname">
383 <td class="memname">void __DSB </td>
385 <td class="paramtype">void </td>
386 <td class="paramname"></td><td>)</td>
390 </div><div class="memdoc">
392 <p>Data Synchronization Barrier. </p>
393 <p>This function acts as a special kind of Data Memory Barrier. It completes when all explicit memory accesses before this instruction complete. </p>
397 <a id="ga93c09b4709394d81977300d5f84950e5" name="ga93c09b4709394d81977300d5f84950e5"></a>
398 <h2 class="memtitle"><span class="permalink"><a href="#ga93c09b4709394d81977300d5f84950e5">◆ </a></span>__ISB()</h2>
400 <div class="memitem">
401 <div class="memproto">
402 <table class="memname">
404 <td class="memname">void __ISB </td>
406 <td class="paramtype">void </td>
407 <td class="paramname"></td><td>)</td>
411 </div><div class="memdoc">
413 <p>Instruction Synchronization Barrier. </p>
414 <p>Instruction Synchronization Barrier flushes the pipeline in the processor, so that all instructions following the ISB are fetched from cache or memory, after the instruction has been completed. </p>
418 <a id="ga22a24f416b65c2f5a82d9f1162d9394d" name="ga22a24f416b65c2f5a82d9f1162d9394d"></a>
419 <h2 class="memtitle"><span class="permalink"><a href="#ga22a24f416b65c2f5a82d9f1162d9394d">◆ </a></span>__LDA()</h2>
421 <div class="memitem">
422 <div class="memproto">
423 <table class="memname">
425 <td class="memname">uint32_t __LDA </td>
427 <td class="paramtype">volatile uint32_t * </td>
428 <td class="paramname"><em>ptr</em></td><td>)</td>
432 </div><div class="memdoc">
434 <p>Load-Acquire (32 bit) </p>
435 <p>Executes a LDA instruction for 32 bit values. </p><dl class="params"><dt>Parameters</dt><dd>
436 <table class="params">
437 <tr><td class="paramdir">[in]</td><td class="paramname">ptr</td><td>Pointer to data </td></tr>
441 <dl class="section return"><dt>Returns</dt><dd>value of type uint32_t at (*ptr) </dd></dl>
442 <dl class="section note"><dt>Note</dt><dd>Only available for Armv8-M Architecture. </dd></dl>
446 <a id="ga263b9b2d9c06d731022873acddb6aa3f" name="ga263b9b2d9c06d731022873acddb6aa3f"></a>
447 <h2 class="memtitle"><span class="permalink"><a href="#ga263b9b2d9c06d731022873acddb6aa3f">◆ </a></span>__LDAB()</h2>
449 <div class="memitem">
450 <div class="memproto">
451 <table class="memname">
453 <td class="memname">uint8_t __LDAB </td>
455 <td class="paramtype">volatile uint8_t * </td>
456 <td class="paramname"><em>ptr</em></td><td>)</td>
460 </div><div class="memdoc">
462 <p>Load-Acquire (8 bit) </p>
463 <p>Executes a LDAB instruction for 8 bit value. </p><dl class="params"><dt>Parameters</dt><dd>
464 <table class="params">
465 <tr><td class="paramdir">[in]</td><td class="paramname">ptr</td><td>Pointer to data </td></tr>
469 <dl class="section return"><dt>Returns</dt><dd>value of type uint8_t at (*ptr) </dd></dl>
470 <dl class="section note"><dt>Note</dt><dd>Only available for Armv8-M Architecture. </dd></dl>
474 <a id="ga3c74d923529f664eda099d1b2668b3c1" name="ga3c74d923529f664eda099d1b2668b3c1"></a>
475 <h2 class="memtitle"><span class="permalink"><a href="#ga3c74d923529f664eda099d1b2668b3c1">◆ </a></span>__LDAEX()</h2>
477 <div class="memitem">
478 <div class="memproto">
479 <table class="memname">
481 <td class="memname">uint32_t __LDAEX </td>
483 <td class="paramtype">volatile uint32_t * </td>
484 <td class="paramname"><em>ptr</em></td><td>)</td>
488 </div><div class="memdoc">
490 <p>Load-Acquire Exclusive (32 bit) </p>
491 <p>Executes a LDA exclusive instruction for 32 bit values. </p><dl class="params"><dt>Parameters</dt><dd>
492 <table class="params">
493 <tr><td class="paramdir">[in]</td><td class="paramname">ptr</td><td>Pointer to data </td></tr>
497 <dl class="section return"><dt>Returns</dt><dd>value of type uint32_t at (*ptr) </dd></dl>
498 <dl class="section note"><dt>Note</dt><dd>Only available for Armv8-M Architecture. </dd></dl>
502 <a id="ga513beada40cdd7123281f22482603bcc" name="ga513beada40cdd7123281f22482603bcc"></a>
503 <h2 class="memtitle"><span class="permalink"><a href="#ga513beada40cdd7123281f22482603bcc">◆ </a></span>__LDAEXB()</h2>
505 <div class="memitem">
506 <div class="memproto">
507 <table class="memname">
509 <td class="memname">uint8_t __LDAEXB </td>
511 <td class="paramtype">volatile uint32_t * </td>
512 <td class="paramname"><em>ptr</em></td><td>)</td>
516 </div><div class="memdoc">
518 <p>Load-Acquire Exclusive (8 bit) </p>
519 <p>Executes a LDAB exclusive instruction for 8 bit value. </p><dl class="params"><dt>Parameters</dt><dd>
520 <table class="params">
521 <tr><td class="paramdir">[in]</td><td class="paramname">ptr</td><td>Pointer to data </td></tr>
525 <dl class="section return"><dt>Returns</dt><dd>value of type uint8_t at (*ptr) </dd></dl>
526 <dl class="section note"><dt>Note</dt><dd>Only available for Armv8-M Architecture. </dd></dl>
530 <a id="ga426b61640fc68f21b21ae4dc2726f3b4" name="ga426b61640fc68f21b21ae4dc2726f3b4"></a>
531 <h2 class="memtitle"><span class="permalink"><a href="#ga426b61640fc68f21b21ae4dc2726f3b4">◆ </a></span>__LDAEXH()</h2>
533 <div class="memitem">
534 <div class="memproto">
535 <table class="memname">
537 <td class="memname">uint16_t __LDAEXH </td>
539 <td class="paramtype">volatile uint32_t * </td>
540 <td class="paramname"><em>ptr</em></td><td>)</td>
544 </div><div class="memdoc">
546 <p>Load-Acquire Exclusive (16 bit) </p>
547 <p>Executes a LDAH exclusive instruction for 16 bit values. </p><dl class="params"><dt>Parameters</dt><dd>
548 <table class="params">
549 <tr><td class="paramdir">[in]</td><td class="paramname">ptr</td><td>Pointer to data </td></tr>
553 <dl class="section return"><dt>Returns</dt><dd>value of type uint16_t at (*ptr) </dd></dl>
554 <dl class="section note"><dt>Note</dt><dd>Only available for Armv8-M Architecture. </dd></dl>
558 <a id="ga5810ac0b87a37e321c2f909cd3860499" name="ga5810ac0b87a37e321c2f909cd3860499"></a>
559 <h2 class="memtitle"><span class="permalink"><a href="#ga5810ac0b87a37e321c2f909cd3860499">◆ </a></span>__LDAH()</h2>
561 <div class="memitem">
562 <div class="memproto">
563 <table class="memname">
565 <td class="memname">uint16_t __LDAH </td>
567 <td class="paramtype">volatile uint16_t * </td>
568 <td class="paramname"><em>ptr</em></td><td>)</td>
572 </div><div class="memdoc">
574 <p>Load-Acquire (16 bit) </p>
575 <p>Executes a LDAH instruction for 16 bit values. </p><dl class="params"><dt>Parameters</dt><dd>
576 <table class="params">
577 <tr><td class="paramdir">[in]</td><td class="paramname">ptr</td><td>Pointer to data </td></tr>
581 <dl class="section return"><dt>Returns</dt><dd>value of type uint16_t at (*ptr) </dd></dl>
582 <dl class="section note"><dt>Note</dt><dd>Only available for Armv8-M Architecture. </dd></dl>
586 <a id="ga9464d75db32846aa8295c3c3adfacb41" name="ga9464d75db32846aa8295c3c3adfacb41"></a>
587 <h2 class="memtitle"><span class="permalink"><a href="#ga9464d75db32846aa8295c3c3adfacb41">◆ </a></span>__LDRBT()</h2>
589 <div class="memitem">
590 <div class="memproto">
591 <table class="memname">
593 <td class="memname">uint8_t __LDRBT </td>
595 <td class="paramtype">uint8_t </td>
596 <td class="paramname"><em>ptr</em></td><td>)</td>
600 </div><div class="memdoc">
602 <p>LDRT Unprivileged (8 bit) </p>
603 <p>This function executed an Unprivileged LDRT command for 8 bit value.</p>
604 <dl class="params"><dt>Parameters</dt><dd>
605 <table class="params">
606 <tr><td class="paramdir">[in]</td><td class="paramname">ptr</td><td>Pointer to data </td></tr>
610 <dl class="section return"><dt>Returns</dt><dd>value of type uint8_t at (*ptr) </dd></dl>
614 <a id="ga9e3ac13d8dcf4331176b624cf6234a7e" name="ga9e3ac13d8dcf4331176b624cf6234a7e"></a>
615 <h2 class="memtitle"><span class="permalink"><a href="#ga9e3ac13d8dcf4331176b624cf6234a7e">◆ </a></span>__LDREXB()</h2>
617 <div class="memitem">
618 <div class="memproto">
619 <table class="memname">
621 <td class="memname">uint8_t __LDREXB </td>
623 <td class="paramtype">volatile uint8_t * </td>
624 <td class="paramname"><em>addr</em></td><td>)</td>
628 </div><div class="memdoc">
630 <p>LDR Exclusive (8 bit) [not for Cortex-M0, Cortex-M0+, or SC000]. </p>
631 <p>This function executed an exclusive LDR command for 8 bit value [not for Cortex-M0, Cortex-M0+, or SC000].</p>
632 <dl class="params"><dt>Parameters</dt><dd>
633 <table class="params">
634 <tr><td class="paramdir">[in]</td><td class="paramname">*addr</td><td>Pointer to data </td></tr>
638 <dl class="section return"><dt>Returns</dt><dd>value of type uint8_t at (*addr) </dd></dl>
642 <a id="ga9feffc093d6f68b120d592a7a0d45a15" name="ga9feffc093d6f68b120d592a7a0d45a15"></a>
643 <h2 class="memtitle"><span class="permalink"><a href="#ga9feffc093d6f68b120d592a7a0d45a15">◆ </a></span>__LDREXH()</h2>
645 <div class="memitem">
646 <div class="memproto">
647 <table class="memname">
649 <td class="memname">uint16_t __LDREXH </td>
651 <td class="paramtype">volatile uint16_t * </td>
652 <td class="paramname"><em>addr</em></td><td>)</td>
656 </div><div class="memdoc">
658 <p>LDR Exclusive (16 bit) [not for Cortex-M0, Cortex-M0+, or SC000]. </p>
659 <p>This function executed an exclusive LDR command for 16 bit values [not for Cortex-M0, Cortex-M0+, or SC000].</p>
660 <dl class="params"><dt>Parameters</dt><dd>
661 <table class="params">
662 <tr><td class="paramdir">[in]</td><td class="paramname">*addr</td><td>Pointer to data </td></tr>
666 <dl class="section return"><dt>Returns</dt><dd>value of type uint16_t at (*addr) </dd></dl>
670 <a id="gabd78840a0f2464905b7cec791ebc6a4c" name="gabd78840a0f2464905b7cec791ebc6a4c"></a>
671 <h2 class="memtitle"><span class="permalink"><a href="#gabd78840a0f2464905b7cec791ebc6a4c">◆ </a></span>__LDREXW()</h2>
673 <div class="memitem">
674 <div class="memproto">
675 <table class="memname">
677 <td class="memname">uint32_t __LDREXW </td>
679 <td class="paramtype">volatile uint32_t * </td>
680 <td class="paramname"><em>addr</em></td><td>)</td>
684 </div><div class="memdoc">
686 <p>LDR Exclusive (32 bit) [not for Cortex-M0, Cortex-M0+, or SC000]. </p>
687 <p>This function executed an exclusive LDR command for 32 bit values [not for Cortex-M0, Cortex-M0+, or SC000].</p>
688 <dl class="params"><dt>Parameters</dt><dd>
689 <table class="params">
690 <tr><td class="paramdir">[in]</td><td class="paramname">*addr</td><td>Pointer to data </td></tr>
694 <dl class="section return"><dt>Returns</dt><dd>value of type uint32_t at (*addr) </dd></dl>
698 <a id="gaa762b8bc5634ce38cb14d62a6b2aee32" name="gaa762b8bc5634ce38cb14d62a6b2aee32"></a>
699 <h2 class="memtitle"><span class="permalink"><a href="#gaa762b8bc5634ce38cb14d62a6b2aee32">◆ </a></span>__LDRHT()</h2>
701 <div class="memitem">
702 <div class="memproto">
703 <table class="memname">
705 <td class="memname">uint16_t __LDRHT </td>
707 <td class="paramtype">uint16_t </td>
708 <td class="paramname"><em>ptr</em></td><td>)</td>
712 </div><div class="memdoc">
714 <p>LDRT Unprivileged (16 bit) </p>
715 <p>This function executed an Unprivileged LDRT command for 16 bit values.</p>
716 <dl class="params"><dt>Parameters</dt><dd>
717 <table class="params">
718 <tr><td class="paramdir">[in]</td><td class="paramname">ptr</td><td>Pointer to data </td></tr>
722 <dl class="section return"><dt>Returns</dt><dd>value of type uint16_t at (*ptr) </dd></dl>
726 <a id="ga616504f5da979ba8a073d428d6e8d5c7" name="ga616504f5da979ba8a073d428d6e8d5c7"></a>
727 <h2 class="memtitle"><span class="permalink"><a href="#ga616504f5da979ba8a073d428d6e8d5c7">◆ </a></span>__LDRT()</h2>
729 <div class="memitem">
730 <div class="memproto">
731 <table class="memname">
733 <td class="memname">uint32_t __LDRT </td>
735 <td class="paramtype">uint32_t </td>
736 <td class="paramname"><em>ptr</em></td><td>)</td>
740 </div><div class="memdoc">
742 <p>LDRT Unprivileged (32 bit) </p>
743 <p>This function executed an Unprivileged LDRT command for 32 bit values.</p>
744 <dl class="params"><dt>Parameters</dt><dd>
745 <table class="params">
746 <tr><td class="paramdir">[in]</td><td class="paramname">ptr</td><td>Pointer to data </td></tr>
750 <dl class="section return"><dt>Returns</dt><dd>value of type uint32_t at (*ptr) </dd></dl>
754 <a id="gac71fad9f0a91980fecafcb450ee0a63e" name="gac71fad9f0a91980fecafcb450ee0a63e"></a>
755 <h2 class="memtitle"><span class="permalink"><a href="#gac71fad9f0a91980fecafcb450ee0a63e">◆ </a></span>__NOP()</h2>
757 <div class="memitem">
758 <div class="memproto">
759 <table class="memname">
761 <td class="memname">void __NOP </td>
763 <td class="paramtype">void </td>
764 <td class="paramname"></td><td>)</td>
768 </div><div class="memdoc">
770 <p>No Operation. </p>
771 <p>This function does nothing. This instruction can be used for code alignment purposes. </p>
775 <a id="gad6f9f297f6b91a995ee199fbc796b863" name="gad6f9f297f6b91a995ee199fbc796b863"></a>
776 <h2 class="memtitle"><span class="permalink"><a href="#gad6f9f297f6b91a995ee199fbc796b863">◆ </a></span>__RBIT()</h2>
778 <div class="memitem">
779 <div class="memproto">
780 <table class="memname">
782 <td class="memname">uint32_t __RBIT </td>
784 <td class="paramtype">uint32_t </td>
785 <td class="paramname"><em>value</em></td><td>)</td>
789 </div><div class="memdoc">
791 <p>Reverse bit order of value. </p>
792 <dl class="params"><dt>Parameters</dt><dd>
793 <table class="params">
794 <tr><td class="paramdir">[in]</td><td class="paramname">value</td><td>Value to reverse </td></tr>
798 <dl class="section return"><dt>Returns</dt><dd>Reversed value </dd></dl>
802 <a id="ga4717abc17af5ba29b1e4c055e0a0d9b8" name="ga4717abc17af5ba29b1e4c055e0a0d9b8"></a>
803 <h2 class="memtitle"><span class="permalink"><a href="#ga4717abc17af5ba29b1e4c055e0a0d9b8">◆ </a></span>__REV()</h2>
805 <div class="memitem">
806 <div class="memproto">
807 <table class="memname">
809 <td class="memname">uint32_t __REV </td>
811 <td class="paramtype">uint32_t </td>
812 <td class="paramname"><em>value</em></td><td>)</td>
816 </div><div class="memdoc">
818 <p>Reverse byte order (32 bit) </p>
819 <p>Reverses the byte order in unsigned integer value. For example, 0x12345678 becomes 0x78563412. </p><dl class="params"><dt>Parameters</dt><dd>
820 <table class="params">
821 <tr><td class="paramdir">[in]</td><td class="paramname">value</td><td>Value to reverse </td></tr>
825 <dl class="section return"><dt>Returns</dt><dd>Reversed value </dd></dl>
829 <a id="gaeef6f853b6df3a365c838ee5b49a7a26" name="gaeef6f853b6df3a365c838ee5b49a7a26"></a>
830 <h2 class="memtitle"><span class="permalink"><a href="#gaeef6f853b6df3a365c838ee5b49a7a26">◆ </a></span>__REV16()</h2>
832 <div class="memitem">
833 <div class="memproto">
834 <table class="memname">
836 <td class="memname">uint32_t __REV16 </td>
838 <td class="paramtype">uint32_t </td>
839 <td class="paramname"><em>value</em></td><td>)</td>
843 </div><div class="memdoc">
845 <p>Reverse byte order (16 bit) </p>
846 <p>Reverses the byte order within each halfword of a word. For example, 0x12345678 becomes 0x34127856. </p><dl class="params"><dt>Parameters</dt><dd>
847 <table class="params">
848 <tr><td class="paramdir">[in]</td><td class="paramname">value</td><td>Value to reverse </td></tr>
852 <dl class="section return"><dt>Returns</dt><dd>Reversed value </dd></dl>
856 <a id="ga211618c03a0bf3264a7b22ad626d4f0a" name="ga211618c03a0bf3264a7b22ad626d4f0a"></a>
857 <h2 class="memtitle"><span class="permalink"><a href="#ga211618c03a0bf3264a7b22ad626d4f0a">◆ </a></span>__REVSH()</h2>
859 <div class="memitem">
860 <div class="memproto">
861 <table class="memname">
863 <td class="memname">int16_t __REVSH </td>
865 <td class="paramtype">int16_t </td>
866 <td class="paramname"><em>value</em></td><td>)</td>
870 </div><div class="memdoc">
872 <p>Reverse byte order (16 bit) </p>
873 <p>Reverses the byte order in a 16-bit value and returns the signed 16-bit result. For example, 0x0080 becomes 0x8000. </p><dl class="params"><dt>Parameters</dt><dd>
874 <table class="params">
875 <tr><td class="paramdir">[in]</td><td class="paramname">value</td><td>Value to reverse </td></tr>
879 <dl class="section return"><dt>Returns</dt><dd>Reversed value </dd></dl>
883 <a id="gaf66beb577bb9d90424c3d1d7f684c024" name="gaf66beb577bb9d90424c3d1d7f684c024"></a>
884 <h2 class="memtitle"><span class="permalink"><a href="#gaf66beb577bb9d90424c3d1d7f684c024">◆ </a></span>__ROR()</h2>
886 <div class="memitem">
887 <div class="memproto">
888 <table class="memname">
890 <td class="memname">uint32_t __ROR </td>
892 <td class="paramtype">uint32_t </td>
893 <td class="paramname"><em>value</em>, </td>
896 <td class="paramkey"></td>
898 <td class="paramtype">uint32_t </td>
899 <td class="paramname"><em>shift</em> </td>
907 </div><div class="memdoc">
909 <p>Rotate a value right by a number of bits. </p>
910 <p>This function rotates a value right by a specified number of bits.</p>
911 <dl class="params"><dt>Parameters</dt><dd>
912 <table class="params">
913 <tr><td class="paramdir">[in]</td><td class="paramname">value</td><td>Value to be shifted right </td></tr>
914 <tr><td class="paramdir">[in]</td><td class="paramname">shift</td><td>Number of bits in the range [1..31] </td></tr>
918 <dl class="section return"><dt>Returns</dt><dd>Rotated value </dd></dl>
922 <a id="gac09134f1bf9c49db07282001afcc9380" name="gac09134f1bf9c49db07282001afcc9380"></a>
923 <h2 class="memtitle"><span class="permalink"><a href="#gac09134f1bf9c49db07282001afcc9380">◆ </a></span>__RRX()</h2>
925 <div class="memitem">
926 <div class="memproto">
927 <table class="memname">
929 <td class="memname">uint32_t __RRX </td>
931 <td class="paramtype">uint32_t </td>
932 <td class="paramname"><em>value</em></td><td>)</td>
936 </div><div class="memdoc">
938 <p>Rotate Right with Extend (32 bit) </p>
939 <p>This function moves each bit of a bitstring right by one bit. The carry input is shifted in at the left end of the bitstring.</p>
940 <dl class="params"><dt>Parameters</dt><dd>
941 <table class="params">
942 <tr><td class="paramdir">[in]</td><td class="paramname">value</td><td>Value to rotate </td></tr>
946 <dl class="section return"><dt>Returns</dt><dd>Rotated value </dd></dl>
950 <a id="ga3c34da7eb16496ae2668a5b95fa441e7" name="ga3c34da7eb16496ae2668a5b95fa441e7"></a>
951 <h2 class="memtitle"><span class="permalink"><a href="#ga3c34da7eb16496ae2668a5b95fa441e7">◆ </a></span>__SEV()</h2>
953 <div class="memitem">
954 <div class="memproto">
955 <table class="memname">
957 <td class="memname">void __SEV </td>
959 <td class="paramtype">void </td>
960 <td class="paramname"></td><td>)</td>
964 </div><div class="memdoc">
967 <p>Send Event is a hint instruction. It causes an event to be signaled to the CPU. </p>
971 <a id="ga8cfeb5ffe0e49ec6b29dafdde92e5118" name="ga8cfeb5ffe0e49ec6b29dafdde92e5118"></a>
972 <h2 class="memtitle"><span class="permalink"><a href="#ga8cfeb5ffe0e49ec6b29dafdde92e5118">◆ </a></span>__SSAT()</h2>
974 <div class="memitem">
975 <div class="memproto">
976 <table class="memname">
978 <td class="memname">int32_t __SSAT </td>
980 <td class="paramtype">int32_t </td>
981 <td class="paramname"><em>value</em>, </td>
984 <td class="paramkey"></td>
986 <td class="paramtype">uint32_t </td>
987 <td class="paramname"><em>sat</em> </td>
995 </div><div class="memdoc">
997 <p>Signed Saturate. </p>
998 <p>This function saturates a signed value. The Q bit is set if saturation occurs [not for Cortex-M0, Cortex-M0+, or SC000].</p>
999 <p>On Armv6-M (Cortex-M0, Cortex-M0+, and SC000) this function is not available as a core instruction instruction and thus __SSAT is implemented in software.</p>
1000 <dl class="params"><dt>Parameters</dt><dd>
1001 <table class="params">
1002 <tr><td class="paramdir">[in]</td><td class="paramname">value</td><td>Value to be saturated </td></tr>
1003 <tr><td class="paramdir">[in]</td><td class="paramname">sat</td><td>Bit position to saturate to [1..32] </td></tr>
1007 <dl class="section return"><dt>Returns</dt><dd>Saturated value </dd></dl>
1011 <a id="ga5429d7083fb8d30c43cecd3a861e1672" name="ga5429d7083fb8d30c43cecd3a861e1672"></a>
1012 <h2 class="memtitle"><span class="permalink"><a href="#ga5429d7083fb8d30c43cecd3a861e1672">◆ </a></span>__STL()</h2>
1014 <div class="memitem">
1015 <div class="memproto">
1016 <table class="memname">
1018 <td class="memname">void __STL </td>
1020 <td class="paramtype">uint32_t </td>
1021 <td class="paramname"><em>value</em>, </td>
1024 <td class="paramkey"></td>
1026 <td class="paramtype">volatile uint32_t * </td>
1027 <td class="paramname"><em>ptr</em> </td>
1035 </div><div class="memdoc">
1037 <p>Store-Release (32 bit) </p>
1038 <p>Executes a STL instruction for 32 bit values. </p><dl class="params"><dt>Parameters</dt><dd>
1039 <table class="params">
1040 <tr><td class="paramdir">[in]</td><td class="paramname">value</td><td>Value to store </td></tr>
1041 <tr><td class="paramdir">[in]</td><td class="paramname">ptr</td><td>Pointer to location </td></tr>
1045 <dl class="section note"><dt>Note</dt><dd>Only available for Armv8-M Architecture. </dd></dl>
1049 <a id="gace025d3a1f85d2ab9bae7288838d6bc8" name="gace025d3a1f85d2ab9bae7288838d6bc8"></a>
1050 <h2 class="memtitle"><span class="permalink"><a href="#gace025d3a1f85d2ab9bae7288838d6bc8">◆ </a></span>__STLB()</h2>
1052 <div class="memitem">
1053 <div class="memproto">
1054 <table class="memname">
1056 <td class="memname">void __STLB </td>
1058 <td class="paramtype">uint8_t </td>
1059 <td class="paramname"><em>value</em>, </td>
1062 <td class="paramkey"></td>
1064 <td class="paramtype">volatile uint8_t * </td>
1065 <td class="paramname"><em>ptr</em> </td>
1073 </div><div class="memdoc">
1075 <p>Store-Release (8 bit) </p>
1076 <p>Executes a STLB instruction for 8 bit values. </p><dl class="params"><dt>Parameters</dt><dd>
1077 <table class="params">
1078 <tr><td class="paramdir">[in]</td><td class="paramname">value</td><td>Value to store </td></tr>
1079 <tr><td class="paramdir">[in]</td><td class="paramname">ptr</td><td>Pointer to location </td></tr>
1083 <dl class="section note"><dt>Note</dt><dd>Only available for Armv8-M Architecture. </dd></dl>
1087 <a id="gae7f955b91595cfd82a03e4b437c59afe" name="gae7f955b91595cfd82a03e4b437c59afe"></a>
1088 <h2 class="memtitle"><span class="permalink"><a href="#gae7f955b91595cfd82a03e4b437c59afe">◆ </a></span>__STLEX()</h2>
1090 <div class="memitem">
1091 <div class="memproto">
1092 <table class="memname">
1094 <td class="memname">uint32_t __STLEX </td>
1096 <td class="paramtype">uint32_t </td>
1097 <td class="paramname"><em>value</em>, </td>
1100 <td class="paramkey"></td>
1102 <td class="paramtype">volatile uint32_t * </td>
1103 <td class="paramname"><em>ptr</em> </td>
1111 </div><div class="memdoc">
1113 <p>Store-Release Exclusive (32 bit) </p>
1114 <p>Executes a STL exclusive instruction for 32 bit values. </p><dl class="params"><dt>Parameters</dt><dd>
1115 <table class="params">
1116 <tr><td class="paramdir">[in]</td><td class="paramname">value</td><td>Value to store </td></tr>
1117 <tr><td class="paramdir">[in]</td><td class="paramname">ptr</td><td>Pointer to location </td></tr>
1121 <dl class="section return"><dt>Returns</dt><dd>0 Function succeeded </dd>
1123 1 Function failed </dd></dl>
1124 <dl class="section note"><dt>Note</dt><dd>Only available for Armv8-M Architecture. </dd></dl>
1128 <a id="ga590724a32a229978536fbbbd6cc82536" name="ga590724a32a229978536fbbbd6cc82536"></a>
1129 <h2 class="memtitle"><span class="permalink"><a href="#ga590724a32a229978536fbbbd6cc82536">◆ </a></span>__STLEXB()</h2>
1131 <div class="memitem">
1132 <div class="memproto">
1133 <table class="memname">
1135 <td class="memname">uint32_t __STLEXB </td>
1137 <td class="paramtype">uint8_t </td>
1138 <td class="paramname"><em>value</em>, </td>
1141 <td class="paramkey"></td>
1143 <td class="paramtype">volatile uint8_t * </td>
1144 <td class="paramname"><em>ptr</em> </td>
1152 </div><div class="memdoc">
1154 <p>Store-Release Exclusive (8 bit) </p>
1155 <p>Executes a STLB exclusive instruction for 8 bit values. </p><dl class="params"><dt>Parameters</dt><dd>
1156 <table class="params">
1157 <tr><td class="paramdir">[in]</td><td class="paramname">value</td><td>Value to store </td></tr>
1158 <tr><td class="paramdir">[in]</td><td class="paramname">ptr</td><td>Pointer to location </td></tr>
1162 <dl class="section return"><dt>Returns</dt><dd>0 Function succeeded </dd>
1164 1 Function failed </dd></dl>
1165 <dl class="section note"><dt>Note</dt><dd>Only available for Armv8-M Architecture. </dd></dl>
1169 <a id="ga047c3bebca3d0ae348ab8370a046301d" name="ga047c3bebca3d0ae348ab8370a046301d"></a>
1170 <h2 class="memtitle"><span class="permalink"><a href="#ga047c3bebca3d0ae348ab8370a046301d">◆ </a></span>__STLEXH()</h2>
1172 <div class="memitem">
1173 <div class="memproto">
1174 <table class="memname">
1176 <td class="memname">uint32_t __STLEXH </td>
1178 <td class="paramtype">uint16_t </td>
1179 <td class="paramname"><em>value</em>, </td>
1182 <td class="paramkey"></td>
1184 <td class="paramtype">volatile uint16_t * </td>
1185 <td class="paramname"><em>ptr</em> </td>
1193 </div><div class="memdoc">
1195 <p>Store-Release Exclusive (16 bit) </p>
1196 <p>Executes a STLH exclusive instruction for 16 bit values. </p><dl class="params"><dt>Parameters</dt><dd>
1197 <table class="params">
1198 <tr><td class="paramdir">[in]</td><td class="paramname">value</td><td>Value to store </td></tr>
1199 <tr><td class="paramdir">[in]</td><td class="paramname">ptr</td><td>Pointer to location </td></tr>
1203 <dl class="section return"><dt>Returns</dt><dd>0 Function succeeded </dd>
1205 1 Function failed </dd></dl>
1206 <dl class="section note"><dt>Note</dt><dd>Only available for Armv8-M Architecture. </dd></dl>
1210 <a id="ga25691650de536f9b248b15f6dc4a3e70" name="ga25691650de536f9b248b15f6dc4a3e70"></a>
1211 <h2 class="memtitle"><span class="permalink"><a href="#ga25691650de536f9b248b15f6dc4a3e70">◆ </a></span>__STLH()</h2>
1213 <div class="memitem">
1214 <div class="memproto">
1215 <table class="memname">
1217 <td class="memname">void __STLH </td>
1219 <td class="paramtype">uint16_t </td>
1220 <td class="paramname"><em>value</em>, </td>
1223 <td class="paramkey"></td>
1225 <td class="paramtype">volatile uint16_t * </td>
1226 <td class="paramname"><em>ptr</em> </td>
1234 </div><div class="memdoc">
1236 <p>Store-Release (16 bit) </p>
1237 <p>Executes a STLH instruction for 16 bit values. </p><dl class="params"><dt>Parameters</dt><dd>
1238 <table class="params">
1239 <tr><td class="paramdir">[in]</td><td class="paramname">value</td><td>Value to store </td></tr>
1240 <tr><td class="paramdir">[in]</td><td class="paramname">ptr</td><td>Pointer to location </td></tr>
1244 <dl class="section note"><dt>Note</dt><dd>Only available for Armv8-M Architecture. </dd></dl>
1248 <a id="gad41aa59c92c0a165b7f98428d3320cd5" name="gad41aa59c92c0a165b7f98428d3320cd5"></a>
1249 <h2 class="memtitle"><span class="permalink"><a href="#gad41aa59c92c0a165b7f98428d3320cd5">◆ </a></span>__STRBT()</h2>
1251 <div class="memitem">
1252 <div class="memproto">
1253 <table class="memname">
1255 <td class="memname">void __STRBT </td>
1257 <td class="paramtype">uint8_t </td>
1258 <td class="paramname"><em>value</em>, </td>
1261 <td class="paramkey"></td>
1263 <td class="paramtype">uint8_t </td>
1264 <td class="paramname"><em>ptr</em> </td>
1272 </div><div class="memdoc">
1274 <p>STRT Unprivileged (8 bit) </p>
1275 <p>This function executed an Unprivileged STRT command for 8 bit values.</p>
1276 <dl class="params"><dt>Parameters</dt><dd>
1277 <table class="params">
1278 <tr><td class="paramdir">[in]</td><td class="paramname">value</td><td>Value to store </td></tr>
1279 <tr><td class="paramdir">[in]</td><td class="paramname">ptr</td><td>Pointer to location </td></tr>
1286 <a id="gaab6482d1f59f59e2b6b7efc1af391c99" name="gaab6482d1f59f59e2b6b7efc1af391c99"></a>
1287 <h2 class="memtitle"><span class="permalink"><a href="#gaab6482d1f59f59e2b6b7efc1af391c99">◆ </a></span>__STREXB()</h2>
1289 <div class="memitem">
1290 <div class="memproto">
1291 <table class="memname">
1293 <td class="memname">uint32_t __STREXB </td>
1295 <td class="paramtype">uint8_t </td>
1296 <td class="paramname"><em>value</em>, </td>
1299 <td class="paramkey"></td>
1301 <td class="paramtype">volatile uint8_t * </td>
1302 <td class="paramname"><em>addr</em> </td>
1310 </div><div class="memdoc">
1312 <p>STR Exclusive (8 bit) [not for Cortex-M0, Cortex-M0+, or SC000]. </p>
1313 <p>This function executed an exclusive STR command for 8 bit values [not for Cortex-M0, Cortex-M0+, or SC000].</p>
1314 <dl class="params"><dt>Parameters</dt><dd>
1315 <table class="params">
1316 <tr><td class="paramdir">[in]</td><td class="paramname">value</td><td>Value to store </td></tr>
1317 <tr><td class="paramdir">[in]</td><td class="paramname">*addr</td><td>Pointer to location </td></tr>
1321 <dl class="section return"><dt>Returns</dt><dd>0 Function succeeded </dd>
1323 1 Function failed </dd></dl>
1327 <a id="ga0a354bdf71caa52f081a4a54e84c8d2a" name="ga0a354bdf71caa52f081a4a54e84c8d2a"></a>
1328 <h2 class="memtitle"><span class="permalink"><a href="#ga0a354bdf71caa52f081a4a54e84c8d2a">◆ </a></span>__STREXH()</h2>
1330 <div class="memitem">
1331 <div class="memproto">
1332 <table class="memname">
1334 <td class="memname">uint32_t __STREXH </td>
1336 <td class="paramtype">uint16_t </td>
1337 <td class="paramname"><em>value</em>, </td>
1340 <td class="paramkey"></td>
1342 <td class="paramtype">volatile uint16_t * </td>
1343 <td class="paramname"><em>addr</em> </td>
1351 </div><div class="memdoc">
1353 <p>STR Exclusive (16 bit) [not for Cortex-M0, Cortex-M0+, or SC000]. </p>
1354 <p>This function executed an exclusive STR command for 16 bit values [not for Cortex-M0, Cortex-M0+, or SC000].</p>
1355 <dl class="params"><dt>Parameters</dt><dd>
1356 <table class="params">
1357 <tr><td class="paramdir">[in]</td><td class="paramname">value</td><td>Value to store </td></tr>
1358 <tr><td class="paramdir">[in]</td><td class="paramname">*addr</td><td>Pointer to location </td></tr>
1362 <dl class="section return"><dt>Returns</dt><dd>0 Function succeeded </dd>
1364 1 Function failed </dd></dl>
1368 <a id="ga335deaaa7991490e1450cb7d1e4c5197" name="ga335deaaa7991490e1450cb7d1e4c5197"></a>
1369 <h2 class="memtitle"><span class="permalink"><a href="#ga335deaaa7991490e1450cb7d1e4c5197">◆ </a></span>__STREXW()</h2>
1371 <div class="memitem">
1372 <div class="memproto">
1373 <table class="memname">
1375 <td class="memname">uint32_t __STREXW </td>
1377 <td class="paramtype">uint32_t </td>
1378 <td class="paramname"><em>value</em>, </td>
1381 <td class="paramkey"></td>
1383 <td class="paramtype">volatile uint32_t * </td>
1384 <td class="paramname"><em>addr</em> </td>
1392 </div><div class="memdoc">
1394 <p>STR Exclusive (32 bit) [not for Cortex-M0, Cortex-M0+, or SC000]. </p>
1395 <p>This function executed an exclusive STR command for 32 bit values [not for Cortex-M0, Cortex-M0+, or SC000].</p>
1396 <dl class="params"><dt>Parameters</dt><dd>
1397 <table class="params">
1398 <tr><td class="paramdir">[in]</td><td class="paramname">value</td><td>Value to store </td></tr>
1399 <tr><td class="paramdir">[in]</td><td class="paramname">*addr</td><td>Pointer to location </td></tr>
1403 <dl class="section return"><dt>Returns</dt><dd>0 Function succeeded </dd>
1405 1 Function failed </dd></dl>
1409 <a id="ga2b5d93b8e461755b1072a03df3f1722e" name="ga2b5d93b8e461755b1072a03df3f1722e"></a>
1410 <h2 class="memtitle"><span class="permalink"><a href="#ga2b5d93b8e461755b1072a03df3f1722e">◆ </a></span>__STRHT()</h2>
1412 <div class="memitem">
1413 <div class="memproto">
1414 <table class="memname">
1416 <td class="memname">void __STRHT </td>
1418 <td class="paramtype">uint16_t </td>
1419 <td class="paramname"><em>value</em>, </td>
1422 <td class="paramkey"></td>
1424 <td class="paramtype">uint16_t </td>
1425 <td class="paramname"><em>ptr</em> </td>
1433 </div><div class="memdoc">
1435 <p>STRT Unprivileged (16 bit) </p>
1436 <p>This function executed an Unprivileged STRT command for 16 bit values.</p>
1437 <dl class="params"><dt>Parameters</dt><dd>
1438 <table class="params">
1439 <tr><td class="paramdir">[in]</td><td class="paramname">value</td><td>Value to store </td></tr>
1440 <tr><td class="paramdir">[in]</td><td class="paramname">ptr</td><td>Pointer to location </td></tr>
1447 <a id="ga625bc4ac0b1d50de9bcd13d9f050030e" name="ga625bc4ac0b1d50de9bcd13d9f050030e"></a>
1448 <h2 class="memtitle"><span class="permalink"><a href="#ga625bc4ac0b1d50de9bcd13d9f050030e">◆ </a></span>__STRT()</h2>
1450 <div class="memitem">
1451 <div class="memproto">
1452 <table class="memname">
1454 <td class="memname">void __STRT </td>
1456 <td class="paramtype">uint32_t </td>
1457 <td class="paramname"><em>value</em>, </td>
1460 <td class="paramkey"></td>
1462 <td class="paramtype">uint32_t </td>
1463 <td class="paramname"><em>ptr</em> </td>
1471 </div><div class="memdoc">
1473 <p>STRT Unprivileged (32 bit) </p>
1474 <p>This function executed an Unprivileged STRT command for 32 bit values.</p>
1475 <dl class="params"><dt>Parameters</dt><dd>
1476 <table class="params">
1477 <tr><td class="paramdir">[in]</td><td class="paramname">value</td><td>Value to store </td></tr>
1478 <tr><td class="paramdir">[in]</td><td class="paramname">ptr</td><td>Pointer to location </td></tr>
1485 <a id="ga9ba87371aebd17dd6244ed3458b29b5d" name="ga9ba87371aebd17dd6244ed3458b29b5d"></a>
1486 <h2 class="memtitle"><span class="permalink"><a href="#ga9ba87371aebd17dd6244ed3458b29b5d">◆ </a></span>__USAT()</h2>
1488 <div class="memitem">
1489 <div class="memproto">
1490 <table class="memname">
1492 <td class="memname">uint32_t __USAT </td>
1494 <td class="paramtype">int32_t </td>
1495 <td class="paramname"><em>value</em>, </td>
1498 <td class="paramkey"></td>
1500 <td class="paramtype">uint32_t </td>
1501 <td class="paramname"><em>sat</em> </td>
1509 </div><div class="memdoc">
1511 <p>Unsigned Saturate. </p>
1512 <p>This function saturates an unsigned value. The Q bit is set if saturation occurs [not for Cortex-M0, Cortex-M0+, or SC000].</p>
1513 <p>On Armv6-M (Cortex-M0, Cortex-M0+, and SC000) this function is not available as a core instruction instruction and thus __USAT is implemented in software.</p>
1514 <dl class="params"><dt>Parameters</dt><dd>
1515 <table class="params">
1516 <tr><td class="paramdir">[in]</td><td class="paramname">value</td><td>Value to be saturated </td></tr>
1517 <tr><td class="paramdir">[in]</td><td class="paramname">sat</td><td>Bit position to saturate to [0..31] </td></tr>
1521 <dl class="section return"><dt>Returns</dt><dd>Saturated value </dd></dl>
1525 <a id="gad3efec76c3bfa2b8528ded530386c563" name="gad3efec76c3bfa2b8528ded530386c563"></a>
1526 <h2 class="memtitle"><span class="permalink"><a href="#gad3efec76c3bfa2b8528ded530386c563">◆ </a></span>__WFE()</h2>
1528 <div class="memitem">
1529 <div class="memproto">
1530 <table class="memname">
1532 <td class="memname">void __WFE </td>
1534 <td class="paramtype">void </td>
1535 <td class="paramname"></td><td>)</td>
1539 </div><div class="memdoc">
1541 <p>Wait For Event. </p>
1542 <p>Wait For Event is a hint instruction that permits the processor to enter a low-power state until an events occurs: </p><ul>
1543 <li>If the <b>event register is 0</b>, then WFE suspends execution until one of the following events occurs:<ul>
1544 <li>An exception, unless masked by the exception mask registers or the current priority level.</li>
1545 <li>An exception enters the Pending state, if SEVONPEND in the System Control Register is set.</li>
1546 <li>A Debug Entry request, if Debug is enabled.</li>
1547 <li>An event signaled by a peripheral or another processor in a multiprocessor system using the SEV instruction.</li>
1552 <li>If the <b>event register is 1</b>, then WFE clears it to 0 and returns immediately. </li>
1557 <a id="gaed91dfbf3d7d7b7fba8d912fcbeaad88" name="gaed91dfbf3d7d7b7fba8d912fcbeaad88"></a>
1558 <h2 class="memtitle"><span class="permalink"><a href="#gaed91dfbf3d7d7b7fba8d912fcbeaad88">◆ </a></span>__WFI()</h2>
1560 <div class="memitem">
1561 <div class="memproto">
1562 <table class="memname">
1564 <td class="memname">void __WFI </td>
1566 <td class="paramtype">void </td>
1567 <td class="paramname"></td><td>)</td>
1571 </div><div class="memdoc">
1573 <p>Wait For Interrupt. </p>
1574 <p>WFI is a hint instruction that suspends execution until one of the following events occurs:</p><ul>
1575 <li>A non-masked interrupt occurs and is taken.</li>
1576 <li>An interrupt masked by PRIMASK becomes pending.</li>
1577 <li>A Debug Entry request. </li>
1582 </div><!-- contents -->
1583 </div><!-- doc-content -->
1584 <!-- start footer part -->
1585 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
1588 <script type="text/javascript">
1590 writeFooter.call(this);