Loading files
This file is pinned to the selected release. Download the original to open it in your design tool.
a61c4d726This file is pinned to the selected release. Download the original to open it in your design tool.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.17"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>DIY Logging Volt/Ampmeter: STM32F103C8T6_powermeter-interface/Drivers/CMSIS/Include/cmsis_armcc.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">DIY Logging Volt/Ampmeter
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',false,false,'search.php','Search');
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('cmsis__armcc_8h_source.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<div class="header">
<div class="headertitle">
<div class="title">cmsis_armcc.h</div> </div>
</div><!--header-->
<div class="contents">
<a href="cmsis__armcc_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/**************************************************************************/</span><span class="comment">/**</span></div>
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * @file cmsis_armcc.h</span></div>
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * @brief CMSIS compiler ARMCC (Arm Compiler 5) header file</span></div>
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> * @version V5.0.4</span></div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * @date 10. January 2018</span></div>
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> ******************************************************************************/</span></div>
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment">/*</span></div>
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> * Copyright (c) 2009-2018 Arm Limited. All rights reserved.</span></div>
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment"> *</span></div>
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment"> * SPDX-License-Identifier: Apache-2.0</span></div>
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment"> *</span></div>
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment"> * Licensed under the Apache License, Version 2.0 (the License); you may</span></div>
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment"> * not use this file except in compliance with the License.</span></div>
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment"> * You may obtain a copy of the License at</span></div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment"> *</span></div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment"> * www.apache.org/licenses/LICENSE-2.0</span></div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="comment"> *</span></div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="comment"> * Unless required by applicable law or agreed to in writing, software</span></div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="comment"> * distributed under the License is distributed on an AS IS BASIS, WITHOUT</span></div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="comment"> * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span></div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="comment"> * See the License for the specific language governing permissions and</span></div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="comment"> * limitations under the License.</span></div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="comment"> */</span></div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>  </div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#ifndef __CMSIS_ARMCC_H</span></div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#define __CMSIS_ARMCC_H</span></div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>  </div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>  </div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#if defined(__ARMCC_VERSION) && (__ARMCC_VERSION < 400677)</span></div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor"> #error "Please use Arm Compiler Toolchain V4.0.677 or later!"</span></div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>  </div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="comment">/* CMSIS compiler control architecture macros */</span></div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor">#if ((defined (__TARGET_ARCH_6_M ) && (__TARGET_ARCH_6_M == 1)) || \</span></div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor"> (defined (__TARGET_ARCH_6S_M ) && (__TARGET_ARCH_6S_M == 1)) )</span></div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="preprocessor"> #define __ARM_ARCH_6M__ 1</span></div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  </div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="preprocessor">#if (defined (__TARGET_ARCH_7_M ) && (__TARGET_ARCH_7_M == 1))</span></div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="preprocessor"> #define __ARM_ARCH_7M__ 1</span></div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  </div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="preprocessor">#if (defined (__TARGET_ARCH_7E_M) && (__TARGET_ARCH_7E_M == 1))</span></div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="preprocessor"> #define __ARM_ARCH_7EM__ 1</span></div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  </div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  <span class="comment">/* __ARM_ARCH_8M_BASE__ not applicable */</span></div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  <span class="comment">/* __ARM_ARCH_8M_MAIN__ not applicable */</span></div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  </div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  </div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="comment">/* CMSIS compiler specific defines */</span></div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="preprocessor">#ifndef __ASM</span></div>
<div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="cmsis__armcc_8h.html#a1378040bcf22428955c6e3ce9c2053cd"> 53</a></span> <span class="preprocessor"> #define __ASM __asm</span></div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="preprocessor">#ifndef __INLINE</span></div>
<div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="cmsis__armcc_8h.html#ade2d8d7118f8ff49547f60aa0c3382bb"> 56</a></span> <span class="preprocessor"> #define __INLINE __inline</span></div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="preprocessor">#ifndef __STATIC_INLINE</span></div>
<div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="cmsis__armcc_8h.html#aba87361bfad2ae52cfe2f40c1a1dbf9c"> 59</a></span> <span class="preprocessor"> #define __STATIC_INLINE static __inline</span></div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <span class="preprocessor">#ifndef __STATIC_FORCEINLINE </span></div>
<div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="cmsis__armcc_8h.html#ab904513442afdf77d4f8c74f23cbb040"> 62</a></span> <span class="preprocessor"> #define __STATIC_FORCEINLINE static __forceinline</span></div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="preprocessor">#endif </span></div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="preprocessor">#ifndef __NO_RETURN</span></div>
<div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="cmsis__armcc_8h.html#a153a4a31b276a9758959580538720a51"> 65</a></span> <span class="preprocessor"> #define __NO_RETURN __declspec(noreturn)</span></div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> <span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> <span class="preprocessor">#ifndef __USED</span></div>
<div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="cmsis__armcc_8h.html#a3e40e4c553fc11588f7a4c2a19e789e0"> 68</a></span> <span class="preprocessor"> #define __USED __attribute__((used))</span></div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> <span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> <span class="preprocessor">#ifndef __WEAK</span></div>
<div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="cmsis__armcc_8h.html#ac607bf387b29162be6a9b77fc7999539"> 71</a></span> <span class="preprocessor"> #define __WEAK __attribute__((weak))</span></div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> <span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> <span class="preprocessor">#ifndef __PACKED</span></div>
<div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="cmsis__armcc_8h.html#abe8996d3d985ee1529475443cc635bf1"> 74</a></span> <span class="preprocessor"> #define __PACKED __attribute__((packed))</span></div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> <span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> <span class="preprocessor">#ifndef __PACKED_STRUCT</span></div>
<div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="cmsis__armcc_8h.html#a4dbb70fab85207c27b581ecb6532b314"> 77</a></span> <span class="preprocessor"> #define __PACKED_STRUCT __packed struct</span></div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> <span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> <span class="preprocessor">#ifndef __PACKED_UNION</span></div>
<div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="cmsis__armcc_8h.html#a6fba34d08b0a526830b4231d2ea0b89a"> 80</a></span> <span class="preprocessor"> #define __PACKED_UNION __packed union</span></div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> <span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> <span class="preprocessor">#ifndef __UNALIGNED_UINT32 </span><span class="comment">/* deprecated */</span><span class="preprocessor"></span></div>
<div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="cmsis__armcc_8h.html#ac8a13aacd0453758fdfd01a57a2a6a3d"> 83</a></span> <span class="preprocessor"> #define __UNALIGNED_UINT32(x) (*((__packed uint32_t *)(x)))</span></div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> <span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> <span class="preprocessor">#ifndef __UNALIGNED_UINT16_WRITE</span></div>
<div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="cmsis__armcc_8h.html#a5103fb373cae9837cc4a384be55dc87f"> 86</a></span> <span class="preprocessor"> #define __UNALIGNED_UINT16_WRITE(addr, val) ((*((__packed uint16_t *)(addr))) = (val))</span></div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> <span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> <span class="preprocessor">#ifndef __UNALIGNED_UINT16_READ</span></div>
<div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="cmsis__armcc_8h.html#ab71b66e5ce403158d3dee62a59f9175f"> 89</a></span> <span class="preprocessor"> #define __UNALIGNED_UINT16_READ(addr) (*((const __packed uint16_t *)(addr)))</span></div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> <span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> <span class="preprocessor">#ifndef __UNALIGNED_UINT32_WRITE</span></div>
<div class="line"><a name="l00092"></a><span class="lineno"><a class="line" href="cmsis__armcc_8h.html#a203f593d140ed88b81bc189edc861110"> 92</a></span> <span class="preprocessor"> #define __UNALIGNED_UINT32_WRITE(addr, val) ((*((__packed uint32_t *)(addr))) = (val))</span></div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> <span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> <span class="preprocessor">#ifndef __UNALIGNED_UINT32_READ</span></div>
<div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="cmsis__armcc_8h.html#a3b931f0b051b8c1a6377a3dcc7559b5e"> 95</a></span> <span class="preprocessor"> #define __UNALIGNED_UINT32_READ(addr) (*((const __packed uint32_t *)(addr)))</span></div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> <span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> <span class="preprocessor">#ifndef __ALIGNED</span></div>
<div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="cmsis__armcc_8h.html#aa65ef8f7a5e8b7a6ea6c1d48b4c78e55"> 98</a></span> <span class="preprocessor"> #define __ALIGNED(x) __attribute__((aligned(x)))</span></div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> <span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> <span class="preprocessor">#ifndef __RESTRICT</span></div>
<div class="line"><a name="l00101"></a><span class="lineno"><a class="line" href="cmsis__armcc_8h.html#a378ac21329d33f561f90265eef89f564"> 101</a></span> <span class="preprocessor"> #define __RESTRICT __restrict</span></div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> <span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  </div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> <span class="comment">/* ########################### Core Function Access ########################### */</span><span class="comment"></span></div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> <span class="comment">/** \ingroup CMSIS_Core_FunctionInterface</span></div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> <span class="comment"> \defgroup CMSIS_Core_RegAccFunctions CMSIS Core Register Access Functions</span></div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> <span class="comment"> @{</span></div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> <span class="comment"> */</span></div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> <span class="comment"></span> </div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> <span class="comment">/**</span></div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> <span class="comment"> \brief Enable IRQ Interrupts</span></div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> <span class="comment"> \details Enables IRQ interrupts by clearing the I-bit in the CPSR.</span></div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> <span class="comment"> Can only be executed in Privileged modes.</span></div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> <span class="comment"> */</span></div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> <span class="comment">/* intrinsic void __enable_irq(); */</span></div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  </div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> <span class="comment"></span> </div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> <span class="comment">/**</span></div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> <span class="comment"> \brief Disable IRQ Interrupts</span></div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> <span class="comment"> \details Disables IRQ interrupts by setting the I-bit in the CPSR.</span></div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> <span class="comment"> Can only be executed in Privileged modes.</span></div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> <span class="comment"> */</span></div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> <span class="comment">/* intrinsic void __disable_irq(); */</span></div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> <span class="comment"></span> </div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> <span class="comment">/**</span></div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> <span class="comment"> \brief Get Control Register</span></div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> <span class="comment"> \details Returns the content of the Control Register.</span></div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span> <span class="comment"> \return Control Register value</span></div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> <span class="comment"> */</span></div>
<div class="line"><a name="l00130"></a><span class="lineno"><a class="line" href="group__CMSIS__Core__RegAccFunctions.html#ga40ae8e49000aa06e347b33a7f43b04ad"> 130</a></span> <a class="code" href="cmsis__armcc_8h.html#aba87361bfad2ae52cfe2f40c1a1dbf9c">__STATIC_INLINE</a> uint32_t <a class="code" href="group__CMSIS__Core__RegAccFunctions.html#ga40ae8e49000aa06e347b33a7f43b04ad">__get_CONTROL</a>(<span class="keywordtype">void</span>)</div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> {</div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  <span class="keyword">register</span> uint32_t __regControl <a class="code" href="cmsis__armcc_8h.html#a1378040bcf22428955c6e3ce9c2053cd">__ASM</a>(<span class="stringliteral">"control"</span>);</div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  <span class="keywordflow">return</span>(__regControl);</div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> }</div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  </div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> <span class="comment"></span> </div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> <span class="comment">/**</span></div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> <span class="comment"> \brief Set Control Register</span></div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span> <span class="comment"> \details Writes the given value to the Control Register.</span></div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span> <span class="comment"> \param [in] control Control Register value to set</span></div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span> <span class="comment"> */</span></div>
<div class="line"><a name="l00142"></a><span class="lineno"><a class="line" href="group__CMSIS__Core__RegAccFunctions.html#ga34c9673a9c8ea13960a6af6603966784"> 142</a></span> <a class="code" href="cmsis__armcc_8h.html#aba87361bfad2ae52cfe2f40c1a1dbf9c">__STATIC_INLINE</a> <span class="keywordtype">void</span> <a class="code" href="group__CMSIS__Core__RegAccFunctions.html#ga34c9673a9c8ea13960a6af6603966784">__set_CONTROL</a>(uint32_t control)</div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> {</div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  <span class="keyword">register</span> uint32_t __regControl <a class="code" href="cmsis__armcc_8h.html#a1378040bcf22428955c6e3ce9c2053cd">__ASM</a>(<span class="stringliteral">"control"</span>);</div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  __regControl = control;</div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> }</div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  </div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> <span class="comment"></span> </div>
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span> <span class="comment">/**</span></div>
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span> <span class="comment"> \brief Get IPSR Register</span></div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span> <span class="comment"> \details Returns the content of the IPSR Register.</span></div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> <span class="comment"> \return IPSR Register value</span></div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span> <span class="comment"> */</span></div>
<div class="line"><a name="l00154"></a><span class="lineno"><a class="line" href="group__CMSIS__Core__RegAccFunctions.html#ga8f2843ba4ca7a815e15303d7e5880a96"> 154</a></span> <a class="code" href="cmsis__armcc_8h.html#aba87361bfad2ae52cfe2f40c1a1dbf9c">__STATIC_INLINE</a> uint32_t <a class="code" href="group__CMSIS__Core__RegAccFunctions.html#ga8f2843ba4ca7a815e15303d7e5880a96">__get_IPSR</a>(<span class="keywordtype">void</span>)</div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span> {</div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  <span class="keyword">register</span> uint32_t __regIPSR <a class="code" href="cmsis__armcc_8h.html#a1378040bcf22428955c6e3ce9c2053cd">__ASM</a>(<span class="stringliteral">"ipsr"</span>);</div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  <span class="keywordflow">return</span>(__regIPSR);</div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span> }</div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  </div>
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span> <span class="comment"></span> </div>
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span> <span class="comment">/**</span></div>
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span> <span class="comment"> \brief Get APSR Register</span></div>
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span> <span class="comment"> \details Returns the content of the APSR Register.</span></div>
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span> <span class="comment"> \return APSR Register value</span></div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span> <span class="comment"> */</span></div>
<div class="line"><a name="l00166"></a><span class="lineno"><a class="line" href="group__CMSIS__Core__RegAccFunctions.html#gab308e346b29015dd289308bcd76909af"> 166</a></span> <a class="code" href="cmsis__armcc_8h.html#aba87361bfad2ae52cfe2f40c1a1dbf9c">__STATIC_INLINE</a> uint32_t <a class="code" href="group__CMSIS__Core__RegAccFunctions.html#gab308e346b29015dd289308bcd76909af">__get_APSR</a>(<span class="keywordtype">void</span>)</div>
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span> {</div>
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  <span class="keyword">register</span> uint32_t __regAPSR <a class="code" href="cmsis__armcc_8h.html#a1378040bcf22428955c6e3ce9c2053cd">__ASM</a>(<span class="stringliteral">"apsr"</span>);</div>
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  <span class="keywordflow">return</span>(__regAPSR);</div>
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span> }</div>
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  </div>
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span> <span class="comment"></span> </div>
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span> <span class="comment">/**</span></div>
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span> <span class="comment"> \brief Get xPSR Register</span></div>
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span> <span class="comment"> \details Returns the content of the xPSR Register.</span></div>
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span> <span class="comment"> \return xPSR Register value</span></div>
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span> <span class="comment"> */</span></div>
<div class="line"><a name="l00178"></a><span class="lineno"><a class="line" href="group__CMSIS__Core__RegAccFunctions.html#ga078b4a8138476da3d0b22cced848d1e9"> 178</a></span> <a class="code" href="cmsis__armcc_8h.html#aba87361bfad2ae52cfe2f40c1a1dbf9c">__STATIC_INLINE</a> uint32_t <a class="code" href="group__CMSIS__Core__RegAccFunctions.html#ga078b4a8138476da3d0b22cced848d1e9">__get_xPSR</a>(<span class="keywordtype">void</span>)</div>
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span> {</div>
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  <span class="keyword">register</span> uint32_t __regXPSR <a class="code" href="cmsis__armcc_8h.html#a1378040bcf22428955c6e3ce9c2053cd">__ASM</a>(<span class="stringliteral">"xpsr"</span>);</div>
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  <span class="keywordflow">return</span>(__regXPSR);</div>
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span> }</div>
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  </div>
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span> <span class="comment"></span> </div>
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span> <span class="comment">/**</span></div>
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span> <span class="comment"> \brief Get Process Stack Pointer</span></div>
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span> <span class="comment"> \details Returns the current value of the Process Stack Pointer (PSP).</span></div>
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span> <span class="comment"> \return PSP Register value</span></div>
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span> <span class="comment"> */</span></div>
<div class="line"><a name="l00190"></a><span class="lineno"><a class="line" href="group__CMSIS__Core__RegAccFunctions.html#ga200ad037cde04b8fde4fa365e87b365b"> 190</a></span> <a class="code" href="cmsis__armcc_8h.html#aba87361bfad2ae52cfe2f40c1a1dbf9c">__STATIC_INLINE</a> uint32_t <a class="code" href="group__CMSIS__Core__RegAccFunctions.html#ga200ad037cde04b8fde4fa365e87b365b">__get_PSP</a>(<span class="keywordtype">void</span>)</div>
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span> {</div>
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  <span class="keyword">register</span> uint32_t __regProcessStackPointer <a class="code" href="cmsis__armcc_8h.html#a1378040bcf22428955c6e3ce9c2053cd">__ASM</a>(<span class="stringliteral">"psp"</span>);</div>
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  <span class="keywordflow">return</span>(__regProcessStackPointer);</div>
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span> }</div>
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  </div>
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span> <span class="comment"></span> </div>
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span> <span class="comment">/**</span></div>
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span> <span class="comment"> \brief Set Process Stack Pointer</span></div>
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span> <span class="comment"> \details Assigns the given value to the Process Stack Pointer (PSP).</span></div>
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span> <span class="comment"> \param [in] topOfProcStack Process Stack Pointer value to set</span></div>
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span> <span class="comment"> */</span></div>
<div class="line"><a name="l00202"></a><span class="lineno"><a class="line" href="group__CMSIS__Core__RegAccFunctions.html#gac7d4bea74e3cd6bdfe5a97b8044f2516"> 202</a></span> <a class="code" href="cmsis__armcc_8h.html#aba87361bfad2ae52cfe2f40c1a1dbf9c">__STATIC_INLINE</a> <span class="keywordtype">void</span> <a class="code" href="group__CMSIS__Core__RegAccFunctions.html#gac7d4bea74e3cd6bdfe5a97b8044f2516">__set_PSP</a>(uint32_t topOfProcStack)</div>
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span> {</div>
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>  <span class="keyword">register</span> uint32_t __regProcessStackPointer <a class="code" href="cmsis__armcc_8h.html#a1378040bcf22428955c6e3ce9c2053cd">__ASM</a>(<span class="stringliteral">"psp"</span>);</div>
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  __regProcessStackPointer = topOfProcStack;</div>
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span> }</div>
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  </div>
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span> <span class="comment"></span> </div>
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span> <span class="comment">/**</span></div>
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span> <span class="comment"> \brief Get Main Stack Pointer</span></div>
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span> <span class="comment"> \details Returns the current value of the Main Stack Pointer (MSP).</span></div>
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span> <span class="comment"> \return MSP Register value</span></div>
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span> <span class="comment"> */</span></div>
<div class="line"><a name="l00214"></a><span class="lineno"><a class="line" href="group__CMSIS__Core__RegAccFunctions.html#ga3d0d190e1af0d79fbfdf0d02d8eff91f"> 214</a></span> <a class="code" href="cmsis__armcc_8h.html#aba87361bfad2ae52cfe2f40c1a1dbf9c">__STATIC_INLINE</a> uint32_t <a class="code" href="group__CMSIS__Core__RegAccFunctions.html#ga3d0d190e1af0d79fbfdf0d02d8eff91f">__get_MSP</a>(<span class="keywordtype">void</span>)</div>
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span> {</div>
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  <span class="keyword">register</span> uint32_t __regMainStackPointer <a class="code" href="cmsis__armcc_8h.html#a1378040bcf22428955c6e3ce9c2053cd">__ASM</a>(<span class="stringliteral">"msp"</span>);</div>
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>  <span class="keywordflow">return</span>(__regMainStackPointer);</div>
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span> }</div>
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>  </div>
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span> <span class="comment"></span> </div>
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span> <span class="comment">/**</span></div>
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span> <span class="comment"> \brief Set Main Stack Pointer</span></div>
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span> <span class="comment"> \details Assigns the given value to the Main Stack Pointer (MSP).</span></div>
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span> <span class="comment"> \param [in] topOfMainStack Main Stack Pointer value to set</span></div>
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span> <span class="comment"> */</span></div>
<div class="line"><a name="l00226"></a><span class="lineno"><a class="line" href="group__CMSIS__Core__RegAccFunctions.html#ga69d362872c4f145142248117d8d015fd"> 226</a></span> <a class="code" href="cmsis__armcc_8h.html#aba87361bfad2ae52cfe2f40c1a1dbf9c">__STATIC_INLINE</a> <span class="keywordtype">void</span> <a class="code" href="group__CMSIS__Core__RegAccFunctions.html#ga69d362872c4f145142248117d8d015fd">__set_MSP</a>(uint32_t topOfMainStack)</div>
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span> {</div>
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>  <span class="keyword">register</span> uint32_t __regMainStackPointer <a class="code" href="cmsis__armcc_8h.html#a1378040bcf22428955c6e3ce9c2053cd">__ASM</a>(<span class="stringliteral">"msp"</span>);</div>
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>  __regMainStackPointer = topOfMainStack;</div>
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span> }</div>
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>  </div>
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span> <span class="comment"></span> </div>
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span> <span class="comment">/**</span></div>
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span> <span class="comment"> \brief Get Priority Mask</span></div>
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span> <span class="comment"> \details Returns the current state of the priority mask bit from the Priority Mask Register.</span></div>
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span> <span class="comment"> \return Priority Mask value</span></div>
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span> <span class="comment"> */</span></div>
<div class="line"><a name="l00238"></a><span class="lineno"><a class="line" href="group__CMSIS__Core__RegAccFunctions.html#ga79f336aeb1381967662621fcd8b7780d"> 238</a></span> <a class="code" href="cmsis__armcc_8h.html#aba87361bfad2ae52cfe2f40c1a1dbf9c">__STATIC_INLINE</a> uint32_t <a class="code" href="group__CMSIS__Core__RegAccFunctions.html#ga79f336aeb1381967662621fcd8b7780d">__get_PRIMASK</a>(<span class="keywordtype">void</span>)</div>
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span> {</div>
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>  <span class="keyword">register</span> uint32_t __regPriMask <a class="code" href="cmsis__armcc_8h.html#a1378040bcf22428955c6e3ce9c2053cd">__ASM</a>(<span class="stringliteral">"primask"</span>);</div>
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>  <span class="keywordflow">return</span>(__regPriMask);</div>
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span> }</div>
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>  </div>
<div class="line"><a name="l00244"></a><span class="lineno"> 244</span> <span class="comment"></span> </div>
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span> <span class="comment">/**</span></div>
<div class="line"><a name="l00246"></a><span class="lineno"> 246</span> <span class="comment"> \brief Set Priority Mask</span></div>
<div class="line"><a name="l00247"></a><span class="lineno"> 247</span> <span class="comment"> \details Assigns the given value to the Priority Mask Register.</span></div>
<div class="line"><a name="l00248"></a><span class="lineno"> 248</span> <span class="comment"> \param [in] priMask Priority Mask</span></div>
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span> <span class="comment"> */</span></div>
<div class="line"><a name="l00250"></a><span class="lineno"><a class="line" href="group__CMSIS__Core__RegAccFunctions.html#gab80a73db691b79612ee06b6116dbfe25"> 250</a></span> <a class="code" href="cmsis__armcc_8h.html#aba87361bfad2ae52cfe2f40c1a1dbf9c">__STATIC_INLINE</a> <span class="keywordtype">void</span> <a class="code" href="group__CMSIS__Core__RegAccFunctions.html#gab80a73db691b79612ee06b6116dbfe25">__set_PRIMASK</a>(uint32_t priMask)</div>
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span> {</div>
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>  <span class="keyword">register</span> uint32_t __regPriMask <a class="code" href="cmsis__armcc_8h.html#a1378040bcf22428955c6e3ce9c2053cd">__ASM</a>(<span class="stringliteral">"primask"</span>);</div>
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>  __regPriMask = (priMask);</div>
<div class="line"><a name="l00254"></a><span class="lineno"> 254</span> }</div>
<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>  </div>
<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>  </div>
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span> <span class="preprocessor">#if ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \</span></div>
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span> <span class="preprocessor"> (defined (__ARM_ARCH_7EM__) && (__ARM_ARCH_7EM__ == 1)) )</span></div>
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span> <span class="comment"></span> </div>
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span> <span class="comment">/**</span></div>
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span> <span class="comment"> \brief Enable FIQ</span></div>
<div class="line"><a name="l00262"></a><span class="lineno"> 262</span> <span class="comment"> \details Enables FIQ interrupts by clearing the F-bit in the CPSR.</span></div>
<div class="line"><a name="l00263"></a><span class="lineno"> 263</span> <span class="comment"> Can only be executed in Privileged modes.</span></div>
<div class="line"><a name="l00264"></a><span class="lineno"> 264</span> <span class="comment"> */</span></div>
<div class="line"><a name="l00265"></a><span class="lineno"> 265</span> <span class="preprocessor">#define __enable_fault_irq __enable_fiq</span></div>
<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>  </div>
<div class="line"><a name="l00267"></a><span class="lineno"> 267</span> <span class="comment"></span> </div>
<div class="line"><a name="l00268"></a><span class="lineno"> 268</span> <span class="comment">/**</span></div>
<div class="line"><a name="l00269"></a><span class="lineno"> 269</span> <span class="comment"> \brief Disable FIQ</span></div>
<div class="line"><a name="l00270"></a><span class="lineno"> 270</span> <span class="comment"> \details Disables FIQ interrupts by setting the F-bit in the CPSR.</span></div>
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span> <span class="comment"> Can only be executed in Privileged modes.</span></div>
<div class="line"><a name="l00272"></a><span class="lineno"> 272</span> <span class="comment"> */</span></div>
<div class="line"><a name="l00273"></a><span class="lineno"> 273</span> <span class="preprocessor">#define __disable_fault_irq __disable_fiq</span></div>
<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>  </div>
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span> <span class="comment"></span> </div>
<div class="line"><a name="l00276"></a><span class="lineno"> 276</span> <span class="comment">/**</span></div>
<div class="line"><a name="l00277"></a><span class="lineno"> 277</span> <span class="comment"> \brief Get Base Priority</span></div>
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span> <span class="comment"> \details Returns the current value of the Base Priority register.</span></div>
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span> <span class="comment"> \return Base Priority register value</span></div>
<div class="line"><a name="l00280"></a><span class="lineno"> 280</span> <span class="comment"> */</span></div>
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span> <a class="code" href="cmsis__armcc_8h.html#aba87361bfad2ae52cfe2f40c1a1dbf9c">__STATIC_INLINE</a> uint32_t __get_BASEPRI(<span class="keywordtype">void</span>)</div>
<div class="line"><a name="l00282"></a><span class="lineno"> 282</span> {</div>
<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>  <span class="keyword">register</span> uint32_t __regBasePri <a class="code" href="cmsis__armcc_8h.html#a1378040bcf22428955c6e3ce9c2053cd">__ASM</a>(<span class="stringliteral">"basepri"</span>);</div>
<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>  <span class="keywordflow">return</span>(__regBasePri);</div>
<div class="line"><a name="l00285"></a><span class="lineno"> 285</span> }</div>
<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>  </div>
<div class="line"><a name="l00287"></a><span class="lineno"> 287</span> <span class="comment"></span> </div>
<div class="line"><a name="l00288"></a><span class="lineno"> 288</span> <span class="comment">/**</span></div>
<div class="line"><a name="l00289"></a><span class="lineno"> 289</span> <span class="comment"> \brief Set Base Priority</span></div>
<div class="line"><a name="l00290"></a><span class="lineno"> 290</span> <span class="comment"> \details Assigns the given value to the Base Priority register.</span></div>
<div class="line"><a name="l00291"></a><span class="lineno"> 291</span> <span class="comment"> \param [in] basePri Base Priority value to set</span></div>
<div class="line"><a name="l00292"></a><span class="lineno"> 292</span> <span class="comment"> */</span></div>
<div class="line"><a name="l00293"></a><span class="lineno"> 293</span> <a class="code" href="cmsis__armcc_8h.html#aba87361bfad2ae52cfe2f40c1a1dbf9c">__STATIC_INLINE</a> <span class="keywordtype">void</span> __set_BASEPRI(uint32_t basePri)</div>
<div class="line"><a name="l00294"></a><span class="lineno"> 294</span> {</div>
<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>  <span class="keyword">register</span> uint32_t __regBasePri <a class="code" href="cmsis__armcc_8h.html#a1378040bcf22428955c6e3ce9c2053cd">__ASM</a>(<span class="stringliteral">"basepri"</span>);</div>
<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>  __regBasePri = (basePri & 0xFFU);</div>
<div class="line"><a name="l00297"></a><span class="lineno"> 297</span> }</div>
<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>  </div>
<div class="line"><a name="l00299"></a><span class="lineno"> 299</span> <span class="comment"></span> </div>
<div class="line"><a name="l00300"></a><span class="lineno"> 300</span> <span class="comment">/**</span></div>
<div class="line"><a name="l00301"></a><span class="lineno"> 301</span> <span class="comment"> \brief Set Base Priority with condition</span></div>
<div class="line"><a name="l00302"></a><span class="lineno"> 302</span> <span class="comment"> \details Assigns the given value to the Base Priority register only if BASEPRI masking is disabled,</span></div>
<div class="line"><a name="l00303"></a><span class="lineno"> 303</span> <span class="comment"> or the new value increases the BASEPRI priority level.</span></div>
<div class="line"><a name="l00304"></a><span class="lineno"> 304</span> <span class="comment"> \param [in] basePri Base Priority value to set</span></div>
<div class="line"><a name="l00305"></a><span class="lineno"> 305</span> <span class="comment"> */</span></div>
<div class="line"><a name="l00306"></a><span class="lineno"> 306</span> <a class="code" href="cmsis__armcc_8h.html#aba87361bfad2ae52cfe2f40c1a1dbf9c">__STATIC_INLINE</a> <span class="keywordtype">void</span> __set_BASEPRI_MAX(uint32_t basePri)</div>
<div class="line"><a name="l00307"></a><span class="lineno"> 307</span> {</div>
<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>  <span class="keyword">register</span> uint32_t __regBasePriMax <a class="code" href="cmsis__armcc_8h.html#a1378040bcf22428955c6e3ce9c2053cd">__ASM</a>(<span class="stringliteral">"basepri_max"</span>);</div>
<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>  __regBasePriMax = (basePri & 0xFFU);</div>
<div class="line"><a name="l00310"></a><span class="lineno"> 310</span> }</div>
<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>  </div>
<div class="line"><a name="l00312"></a><span class="lineno"> 312</span> <span class="comment"></span> </div>
<div class="line"><a name="l00313"></a><span class="lineno"> 313</span> <span class="comment">/**</span></div>
<div class="line"><a name="l00314"></a><span class="lineno"> 314</span> <span class="comment"> \brief Get Fault Mask</span></div>
<div class="line"><a name="l00315"></a><span class="lineno"> 315</span> <span class="comment"> \details Returns the current value of the Fault Mask register.</span></div>
<div class="line"><a name="l00316"></a><span class="lineno"> 316</span> <span class="comment"> \return Fault Mask register value</span></div>
<div class="line"><a name="l00317"></a><span class="lineno"> 317</span> <span class="comment"> */</span></div>
<div class="line"><a name="l00318"></a><span class="lineno"> 318</span> <a class="code" href="cmsis__armcc_8h.html#aba87361bfad2ae52cfe2f40c1a1dbf9c">__STATIC_INLINE</a> uint32_t __get_FAULTMASK(<span class="keywordtype">void</span>)</div>
<div class="line"><a name="l00319"></a><span class="lineno"> 319</span> {</div>
<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>  <span class="keyword">register</span> uint32_t __regFaultMask <a class="code" href="cmsis__armcc_8h.html#a1378040bcf22428955c6e3ce9c2053cd">__ASM</a>(<span class="stringliteral">"faultmask"</span>);</div>
<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>  <span class="keywordflow">return</span>(__regFaultMask);</div>
<div class="line"><a name="l00322"></a><span class="lineno"> 322</span> }</div>
<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>  </div>
<div class="line"><a name="l00324"></a><span class="lineno"> 324</span> <span class="comment"></span> </div>
<div class="line"><a name="l00325"></a><span class="lineno"> 325</span> <span class="comment">/**</span></div>
<div class="line"><a name="l00326"></a><span class="lineno"> 326</span> <span class="comment"> \brief Set Fault Mask</span></div>
<div class="line"><a name="l00327"></a><span class="lineno"> 327</span> <span class="comment"> \details Assigns the given value to the Fault Mask register.</span></div>
<div class="line"><a name="l00328"></a><span class="lineno"> 328</span> <span class="comment"> \param [in] faultMask Fault Mask value to set</span></div>
<div class="line"><a name="l00329"></a><span class="lineno"> 329</span> <span class="comment"> */</span></div>
<div class="line"><a name="l00330"></a><span class="lineno"> 330</span> <a class="code" href="cmsis__armcc_8h.html#aba87361bfad2ae52cfe2f40c1a1dbf9c">__STATIC_INLINE</a> <span class="keywordtype">void</span> __set_FAULTMASK(uint32_t faultMask)</div>
<div class="line"><a name="l00331"></a><span class="lineno"> 331</span> {</div>
<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>  <span class="keyword">register</span> uint32_t __regFaultMask <a class="code" href="cmsis__armcc_8h.html#a1378040bcf22428955c6e3ce9c2053cd">__ASM</a>(<span class="stringliteral">"faultmask"</span>);</div>
<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>  __regFaultMask = (faultMask & (uint32_t)1U);</div>
<div class="line"><a name="l00334"></a><span class="lineno"> 334</span> }</div>
<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>  </div>
<div class="line"><a name="l00336"></a><span class="lineno"> 336</span> <span class="preprocessor">#endif </span><span class="comment">/* ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \</span></div>
<div class="line"><a name="l00337"></a><span class="lineno"> 337</span> <span class="comment"> (defined (__ARM_ARCH_7EM__) && (__ARM_ARCH_7EM__ == 1)) ) */</span><span class="preprocessor"></span></div>
<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>  </div>
<div class="line"><a name="l00339"></a><span class="lineno"> 339</span> <span class="comment"></span> </div>
<div class="line"><a name="l00340"></a><span class="lineno"> 340</span> <span class="comment">/**</span></div>
<div class="line"><a name="l00341"></a><span class="lineno"> 341</span> <span class="comment"> \brief Get FPSCR</span></div>
<div class="line"><a name="l00342"></a><span class="lineno"> 342</span> <span class="comment"> \details Returns the current value of the Floating Point Status/Control register.</span></div>
<div class="line"><a name="l00343"></a><span class="lineno"> 343</span> <span class="comment"> \return Floating Point Status/Control register value</span></div>
<div class="line"><a name="l00344"></a><span class="lineno"> 344</span> <span class="comment"> */</span></div>
<div class="line"><a name="l00345"></a><span class="lineno"><a class="line" href="group__CMSIS__Core__RegAccFunctions.html#ga19b2b468b1b5a95d1e0febc42fcfabf0"> 345</a></span> <a class="code" href="cmsis__armcc_8h.html#aba87361bfad2ae52cfe2f40c1a1dbf9c">__STATIC_INLINE</a> uint32_t <a class="code" href="group__CMSIS__Core__RegAccFunctions.html#ga19b2b468b1b5a95d1e0febc42fcfabf0">__get_FPSCR</a>(<span class="keywordtype">void</span>)</div>
<div class="line"><a name="l00346"></a><span class="lineno"> 346</span> {</div>
<div class="line"><a name="l00347"></a><span class="lineno"> 347</span> <span class="preprocessor">#if ((defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U)) && \</span></div>
<div class="line"><a name="l00348"></a><span class="lineno"> 348</span> <span class="preprocessor"> (defined (__FPU_USED ) && (__FPU_USED == 1U)) )</span></div>
<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>  <span class="keyword">register</span> uint32_t __regfpscr <a class="code" href="cmsis__armcc_8h.html#a1378040bcf22428955c6e3ce9c2053cd">__ASM</a>(<span class="stringliteral">"fpscr"</span>);</div>
<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>  <span class="keywordflow">return</span>(__regfpscr);</div>
<div class="line"><a name="l00351"></a><span class="lineno"> 351</span> <span class="preprocessor">#else</span></div>
<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>  <span class="keywordflow">return</span>(0U);</div>
<div class="line"><a name="l00353"></a><span class="lineno"> 353</span> <span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00354"></a><span class="lineno"> 354</span> }</div>
<div class="line"><a name="l00355"></a><span class="lineno"> 355</span>  </div>
<div class="line"><a name="l00356"></a><span class="lineno"> 356</span> <span class="comment"></span> </div>
<div class="line"><a name="l00357"></a><span class="lineno"> 357</span> <span class="comment">/**</span></div>
<div class="line"><a name="l00358"></a><span class="lineno"> 358</span> <span class="comment"> \brief Set FPSCR</span></div>
<div class="line"><a name="l00359"></a><span class="lineno"> 359</span> <span class="comment"> \details Assigns the given value to the Floating Point Status/Control register.</span></div>
<div class="line"><a name="l00360"></a><span class="lineno"> 360</span> <span class="comment"> \param [in] fpscr Floating Point Status/Control value to set</span></div>
<div class="line"><a name="l00361"></a><span class="lineno"> 361</span> <span class="comment"> */</span></div>
<div class="line"><a name="l00362"></a><span class="lineno"><a class="line" href="group__CMSIS__Core__RegAccFunctions.html#ga7538ed8f1ca9781be0ff7c6675d18d1f"> 362</a></span> <a class="code" href="cmsis__armcc_8h.html#aba87361bfad2ae52cfe2f40c1a1dbf9c">__STATIC_INLINE</a> <span class="keywordtype">void</span> <a class="code" href="group__CMSIS__Core__RegAccFunctions.html#ga7538ed8f1ca9781be0ff7c6675d18d1f">__set_FPSCR</a>(uint32_t fpscr)</div>
<div class="line"><a name="l00363"></a><span class="lineno"> 363</span> {</div>
<div class="line"><a name="l00364"></a><span class="lineno"> 364</span> <span class="preprocessor">#if ((defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U)) && \</span></div>
<div class="line"><a name="l00365"></a><span class="lineno"> 365</span> <span class="preprocessor"> (defined (__FPU_USED ) && (__FPU_USED == 1U)) )</span></div>
<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>  <span class="keyword">register</span> uint32_t __regfpscr <a class="code" href="cmsis__armcc_8h.html#a1378040bcf22428955c6e3ce9c2053cd">__ASM</a>(<span class="stringliteral">"fpscr"</span>);</div>
<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>  __regfpscr = (fpscr);</div>
<div class="line"><a name="l00368"></a><span class="lineno"> 368</span> <span class="preprocessor">#else</span></div>
<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>  (void)fpscr;</div>
<div class="line"><a name="l00370"></a><span class="lineno"> 370</span> <span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00371"></a><span class="lineno"> 371</span> }</div>
<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>  </div>
<div class="line"><a name="l00373"></a><span class="lineno"> 373</span> <span class="comment"></span> </div>
<div class="line"><a name="l00374"></a><span class="lineno"> 374</span> <span class="comment">/*@} end of CMSIS_Core_RegAccFunctions */</span></div>
<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>  </div>
<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>  </div>
<div class="line"><a name="l00377"></a><span class="lineno"> 377</span> <span class="comment">/* ########################## Core Instruction Access ######################### */</span><span class="comment"></span></div>
<div class="line"><a name="l00378"></a><span class="lineno"> 378</span> <span class="comment">/** \defgroup CMSIS_Core_InstructionInterface CMSIS Core Instruction Interface</span></div>
<div class="line"><a name="l00379"></a><span class="lineno"> 379</span> <span class="comment"> Access to dedicated instructions</span></div>
<div class="line"><a name="l00380"></a><span class="lineno"> 380</span> <span class="comment"> @{</span></div>
<div class="line"><a name="l00381"></a><span class="lineno"> 381</span> <span class="comment">*/</span></div>
<div class="line"><a name="l00382"></a><span class="lineno"> 382</span> <span class="comment"></span> </div>
<div class="line"><a name="l00383"></a><span class="lineno"> 383</span> <span class="comment">/**</span></div>
<div class="line"><a name="l00384"></a><span class="lineno"> 384</span> <span class="comment"> \brief No Operation</span></div>
<div class="line"><a name="l00385"></a><span class="lineno"> 385</span> <span class="comment"> \details No Operation does nothing. This instruction can be used for code alignment purposes.</span></div>
<div class="line"><a name="l00386"></a><span class="lineno"> 386</span> <span class="comment"> */</span></div>
<div class="line"><a name="l00387"></a><span class="lineno"><a class="line" href="group__CMSIS__Core__InstructionInterface.html#gabd585ddc865fb9b7f2493af1eee1a572"> 387</a></span> <span class="preprocessor">#define __NOP __nop</span></div>
<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>  </div>
<div class="line"><a name="l00389"></a><span class="lineno"> 389</span> <span class="comment"></span> </div>
<div class="line"><a name="l00390"></a><span class="lineno"> 390</span> <span class="comment">/**</span></div>
<div class="line"><a name="l00391"></a><span class="lineno"> 391</span> <span class="comment"> \brief Wait For Interrupt</span></div>
<div class="line"><a name="l00392"></a><span class="lineno"> 392</span> <span class="comment"> \details Wait For Interrupt is a hint instruction that suspends execution until one of a number of events occurs.</span></div>
<div class="line"><a name="l00393"></a><span class="lineno"> 393</span> <span class="comment"> */</span></div>
<div class="line"><a name="l00394"></a><span class="lineno"><a class="line" href="group__CMSIS__Core__InstructionInterface.html#gad23bf2b78a9a4524157c9de0d30b7448"> 394</a></span> <span class="preprocessor">#define __WFI __wfi</span></div>
<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>  </div>
<div class="line"><a name="l00396"></a><span class="lineno"> 396</span> <span class="comment"></span> </div>
<div class="line"><a name="l00397"></a><span class="lineno"> 397</span> <span class="comment">/**</span></div>
<div class="line"><a name="l00398"></a><span class="lineno"> 398</span> <span class="comment"> \brief Wait For Event</span></div>
<div class="line"><a name="l00399"></a><span class="lineno"> 399</span> <span class="comment"> \details Wait For Event is a hint instruction that permits the processor to enter</span></div>
<div class="line"><a name="l00400"></a><span class="lineno"> 400</span> <span class="comment"> a low-power state until one of a number of events occurs.</span></div>
<div class="line"><a name="l00401"></a><span class="lineno"> 401</span> <span class="comment"> */</span></div>
<div class="line"><a name="l00402"></a><span class="lineno"><a class="line" href="group__CMSIS__Core__InstructionInterface.html#gaac6cc7dd4325d9cb40d3290fa5244b3d"> 402</a></span> <span class="preprocessor">#define __WFE __wfe</span></div>
<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>  </div>
<div class="line"><a name="l00404"></a><span class="lineno"> 404</span> <span class="comment"></span> </div>
<div class="line"><a name="l00405"></a><span class="lineno"> 405</span> <span class="comment">/**</span></div>
<div class="line"><a name="l00406"></a><span class="lineno"> 406</span> <span class="comment"> \brief Send Event</span></div>
<div class="line"><a name="l00407"></a><span class="lineno"> 407</span> <span class="comment"> \details Send Event is a hint instruction. It causes an event to be signaled to the CPU.</span></div>
<div class="line"><a name="l00408"></a><span class="lineno"> 408</span> <span class="comment"> */</span></div>
<div class="line"><a name="l00409"></a><span class="lineno"><a class="line" href="group__CMSIS__Core__InstructionInterface.html#gaab4f296d0022b4b10dc0976eb22052f9"> 409</a></span> <span class="preprocessor">#define __SEV __sev</span></div>
<div class="line"><a name="l00410"></a><span class="lineno"> 410</span>  </div>
<div class="line"><a name="l00411"></a><span class="lineno"> 411</span> <span class="comment"></span> </div>
<div class="line"><a name="l00412"></a><span class="lineno"> 412</span> <span class="comment">/**</span></div>
<div class="line"><a name="l00413"></a><span class="lineno"> 413</span> <span class="comment"> \brief Instruction Synchronization Barrier</span></div>
<div class="line"><a name="l00414"></a><span class="lineno"> 414</span> <span class="comment"> \details Instruction Synchronization Barrier flushes the pipeline in the processor,</span></div>
<div class="line"><a name="l00415"></a><span class="lineno"> 415</span> <span class="comment"> so that all instructions following the ISB are fetched from cache or memory,</span></div>
<div class="line"><a name="l00416"></a><span class="lineno"> 416</span> <span class="comment"> after the instruction has been completed.</span></div>
<div class="line"><a name="l00417"></a><span class="lineno"> 417</span> <span class="comment"> */</span></div>
<div class="line"><a name="l00418"></a><span class="lineno"><a class="line" href="group__CMSIS__Core__InstructionInterface.html#gaad233022e850a009fc6f7602be1182f6"> 418</a></span> <span class="preprocessor">#define __ISB() do {\</span></div>
<div class="line"><a name="l00419"></a><span class="lineno"> 419</span> <span class="preprocessor"> __schedule_barrier();\</span></div>
<div class="line"><a name="l00420"></a><span class="lineno"> 420</span> <span class="preprocessor"> __isb(0xF);\</span></div>
<div class="line"><a name="l00421"></a><span class="lineno"> 421</span> <span class="preprocessor"> __schedule_barrier();\</span></div>
<div class="line"><a name="l00422"></a><span class="lineno"> 422</span> <span class="preprocessor"> } while (0U)</span></div>
<div class="line"><a name="l00423"></a><span class="lineno"> 423</span> <span class="comment"></span> </div>
<div class="line"><a name="l00424"></a><span class="lineno"> 424</span> <span class="comment">/**</span></div>
<div class="line"><a name="l00425"></a><span class="lineno"> 425</span> <span class="comment"> \brief Data Synchronization Barrier</span></div>
<div class="line"><a name="l00426"></a><span class="lineno"> 426</span> <span class="comment"> \details Acts as a special kind of Data Memory Barrier.</span></div>
<div class="line"><a name="l00427"></a><span class="lineno"> 427</span> <span class="comment"> It completes when all explicit memory accesses before this instruction complete.</span></div>
<div class="line"><a name="l00428"></a><span class="lineno"> 428</span> <span class="comment"> */</span></div>
<div class="line"><a name="l00429"></a><span class="lineno"><a class="line" href="group__CMSIS__Core__InstructionInterface.html#ga067d257a2b34565410acefb5afef2203"> 429</a></span> <span class="preprocessor">#define __DSB() do {\</span></div>
<div class="line"><a name="l00430"></a><span class="lineno"> 430</span> <span class="preprocessor"> __schedule_barrier();\</span></div>
<div class="line"><a name="l00431"></a><span class="lineno"> 431</span> <span class="preprocessor"> __dsb(0xF);\</span></div>
<div class="line"><a name="l00432"></a><span class="lineno"> 432</span> <span class="preprocessor"> __schedule_barrier();\</span></div>
<div class="line"><a name="l00433"></a><span class="lineno"> 433</span> <span class="preprocessor"> } while (0U)</span></div>
<div class="line"><a name="l00434"></a><span class="lineno"> 434</span> <span class="comment"></span> </div>
<div class="line"><a name="l00435"></a><span class="lineno"> 435</span> <span class="comment">/**</span></div>
<div class="line"><a name="l00436"></a><span class="lineno"> 436</span> <span class="comment"> \brief Data Memory Barrier</span></div>
<div class="line"><a name="l00437"></a><span class="lineno"> 437</span> <span class="comment"> \details Ensures the apparent order of the explicit memory operations before</span></div>
<div class="line"><a name="l00438"></a><span class="lineno"> 438</span> <span class="comment"> and after the instruction, without ensuring their completion.</span></div>
<div class="line"><a name="l00439"></a><span class="lineno"> 439</span> <span class="comment"> */</span></div>
<div class="line"><a name="l00440"></a><span class="lineno"><a class="line" href="group__CMSIS__Core__InstructionInterface.html#ga671101179b5943990785f36f8c1e2269"> 440</a></span> <span class="preprocessor">#define __DMB() do {\</span></div>
<div class="line"><a name="l00441"></a><span class="lineno"> 441</span> <span class="preprocessor"> __schedule_barrier();\</span></div>
<div class="line"><a name="l00442"></a><span class="lineno"> 442</span> <span class="preprocessor"> __dmb(0xF);\</span></div>
<div class="line"><a name="l00443"></a><span class="lineno"> 443</span> <span class="preprocessor"> __schedule_barrier();\</span></div>
<div class="line"><a name="l00444"></a><span class="lineno"> 444</span> <span class="preprocessor"> } while (0U)</span></div>
<div class="line"><a name="l00445"></a><span class="lineno"> 445</span>  </div>
<div class="line"><a name="l00446"></a><span class="lineno"> 446</span>  <span class="comment"></span></div>
<div class="line"><a name="l00447"></a><span class="lineno"> 447</span> <span class="comment">/**</span></div>
<div class="line"><a name="l00448"></a><span class="lineno"> 448</span> <span class="comment"> \brief Reverse byte order (32 bit)</span></div>
<div class="line"><a name="l00449"></a><span class="lineno"> 449</span> <span class="comment"> \details Reverses the byte order in unsigned integer value. For example, 0x12345678 becomes 0x78563412.</span></div>
<div class="line"><a name="l00450"></a><span class="lineno"> 450</span> <span class="comment"> \param [in] value Value to reverse</span></div>
<div class="line"><a name="l00451"></a><span class="lineno"> 451</span> <span class="comment"> \return Reversed value</span></div>
<div class="line"><a name="l00452"></a><span class="lineno"> 452</span> <span class="comment"> */</span></div>
<div class="line"><a name="l00453"></a><span class="lineno"><a class="line" href="group__CMSIS__Core__InstructionInterface.html#ga14f54807872c0f5e05604c4924abfdae"> 453</a></span> <span class="preprocessor">#define __REV __rev</span></div>
<div class="line"><a name="l00454"></a><span class="lineno"> 454</span>  </div>
<div class="line"><a name="l00455"></a><span class="lineno"> 455</span> <span class="comment"></span> </div>
<div class="line"><a name="l00456"></a><span class="lineno"> 456</span> <span class="comment">/**</span></div>
<div class="line"><a name="l00457"></a><span class="lineno"> 457</span> <span class="comment"> \brief Reverse byte order (16 bit)</span></div>
<div class="line"><a name="l00458"></a><span class="lineno"> 458</span> <span class="comment"> \details Reverses the byte order within each halfword of a word. For example, 0x12345678 becomes 0x34127856.</span></div>
<div class="line"><a name="l00459"></a><span class="lineno"> 459</span> <span class="comment"> \param [in] value Value to reverse</span></div>
<div class="line"><a name="l00460"></a><span class="lineno"> 460</span> <span class="comment"> \return Reversed value</span></div>
<div class="line"><a name="l00461"></a><span class="lineno"> 461</span> <span class="comment"> */</span></div>
<div class="line"><a name="l00462"></a><span class="lineno"> 462</span> <span class="preprocessor">#ifndef __NO_EMBEDDED_ASM</span></div>
<div class="line"><a name="l00463"></a><span class="lineno"><a class="line" href="group__CMSIS__Core__InstructionInterface.html#gaf6c07bb242c244648cc21e1b09c0b5d1"> 463</a></span> <a class="code" href="group__CMSIS__Core__InstructionInterface.html#gaf6c07bb242c244648cc21e1b09c0b5d1">__attribute__</a>((section(<span class="stringliteral">".rev16_text"</span>))) <a class="code" href="cmsis__armcc_8h.html#aba87361bfad2ae52cfe2f40c1a1dbf9c">__STATIC_INLINE</a> <a class="code" href="cmsis__armcc_8h.html#a1378040bcf22428955c6e3ce9c2053cd">__ASM</a> uint32_t <a class="code" href="group__CMSIS__Core__InstructionInterface.html#gad35497777af37e7809271b5e6f9510ba">__REV16</a>(uint32_t value)</div>
<div class="line"><a name="l00464"></a><span class="lineno"> 464</span> {</div>
<div class="line"><a name="l00465"></a><span class="lineno"> 465</span>  rev16 r0, r0</div>
<div class="line"><a name="l00466"></a><span class="lineno"> 466</span>  bx lr</div>
<div class="line"><a name="l00467"></a><span class="lineno"> 467</span> }</div>
<div class="line"><a name="l00468"></a><span class="lineno"> 468</span> <span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00469"></a><span class="lineno"> 469</span>  </div>
<div class="line"><a name="l00470"></a><span class="lineno"> 470</span> <span class="comment"></span> </div>
<div class="line"><a name="l00471"></a><span class="lineno"> 471</span> <span class="comment">/**</span></div>
<div class="line"><a name="l00472"></a><span class="lineno"> 472</span> <span class="comment"> \brief Reverse byte order (16 bit)</span></div>
<div class="line"><a name="l00473"></a><span class="lineno"> 473</span> <span class="comment"> \details Reverses the byte order in a 16-bit value and returns the signed 16-bit result. For example, 0x0080 becomes 0x8000.</span></div>
<div class="line"><a name="l00474"></a><span class="lineno"> 474</span> <span class="comment"> \param [in] value Value to reverse</span></div>
<div class="line"><a name="l00475"></a><span class="lineno"> 475</span> <span class="comment"> \return Reversed value</span></div>
<div class="line"><a name="l00476"></a><span class="lineno"> 476</span> <span class="comment"> */</span></div>
<div class="line"><a name="l00477"></a><span class="lineno"> 477</span> <span class="preprocessor">#ifndef __NO_EMBEDDED_ASM</span></div>
<div class="line"><a name="l00478"></a><span class="lineno"><a class="line" href="group__CMSIS__Core__InstructionInterface.html#ga55c40c13433d1348bd345a49dd5ff90f"> 478</a></span> <a class="code" href="group__CMSIS__Core__InstructionInterface.html#gaf6c07bb242c244648cc21e1b09c0b5d1">__attribute__</a>((section(<span class="stringliteral">".revsh_text"</span>))) <a class="code" href="cmsis__armcc_8h.html#aba87361bfad2ae52cfe2f40c1a1dbf9c">__STATIC_INLINE</a> <a class="code" href="cmsis__armcc_8h.html#a1378040bcf22428955c6e3ce9c2053cd">__ASM</a> int16_t <a class="code" href="group__CMSIS__Core__InstructionInterface.html#gae580812686119c9c5cf3c11a7519a404">__REVSH</a>(int16_t value)</div>
<div class="line"><a name="l00479"></a><span class="lineno"> 479</span> {</div>
<div class="line"><a name="l00480"></a><span class="lineno"> 480</span>  revsh r0, r0</div>
<div class="line"><a name="l00481"></a><span class="lineno"> 481</span>  bx lr</div>
<div class="line"><a name="l00482"></a><span class="lineno"> 482</span> }</div>
<div class="line"><a name="l00483"></a><span class="lineno"> 483</span> <span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00484"></a><span class="lineno"> 484</span>  </div>
<div class="line"><a name="l00485"></a><span class="lineno"> 485</span> <span class="comment"></span> </div>
<div class="line"><a name="l00486"></a><span class="lineno"> 486</span> <span class="comment">/**</span></div>
<div class="line"><a name="l00487"></a><span class="lineno"> 487</span> <span class="comment"> \brief Rotate Right in unsigned value (32 bit)</span></div>
<div class="line"><a name="l00488"></a><span class="lineno"> 488</span> <span class="comment"> \details Rotate Right (immediate) provides the value of the contents of a register rotated by a variable number of bits.</span></div>
<div class="line"><a name="l00489"></a><span class="lineno"> 489</span> <span class="comment"> \param [in] op1 Value to rotate</span></div>
<div class="line"><a name="l00490"></a><span class="lineno"> 490</span> <span class="comment"> \param [in] op2 Number of Bits to rotate</span></div>
<div class="line"><a name="l00491"></a><span class="lineno"> 491</span> <span class="comment"> \return Rotated value</span></div>
<div class="line"><a name="l00492"></a><span class="lineno"> 492</span> <span class="comment"> */</span></div>
<div class="line"><a name="l00493"></a><span class="lineno"><a class="line" href="group__CMSIS__Core__InstructionInterface.html#ga95b9bd281ddeda378b85afdb8f2ced86"> 493</a></span> <span class="preprocessor">#define __ROR __ror</span></div>
<div class="line"><a name="l00494"></a><span class="lineno"> 494</span>  </div>
<div class="line"><a name="l00495"></a><span class="lineno"> 495</span> <span class="comment"></span> </div>
<div class="line"><a name="l00496"></a><span class="lineno"> 496</span> <span class="comment">/**</span></div>
<div class="line"><a name="l00497"></a><span class="lineno"> 497</span> <span class="comment"> \brief Breakpoint</span></div>
<div class="line"><a name="l00498"></a><span class="lineno"> 498</span> <span class="comment"> \details Causes the processor to enter Debug state.</span></div>
<div class="line"><a name="l00499"></a><span class="lineno"> 499</span> <span class="comment"> Debug tools can use this to investigate system state when the instruction at a particular address is reached.</span></div>
<div class="line"><a name="l00500"></a><span class="lineno"> 500</span> <span class="comment"> \param [in] value is ignored by the processor.</span></div>
<div class="line"><a name="l00501"></a><span class="lineno"> 501</span> <span class="comment"> If required, a debugger can use it to store additional information about the breakpoint.</span></div>
<div class="line"><a name="l00502"></a><span class="lineno"> 502</span> <span class="comment"> */</span></div>
<div class="line"><a name="l00503"></a><span class="lineno"><a class="line" href="group__CMSIS__Core__InstructionInterface.html#ga15ea6bd3c507d3e81c3b3a1258e46397"> 503</a></span> <span class="preprocessor">#define __BKPT(value) __breakpoint(value)</span></div>
<div class="line"><a name="l00504"></a><span class="lineno"> 504</span>  </div>
<div class="line"><a name="l00505"></a><span class="lineno"> 505</span> <span class="comment"></span> </div>
<div class="line"><a name="l00506"></a><span class="lineno"> 506</span> <span class="comment">/**</span></div>
<div class="line"><a name="l00507"></a><span class="lineno"> 507</span> <span class="comment"> \brief Reverse bit order of value</span></div>
<div class="line"><a name="l00508"></a><span class="lineno"> 508</span> <span class="comment"> \details Reverses the bit order of the given value.</span></div>
<div class="line"><a name="l00509"></a><span class="lineno"> 509</span> <span class="comment"> \param [in] value Value to reverse</span></div>
<div class="line"><a name="l00510"></a><span class="lineno"> 510</span> <span class="comment"> \return Reversed value</span></div>
<div class="line"><a name="l00511"></a><span class="lineno"> 511</span> <span class="comment"> */</span></div>
<div class="line"><a name="l00512"></a><span class="lineno"> 512</span> <span class="preprocessor">#if ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \</span></div>
<div class="line"><a name="l00513"></a><span class="lineno"> 513</span> <span class="preprocessor"> (defined (__ARM_ARCH_7EM__) && (__ARM_ARCH_7EM__ == 1)) )</span></div>
<div class="line"><a name="l00514"></a><span class="lineno"> 514</span> <span class="preprocessor"> #define __RBIT __rbit</span></div>
<div class="line"><a name="l00515"></a><span class="lineno"> 515</span> <span class="preprocessor">#else</span></div>
<div class="line"><a name="l00516"></a><span class="lineno"><a class="line" href="group__CMSIS__Core__InstructionInterface.html#ga6c5fb15e53d6dd6e970a4ff98aa53661"> 516</a></span> <a class="code" href="group__CMSIS__Core__InstructionInterface.html#gaf6c07bb242c244648cc21e1b09c0b5d1">__attribute__</a>((always_inline)) <a class="code" href="cmsis__armcc_8h.html#aba87361bfad2ae52cfe2f40c1a1dbf9c">__STATIC_INLINE</a> uint32_t <a class="code" href="group__CMSIS__Core__InstructionInterface.html#gab83768933a612816fad669db5488366f">__RBIT</a>(uint32_t value)</div>
<div class="line"><a name="l00517"></a><span class="lineno"> 517</span> {</div>
<div class="line"><a name="l00518"></a><span class="lineno"> 518</span>  uint32_t result;</div>
<div class="line"><a name="l00519"></a><span class="lineno"> 519</span>  uint32_t s = (4U <span class="comment">/*sizeof(v)*/</span> * 8U) - 1U; <span class="comment">/* extra shift needed at end */</span></div>
<div class="line"><a name="l00520"></a><span class="lineno"> 520</span>  </div>
<div class="line"><a name="l00521"></a><span class="lineno"> 521</span>  result = value; <span class="comment">/* r will be reversed bits of v; first get LSB of v */</span></div>
<div class="line"><a name="l00522"></a><span class="lineno"> 522</span>  <span class="keywordflow">for</span> (value >>= 1U; value != 0U; value >>= 1U)</div>
<div class="line"><a name="l00523"></a><span class="lineno"> 523</span>  {</div>
<div class="line"><a name="l00524"></a><span class="lineno"> 524</span>  result <<= 1U;</div>
<div class="line"><a name="l00525"></a><span class="lineno"> 525</span>  result |= value & 1U;</div>
<div class="line"><a name="l00526"></a><span class="lineno"> 526</span>  s--;</div>
<div class="line"><a name="l00527"></a><span class="lineno"> 527</span>  }</div>
<div class="line"><a name="l00528"></a><span class="lineno"> 528</span>  result <<= s; <span class="comment">/* shift when v's highest bits are zero */</span></div>
<div class="line"><a name="l00529"></a><span class="lineno"> 529</span>  <span class="keywordflow">return</span> result;</div>
<div class="line"><a name="l00530"></a><span class="lineno"> 530</span> }</div>
<div class="line"><a name="l00531"></a><span class="lineno"> 531</span> <span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00532"></a><span class="lineno"> 532</span>  </div>
<div class="line"><a name="l00533"></a><span class="lineno"> 533</span> <span class="comment"></span> </div>
<div class="line"><a name="l00534"></a><span class="lineno"> 534</span> <span class="comment">/**</span></div>
<div class="line"><a name="l00535"></a><span class="lineno"> 535</span> <span class="comment"> \brief Count leading zeros</span></div>
<div class="line"><a name="l00536"></a><span class="lineno"> 536</span> <span class="comment"> \details Counts the number of leading zeros of a data value.</span></div>
<div class="line"><a name="l00537"></a><span class="lineno"> 537</span> <span class="comment"> \param [in] value Value to count the leading zeros</span></div>
<div class="line"><a name="l00538"></a><span class="lineno"> 538</span> <span class="comment"> \return number of leading zeros in value</span></div>
<div class="line"><a name="l00539"></a><span class="lineno"> 539</span> <span class="comment"> */</span></div>
<div class="line"><a name="l00540"></a><span class="lineno"><a class="line" href="group__CMSIS__Core__InstructionInterface.html#ga5d5bb1527e042be4a9fa5a33f65cc248"> 540</a></span> <span class="preprocessor">#define __CLZ __clz</span></div>
<div class="line"><a name="l00541"></a><span class="lineno"> 541</span>  </div>
<div class="line"><a name="l00542"></a><span class="lineno"> 542</span>  </div>
<div class="line"><a name="l00543"></a><span class="lineno"> 543</span> <span class="preprocessor">#if ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \</span></div>
<div class="line"><a name="l00544"></a><span class="lineno"> 544</span> <span class="preprocessor"> (defined (__ARM_ARCH_7EM__) && (__ARM_ARCH_7EM__ == 1)) )</span></div>
<div class="line"><a name="l00545"></a><span class="lineno"> 545</span> <span class="comment"></span> </div>
<div class="line"><a name="l00546"></a><span class="lineno"> 546</span> <span class="comment">/**</span></div>
<div class="line"><a name="l00547"></a><span class="lineno"> 547</span> <span class="comment"> \brief LDR Exclusive (8 bit)</span></div>
<div class="line"><a name="l00548"></a><span class="lineno"> 548</span> <span class="comment"> \details Executes a exclusive LDR instruction for 8 bit value.</span></div>
<div class="line"><a name="l00549"></a><span class="lineno"> 549</span> <span class="comment"> \param [in] ptr Pointer to data</span></div>
<div class="line"><a name="l00550"></a><span class="lineno"> 550</span> <span class="comment"> \return value of type uint8_t at (*ptr)</span></div>
<div class="line"><a name="l00551"></a><span class="lineno"> 551</span> <span class="comment"> */</span></div>
<div class="line"><a name="l00552"></a><span class="lineno"> 552</span> <span class="preprocessor">#if defined(__ARMCC_VERSION) && (__ARMCC_VERSION < 5060020)</span></div>
<div class="line"><a name="l00553"></a><span class="lineno"> 553</span> <span class="preprocessor"> #define __LDREXB(ptr) ((uint8_t ) __ldrex(ptr))</span></div>
<div class="line"><a name="l00554"></a><span class="lineno"> 554</span> <span class="preprocessor">#else</span></div>
<div class="line"><a name="l00555"></a><span class="lineno"> 555</span> <span class="preprocessor"> #define __LDREXB(ptr) _Pragma("push") _Pragma("diag_suppress 3731") ((uint8_t ) __ldrex(ptr)) _Pragma("pop")</span></div>
<div class="line"><a name="l00556"></a><span class="lineno"> 556</span> <span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00557"></a><span class="lineno"> 557</span>  </div>
<div class="line"><a name="l00558"></a><span class="lineno"> 558</span> <span class="comment"></span> </div>
<div class="line"><a name="l00559"></a><span class="lineno"> 559</span> <span class="comment">/**</span></div>
<div class="line"><a name="l00560"></a><span class="lineno"> 560</span> <span class="comment"> \brief LDR Exclusive (16 bit)</span></div>
<div class="line"><a name="l00561"></a><span class="lineno"> 561</span> <span class="comment"> \details Executes a exclusive LDR instruction for 16 bit values.</span></div>
<div class="line"><a name="l00562"></a><span class="lineno"> 562</span> <span class="comment"> \param [in] ptr Pointer to data</span></div>
<div class="line"><a name="l00563"></a><span class="lineno"> 563</span> <span class="comment"> \return value of type uint16_t at (*ptr)</span></div>
<div class="line"><a name="l00564"></a><span class="lineno"> 564</span> <span class="comment"> */</span></div>
<div class="line"><a name="l00565"></a><span class="lineno"> 565</span> <span class="preprocessor">#if defined(__ARMCC_VERSION) && (__ARMCC_VERSION < 5060020)</span></div>
<div class="line"><a name="l00566"></a><span class="lineno"> 566</span> <span class="preprocessor"> #define __LDREXH(ptr) ((uint16_t) __ldrex(ptr))</span></div>
<div class="line"><a name="l00567"></a><span class="lineno"> 567</span> <span class="preprocessor">#else</span></div>
<div class="line"><a name="l00568"></a><span class="lineno"> 568</span> <span class="preprocessor"> #define __LDREXH(ptr) _Pragma("push") _Pragma("diag_suppress 3731") ((uint16_t) __ldrex(ptr)) _Pragma("pop")</span></div>
<div class="line"><a name="l00569"></a><span class="lineno"> 569</span> <span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00570"></a><span class="lineno"> 570</span>  </div>
<div class="line"><a name="l00571"></a><span class="lineno"> 571</span> <span class="comment"></span> </div>
<div class="line"><a name="l00572"></a><span class="lineno"> 572</span> <span class="comment">/**</span></div>
<div class="line"><a name="l00573"></a><span class="lineno"> 573</span> <span class="comment"> \brief LDR Exclusive (32 bit)</span></div>
<div class="line"><a name="l00574"></a><span class="lineno"> 574</span> <span class="comment"> \details Executes a exclusive LDR instruction for 32 bit values.</span></div>
<div class="line"><a name="l00575"></a><span class="lineno"> 575</span> <span class="comment"> \param [in] ptr Pointer to data</span></div>
<div class="line"><a name="l00576"></a><span class="lineno"> 576</span> <span class="comment"> \return value of type uint32_t at (*ptr)</span></div>
<div class="line"><a name="l00577"></a><span class="lineno"> 577</span> <span class="comment"> */</span></div>
<div class="line"><a name="l00578"></a><span class="lineno"> 578</span> <span class="preprocessor">#if defined(__ARMCC_VERSION) && (__ARMCC_VERSION < 5060020)</span></div>
<div class="line"><a name="l00579"></a><span class="lineno"> 579</span> <span class="preprocessor"> #define __LDREXW(ptr) ((uint32_t ) __ldrex(ptr))</span></div>
<div class="line"><a name="l00580"></a><span class="lineno"> 580</span> <span class="preprocessor">#else</span></div>
<div class="line"><a name="l00581"></a><span class="lineno"> 581</span> <span class="preprocessor"> #define __LDREXW(ptr) _Pragma("push") _Pragma("diag_suppress 3731") ((uint32_t ) __ldrex(ptr)) _Pragma("pop")</span></div>
<div class="line"><a name="l00582"></a><span class="lineno"> 582</span> <span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00583"></a><span class="lineno"> 583</span>  </div>
<div class="line"><a name="l00584"></a><span class="lineno"> 584</span> <span class="comment"></span> </div>
<div class="line"><a name="l00585"></a><span class="lineno"> 585</span> <span class="comment">/**</span></div>
<div class="line"><a name="l00586"></a><span class="lineno"> 586</span> <span class="comment"> \brief STR Exclusive (8 bit)</span></div>
<div class="line"><a name="l00587"></a><span class="lineno"> 587</span> <span class="comment"> \details Executes a exclusive STR instruction for 8 bit values.</span></div>
<div class="line"><a name="l00588"></a><span class="lineno"> 588</span> <span class="comment"> \param [in] value Value to store</span></div>
<div class="line"><a name="l00589"></a><span class="lineno"> 589</span> <span class="comment"> \param [in] ptr Pointer to location</span></div>
<div class="line"><a name="l00590"></a><span class="lineno"> 590</span> <span class="comment"> \return 0 Function succeeded</span></div>
<div class="line"><a name="l00591"></a><span class="lineno"> 591</span> <span class="comment"> \return 1 Function failed</span></div>
<div class="line"><a name="l00592"></a><span class="lineno"> 592</span> <span class="comment"> */</span></div>
<div class="line"><a name="l00593"></a><span class="lineno"> 593</span> <span class="preprocessor">#if defined(__ARMCC_VERSION) && (__ARMCC_VERSION < 5060020)</span></div>
<div class="line"><a name="l00594"></a><span class="lineno"> 594</span> <span class="preprocessor"> #define __STREXB(value, ptr) __strex(value, ptr)</span></div>
<div class="line"><a name="l00595"></a><span class="lineno"> 595</span> <span class="preprocessor">#else</span></div>
<div class="line"><a name="l00596"></a><span class="lineno"> 596</span> <span class="preprocessor"> #define __STREXB(value, ptr) _Pragma("push") _Pragma("diag_suppress 3731") __strex(value, ptr) _Pragma("pop")</span></div>
<div class="line"><a name="l00597"></a><span class="lineno"> 597</span> <span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00598"></a><span class="lineno"> 598</span>  </div>
<div class="line"><a name="l00599"></a><span class="lineno"> 599</span> <span class="comment"></span> </div>
<div class="line"><a name="l00600"></a><span class="lineno"> 600</span> <span class="comment">/**</span></div>
<div class="line"><a name="l00601"></a><span class="lineno"> 601</span> <span class="comment"> \brief STR Exclusive (16 bit)</span></div>
<div class="line"><a name="l00602"></a><span class="lineno"> 602</span> <span class="comment"> \details Executes a exclusive STR instruction for 16 bit values.</span></div>
<div class="line"><a name="l00603"></a><span class="lineno"> 603</span> <span class="comment"> \param [in] value Value to store</span></div>
<div class="line"><a name="l00604"></a><span class="lineno"> 604</span> <span class="comment"> \param [in] ptr Pointer to location</span></div>
<div class="line"><a name="l00605"></a><span class="lineno"> 605</span> <span class="comment"> \return 0 Function succeeded</span></div>
<div class="line"><a name="l00606"></a><span class="lineno"> 606</span> <span class="comment"> \return 1 Function failed</span></div>
<div class="line"><a name="l00607"></a><span class="lineno"> 607</span> <span class="comment"> */</span></div>
<div class="line"><a name="l00608"></a><span class="lineno"> 608</span> <span class="preprocessor">#if defined(__ARMCC_VERSION) && (__ARMCC_VERSION < 5060020)</span></div>
<div class="line"><a name="l00609"></a><span class="lineno"> 609</span> <span class="preprocessor"> #define __STREXH(value, ptr) __strex(value, ptr)</span></div>
<div class="line"><a name="l00610"></a><span class="lineno"> 610</span> <span class="preprocessor">#else</span></div>
<div class="line"><a name="l00611"></a><span class="lineno"> 611</span> <span class="preprocessor"> #define __STREXH(value, ptr) _Pragma("push") _Pragma("diag_suppress 3731") __strex(value, ptr) _Pragma("pop")</span></div>
<div class="line"><a name="l00612"></a><span class="lineno"> 612</span> <span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00613"></a><span class="lineno"> 613</span>  </div>
<div class="line"><a name="l00614"></a><span class="lineno"> 614</span> <span class="comment"></span> </div>
<div class="line"><a name="l00615"></a><span class="lineno"> 615</span> <span class="comment">/**</span></div>
<div class="line"><a name="l00616"></a><span class="lineno"> 616</span> <span class="comment"> \brief STR Exclusive (32 bit)</span></div>
<div class="line"><a name="l00617"></a><span class="lineno"> 617</span> <span class="comment"> \details Executes a exclusive STR instruction for 32 bit values.</span></div>
<div class="line"><a name="l00618"></a><span class="lineno"> 618</span> <span class="comment"> \param [in] value Value to store</span></div>
<div class="line"><a name="l00619"></a><span class="lineno"> 619</span> <span class="comment"> \param [in] ptr Pointer to location</span></div>
<div class="line"><a name="l00620"></a><span class="lineno"> 620</span> <span class="comment"> \return 0 Function succeeded</span></div>
<div class="line"><a name="l00621"></a><span class="lineno"> 621</span> <span class="comment"> \return 1 Function failed</span></div>
<div class="line"><a name="l00622"></a><span class="lineno"> 622</span> <span class="comment"> */</span></div>
<div class="line"><a name="l00623"></a><span class="lineno"> 623</span> <span class="preprocessor">#if defined(__ARMCC_VERSION) && (__ARMCC_VERSION < 5060020)</span></div>
<div class="line"><a name="l00624"></a><span class="lineno"> 624</span> <span class="preprocessor"> #define __STREXW(value, ptr) __strex(value, ptr)</span></div>
<div class="line"><a name="l00625"></a><span class="lineno"> 625</span> <span class="preprocessor">#else</span></div>
<div class="line"><a name="l00626"></a><span class="lineno"> 626</span> <span class="preprocessor"> #define __STREXW(value, ptr) _Pragma("push") _Pragma("diag_suppress 3731") __strex(value, ptr) _Pragma("pop")</span></div>
<div class="line"><a name="l00627"></a><span class="lineno"> 627</span> <span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00628"></a><span class="lineno"> 628</span>  </div>
<div class="line"><a name="l00629"></a><span class="lineno"> 629</span> <span class="comment"></span> </div>
<div class="line"><a name="l00630"></a><span class="lineno"> 630</span> <span class="comment">/**</span></div>
<div class="line"><a name="l00631"></a><span class="lineno"> 631</span> <span class="comment"> \brief Remove the exclusive lock</span></div>
<div class="line"><a name="l00632"></a><span class="lineno"> 632</span> <span class="comment"> \details Removes the exclusive lock which is created by LDREX.</span></div>
<div class="line"><a name="l00633"></a><span class="lineno"> 633</span> <span class="comment"> */</span></div>
<div class="line"><a name="l00634"></a><span class="lineno"> 634</span> <span class="preprocessor">#define __CLREX __clrex</span></div>
<div class="line"><a name="l00635"></a><span class="lineno"> 635</span>  </div>
<div class="line"><a name="l00636"></a><span class="lineno"> 636</span> <span class="comment"></span> </div>
<div class="line"><a name="l00637"></a><span class="lineno"> 637</span> <span class="comment">/**</span></div>
<div class="line"><a name="l00638"></a><span class="lineno"> 638</span> <span class="comment"> \brief Signed Saturate</span></div>
<div class="line"><a name="l00639"></a><span class="lineno"> 639</span> <span class="comment"> \details Saturates a signed value.</span></div>
<div class="line"><a name="l00640"></a><span class="lineno"> 640</span> <span class="comment"> \param [in] value Value to be saturated</span></div>
<div class="line"><a name="l00641"></a><span class="lineno"> 641</span> <span class="comment"> \param [in] sat Bit position to saturate to (1..32)</span></div>
<div class="line"><a name="l00642"></a><span class="lineno"> 642</span> <span class="comment"> \return Saturated value</span></div>
<div class="line"><a name="l00643"></a><span class="lineno"> 643</span> <span class="comment"> */</span></div>
<div class="line"><a name="l00644"></a><span class="lineno"> 644</span> <span class="preprocessor">#define __SSAT __ssat</span></div>
<div class="line"><a name="l00645"></a><span class="lineno"> 645</span>  </div>
<div class="line"><a name="l00646"></a><span class="lineno"> 646</span> <span class="comment"></span> </div>
<div class="line"><a name="l00647"></a><span class="lineno"> 647</span> <span class="comment">/**</span></div>
<div class="line"><a name="l00648"></a><span class="lineno"> 648</span> <span class="comment"> \brief Unsigned Saturate</span></div>
<div class="line"><a name="l00649"></a><span class="lineno"> 649</span> <span class="comment"> \details Saturates an unsigned value.</span></div>
<div class="line"><a name="l00650"></a><span class="lineno"> 650</span> <span class="comment"> \param [in] value Value to be saturated</span></div>
<div class="line"><a name="l00651"></a><span class="lineno"> 651</span> <span class="comment"> \param [in] sat Bit position to saturate to (0..31)</span></div>
<div class="line"><a name="l00652"></a><span class="lineno"> 652</span> <span class="comment"> \return Saturated value</span></div>
<div class="line"><a name="l00653"></a><span class="lineno"> 653</span> <span class="comment"> */</span></div>
<div class="line"><a name="l00654"></a><span class="lineno"> 654</span> <span class="preprocessor">#define __USAT __usat</span></div>
<div class="line"><a name="l00655"></a><span class="lineno"> 655</span>  </div>
<div class="line"><a name="l00656"></a><span class="lineno"> 656</span> <span class="comment"></span> </div>
<div class="line"><a name="l00657"></a><span class="lineno"> 657</span> <span class="comment">/**</span></div>
<div class="line"><a name="l00658"></a><span class="lineno"> 658</span> <span class="comment"> \brief Rotate Right with Extend (32 bit)</span></div>
<div class="line"><a name="l00659"></a><span class="lineno"> 659</span> <span class="comment"> \details Moves each bit of a bitstring right by one bit.</span></div>
<div class="line"><a name="l00660"></a><span class="lineno"> 660</span> <span class="comment"> The carry input is shifted in at the left end of the bitstring.</span></div>
<div class="line"><a name="l00661"></a><span class="lineno"> 661</span> <span class="comment"> \param [in] value Value to rotate</span></div>
<div class="line"><a name="l00662"></a><span class="lineno"> 662</span> <span class="comment"> \return Rotated value</span></div>
<div class="line"><a name="l00663"></a><span class="lineno"> 663</span> <span class="comment"> */</span></div>
<div class="line"><a name="l00664"></a><span class="lineno"> 664</span> <span class="preprocessor">#ifndef __NO_EMBEDDED_ASM</span></div>
<div class="line"><a name="l00665"></a><span class="lineno"> 665</span> <a class="code" href="group__CMSIS__Core__InstructionInterface.html#gaf6c07bb242c244648cc21e1b09c0b5d1">__attribute__</a>((section(<span class="stringliteral">".rrx_text"</span>))) <a class="code" href="cmsis__armcc_8h.html#aba87361bfad2ae52cfe2f40c1a1dbf9c">__STATIC_INLINE</a> <a class="code" href="cmsis__armcc_8h.html#a1378040bcf22428955c6e3ce9c2053cd">__ASM</a> uint32_t __RRX(uint32_t value)</div>
<div class="line"><a name="l00666"></a><span class="lineno"> 666</span> {</div>
<div class="line"><a name="l00667"></a><span class="lineno"> 667</span>  rrx r0, r0</div>
<div class="line"><a name="l00668"></a><span class="lineno"> 668</span>  bx lr</div>
<div class="line"><a name="l00669"></a><span class="lineno"> 669</span> }</div>
<div class="line"><a name="l00670"></a><span class="lineno"> 670</span> <span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00671"></a><span class="lineno"> 671</span>  </div>
<div class="line"><a name="l00672"></a><span class="lineno"> 672</span> <span class="comment"></span> </div>
<div class="line"><a name="l00673"></a><span class="lineno"> 673</span> <span class="comment">/**</span></div>
<div class="line"><a name="l00674"></a><span class="lineno"> 674</span> <span class="comment"> \brief LDRT Unprivileged (8 bit)</span></div>
<div class="line"><a name="l00675"></a><span class="lineno"> 675</span> <span class="comment"> \details Executes a Unprivileged LDRT instruction for 8 bit value.</span></div>
<div class="line"><a name="l00676"></a><span class="lineno"> 676</span> <span class="comment"> \param [in] ptr Pointer to data</span></div>
<div class="line"><a name="l00677"></a><span class="lineno"> 677</span> <span class="comment"> \return value of type uint8_t at (*ptr)</span></div>
<div class="line"><a name="l00678"></a><span class="lineno"> 678</span> <span class="comment"> */</span></div>
<div class="line"><a name="l00679"></a><span class="lineno"> 679</span> <span class="preprocessor">#define __LDRBT(ptr) ((uint8_t ) __ldrt(ptr))</span></div>
<div class="line"><a name="l00680"></a><span class="lineno"> 680</span>  </div>
<div class="line"><a name="l00681"></a><span class="lineno"> 681</span> <span class="comment"></span> </div>
<div class="line"><a name="l00682"></a><span class="lineno"> 682</span> <span class="comment">/**</span></div>
<div class="line"><a name="l00683"></a><span class="lineno"> 683</span> <span class="comment"> \brief LDRT Unprivileged (16 bit)</span></div>
<div class="line"><a name="l00684"></a><span class="lineno"> 684</span> <span class="comment"> \details Executes a Unprivileged LDRT instruction for 16 bit values.</span></div>
<div class="line"><a name="l00685"></a><span class="lineno"> 685</span> <span class="comment"> \param [in] ptr Pointer to data</span></div>
<div class="line"><a name="l00686"></a><span class="lineno"> 686</span> <span class="comment"> \return value of type uint16_t at (*ptr)</span></div>
<div class="line"><a name="l00687"></a><span class="lineno"> 687</span> <span class="comment"> */</span></div>
<div class="line"><a name="l00688"></a><span class="lineno"> 688</span> <span class="preprocessor">#define __LDRHT(ptr) ((uint16_t) __ldrt(ptr))</span></div>
<div class="line"><a name="l00689"></a><span class="lineno"> 689</span>  </div>
<div class="line"><a name="l00690"></a><span class="lineno"> 690</span> <span class="comment"></span> </div>
<div class="line"><a name="l00691"></a><span class="lineno"> 691</span> <span class="comment">/**</span></div>
<div class="line"><a name="l00692"></a><span class="lineno"> 692</span> <span class="comment"> \brief LDRT Unprivileged (32 bit)</span></div>
<div class="line"><a name="l00693"></a><span class="lineno"> 693</span> <span class="comment"> \details Executes a Unprivileged LDRT instruction for 32 bit values.</span></div>
<div class="line"><a name="l00694"></a><span class="lineno"> 694</span> <span class="comment"> \param [in] ptr Pointer to data</span></div>
<div class="line"><a name="l00695"></a><span class="lineno"> 695</span> <span class="comment"> \return value of type uint32_t at (*ptr)</span></div>
<div class="line"><a name="l00696"></a><span class="lineno"> 696</span> <span class="comment"> */</span></div>
<div class="line"><a name="l00697"></a><span class="lineno"> 697</span> <span class="preprocessor">#define __LDRT(ptr) ((uint32_t ) __ldrt(ptr))</span></div>
<div class="line"><a name="l00698"></a><span class="lineno"> 698</span>  </div>
<div class="line"><a name="l00699"></a><span class="lineno"> 699</span> <span class="comment"></span> </div>
<div class="line"><a name="l00700"></a><span class="lineno"> 700</span> <span class="comment">/**</span></div>
<div class="line"><a name="l00701"></a><span class="lineno"> 701</span> <span class="comment"> \brief STRT Unprivileged (8 bit)</span></div>
<div class="line"><a name="l00702"></a><span class="lineno"> 702</span> <span class="comment"> \details Executes a Unprivileged STRT instruction for 8 bit values.</span></div>
<div class="line"><a name="l00703"></a><span class="lineno"> 703</span> <span class="comment"> \param [in] value Value to store</span></div>
<div class="line"><a name="l00704"></a><span class="lineno"> 704</span> <span class="comment"> \param [in] ptr Pointer to location</span></div>
<div class="line"><a name="l00705"></a><span class="lineno"> 705</span> <span class="comment"> */</span></div>
<div class="line"><a name="l00706"></a><span class="lineno"> 706</span> <span class="preprocessor">#define __STRBT(value, ptr) __strt(value, ptr)</span></div>
<div class="line"><a name="l00707"></a><span class="lineno"> 707</span>  </div>
<div class="line"><a name="l00708"></a><span class="lineno"> 708</span> <span class="comment"></span> </div>
<div class="line"><a name="l00709"></a><span class="lineno"> 709</span> <span class="comment">/**</span></div>
<div class="line"><a name="l00710"></a><span class="lineno"> 710</span> <span class="comment"> \brief STRT Unprivileged (16 bit)</span></div>
<div class="line"><a name="l00711"></a><span class="lineno"> 711</span> <span class="comment"> \details Executes a Unprivileged STRT instruction for 16 bit values.</span></div>
<div class="line"><a name="l00712"></a><span class="lineno"> 712</span> <span class="comment"> \param [in] value Value to store</span></div>
<div class="line"><a name="l00713"></a><span class="lineno"> 713</span> <span class="comment"> \param [in] ptr Pointer to location</span></div>
<div class="line"><a name="l00714"></a><span class="lineno"> 714</span> <span class="comment"> */</span></div>
<div class="line"><a name="l00715"></a><span class="lineno"> 715</span> <span class="preprocessor">#define __STRHT(value, ptr) __strt(value, ptr)</span></div>
<div class="line"><a name="l00716"></a><span class="lineno"> 716</span>  </div>
<div class="line"><a name="l00717"></a><span class="lineno"> 717</span> <span class="comment"></span> </div>
<div class="line"><a name="l00718"></a><span class="lineno"> 718</span> <span class="comment">/**</span></div>
<div class="line"><a name="l00719"></a><span class="lineno"> 719</span> <span class="comment"> \brief STRT Unprivileged (32 bit)</span></div>
<div class="line"><a name="l00720"></a><span class="lineno"> 720</span> <span class="comment"> \details Executes a Unprivileged STRT instruction for 32 bit values.</span></div>
<div class="line"><a name="l00721"></a><span class="lineno"> 721</span> <span class="comment"> \param [in] value Value to store</span></div>
<div class="line"><a name="l00722"></a><span class="lineno"> 722</span> <span class="comment"> \param [in] ptr Pointer to location</span></div>
<div class="line"><a name="l00723"></a><span class="lineno"> 723</span> <span class="comment"> */</span></div>
<div class="line"><a name="l00724"></a><span class="lineno"> 724</span> <span class="preprocessor">#define __STRT(value, ptr) __strt(value, ptr)</span></div>
<div class="line"><a name="l00725"></a><span class="lineno"> 725</span>  </div>
<div class="line"><a name="l00726"></a><span class="lineno"> 726</span> <span class="preprocessor">#else </span><span class="comment">/* ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \</span></div>
<div class="line"><a name="l00727"></a><span class="lineno"> 727</span> <span class="comment"> (defined (__ARM_ARCH_7EM__) && (__ARM_ARCH_7EM__ == 1)) ) */</span><span class="preprocessor"></span></div>
<div class="line"><a name="l00728"></a><span class="lineno"> 728</span> <span class="comment"></span> </div>
<div class="line"><a name="l00729"></a><span class="lineno"> 729</span> <span class="comment">/**</span></div>
<div class="line"><a name="l00730"></a><span class="lineno"> 730</span> <span class="comment"> \brief Signed Saturate</span></div>
<div class="line"><a name="l00731"></a><span class="lineno"> 731</span> <span class="comment"> \details Saturates a signed value.</span></div>
<div class="line"><a name="l00732"></a><span class="lineno"> 732</span> <span class="comment"> \param [in] value Value to be saturated</span></div>
<div class="line"><a name="l00733"></a><span class="lineno"> 733</span> <span class="comment"> \param [in] sat Bit position to saturate to (1..32)</span></div>
<div class="line"><a name="l00734"></a><span class="lineno"> 734</span> <span class="comment"> \return Saturated value</span></div>
<div class="line"><a name="l00735"></a><span class="lineno"> 735</span> <span class="comment"> */</span></div>
<div class="line"><a name="l00736"></a><span class="lineno"> 736</span> <a class="code" href="group__CMSIS__Core__InstructionInterface.html#gaf6c07bb242c244648cc21e1b09c0b5d1">__attribute__</a>((always_inline)) <a class="code" href="cmsis__armcc_8h.html#aba87361bfad2ae52cfe2f40c1a1dbf9c">__STATIC_INLINE</a> int32_t __SSAT(int32_t <a class="code" href="cmsis__iccarm_8h.html#a97ad06b300d95ba1d023dcb1e825335f">val</a>, uint32_t <a class="code" href="group__CMSIS__Core__InstructionInterface.html#gaafcad33f86db3a8e1f55925989f9d2dc">sat</a>)</div>
<div class="line"><a name="l00737"></a><span class="lineno"><a class="line" href="group__CMSIS__Core__InstructionInterface.html#gaafcad33f86db3a8e1f55925989f9d2dc"> 737</a></span> {</div>
<div class="line"><a name="l00738"></a><span class="lineno"> 738</span>  <span class="keywordflow">if</span> ((<a class="code" href="group__CMSIS__Core__InstructionInterface.html#gaafcad33f86db3a8e1f55925989f9d2dc">sat</a> >= 1U) && (<a class="code" href="group__CMSIS__Core__InstructionInterface.html#gaafcad33f86db3a8e1f55925989f9d2dc">sat</a> <= 32U))</div>
<div class="line"><a name="l00739"></a><span class="lineno"> 739</span>  {</div>
<div class="line"><a name="l00740"></a><span class="lineno"> 740</span>  <span class="keyword">const</span> int32_t max = (int32_t)((1U << (<a class="code" href="group__CMSIS__Core__InstructionInterface.html#gaafcad33f86db3a8e1f55925989f9d2dc">sat</a> - 1U)) - 1U);</div>
<div class="line"><a name="l00741"></a><span class="lineno"> 741</span>  <span class="keyword">const</span> int32_t min = -1 - max ;</div>
<div class="line"><a name="l00742"></a><span class="lineno"> 742</span>  <span class="keywordflow">if</span> (<a class="code" href="cmsis__iccarm_8h.html#a97ad06b300d95ba1d023dcb1e825335f">val</a> > max)</div>
<div class="line"><a name="l00743"></a><span class="lineno"> 743</span>  {</div>
<div class="line"><a name="l00744"></a><span class="lineno"> 744</span>  <span class="keywordflow">return</span> max;</div>
<div class="line"><a name="l00745"></a><span class="lineno"> 745</span>  }</div>
<div class="line"><a name="l00746"></a><span class="lineno"> 746</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="cmsis__iccarm_8h.html#a97ad06b300d95ba1d023dcb1e825335f">val</a> < min)</div>
<div class="line"><a name="l00747"></a><span class="lineno"> 747</span>  {</div>
<div class="line"><a name="l00748"></a><span class="lineno"> 748</span>  <span class="keywordflow">return</span> min;</div>
<div class="line"><a name="l00749"></a><span class="lineno"> 749</span>  }</div>
<div class="line"><a name="l00750"></a><span class="lineno"> 750</span>  }</div>
<div class="line"><a name="l00751"></a><span class="lineno"> 751</span>  <span class="keywordflow">return</span> <a class="code" href="cmsis__iccarm_8h.html#a97ad06b300d95ba1d023dcb1e825335f">val</a>;</div>
<div class="line"><a name="l00752"></a><span class="lineno"> 752</span> }</div>
<div class="line"><a name="l00753"></a><span class="lineno"> 753</span> <span class="comment"></span> </div>
<div class="line"><a name="l00754"></a><span class="lineno"> 754</span> <span class="comment">/**</span></div>
<div class="line"><a name="l00755"></a><span class="lineno"> 755</span> <span class="comment"> \brief Unsigned Saturate</span></div>
<div class="line"><a name="l00756"></a><span class="lineno"> 756</span> <span class="comment"> \details Saturates an unsigned value.</span></div>
<div class="line"><a name="l00757"></a><span class="lineno"> 757</span> <span class="comment"> \param [in] value Value to be saturated</span></div>
<div class="line"><a name="l00758"></a><span class="lineno"> 758</span> <span class="comment"> \param [in] sat Bit position to saturate to (0..31)</span></div>
<div class="line"><a name="l00759"></a><span class="lineno"> 759</span> <span class="comment"> \return Saturated value</span></div>
<div class="line"><a name="l00760"></a><span class="lineno"> 760</span> <span class="comment"> */</span></div>
<div class="line"><a name="l00761"></a><span class="lineno"> 761</span> <a class="code" href="group__CMSIS__Core__InstructionInterface.html#gaf6c07bb242c244648cc21e1b09c0b5d1">__attribute__</a>((always_inline)) <a class="code" href="cmsis__armcc_8h.html#aba87361bfad2ae52cfe2f40c1a1dbf9c">__STATIC_INLINE</a> uint32_t __USAT(int32_t <a class="code" href="cmsis__iccarm_8h.html#a97ad06b300d95ba1d023dcb1e825335f">val</a>, uint32_t <a class="code" href="group__CMSIS__Core__InstructionInterface.html#gaafcad33f86db3a8e1f55925989f9d2dc">sat</a>)</div>
<div class="line"><a name="l00762"></a><span class="lineno"> 762</span> {</div>
<div class="line"><a name="l00763"></a><span class="lineno"> 763</span>  <span class="keywordflow">if</span> (<a class="code" href="group__CMSIS__Core__InstructionInterface.html#gaafcad33f86db3a8e1f55925989f9d2dc">sat</a> <= 31U)</div>
<div class="line"><a name="l00764"></a><span class="lineno"> 764</span>  {</div>
<div class="line"><a name="l00765"></a><span class="lineno"> 765</span>  <span class="keyword">const</span> uint32_t max = ((1U << <a class="code" href="group__CMSIS__Core__InstructionInterface.html#gaafcad33f86db3a8e1f55925989f9d2dc">sat</a>) - 1U);</div>
<div class="line"><a name="l00766"></a><span class="lineno"> 766</span>  <span class="keywordflow">if</span> (<a class="code" href="cmsis__iccarm_8h.html#a97ad06b300d95ba1d023dcb1e825335f">val</a> > (int32_t)max)</div>
<div class="line"><a name="l00767"></a><span class="lineno"> 767</span>  {</div>
<div class="line"><a name="l00768"></a><span class="lineno"> 768</span>  <span class="keywordflow">return</span> max;</div>
<div class="line"><a name="l00769"></a><span class="lineno"> 769</span>  }</div>
<div class="line"><a name="l00770"></a><span class="lineno"> 770</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="cmsis__iccarm_8h.html#a97ad06b300d95ba1d023dcb1e825335f">val</a> < 0)</div>
<div class="line"><a name="l00771"></a><span class="lineno"> 771</span>  {</div>
<div class="line"><a name="l00772"></a><span class="lineno"> 772</span>  <span class="keywordflow">return</span> 0U;</div>
<div class="line"><a name="l00773"></a><span class="lineno"> 773</span>  }</div>
<div class="line"><a name="l00774"></a><span class="lineno"> 774</span>  }</div>
<div class="line"><a name="l00775"></a><span class="lineno"> 775</span>  <span class="keywordflow">return</span> (uint32_t)<a class="code" href="cmsis__iccarm_8h.html#a97ad06b300d95ba1d023dcb1e825335f">val</a>;</div>
<div class="line"><a name="l00776"></a><span class="lineno"> 776</span> }</div>
<div class="line"><a name="l00777"></a><span class="lineno"> 777</span>  </div>
<div class="line"><a name="l00778"></a><span class="lineno"> 778</span> <span class="preprocessor">#endif </span><span class="comment">/* ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \</span></div>
<div class="line"><a name="l00779"></a><span class="lineno"> 779</span> <span class="comment"> (defined (__ARM_ARCH_7EM__) && (__ARM_ARCH_7EM__ == 1)) ) */</span><span class="preprocessor"></span></div>
<div class="line"><a name="l00780"></a><span class="lineno"> 780</span> <span class="comment"></span> </div>
<div class="line"><a name="l00781"></a><span class="lineno"> 781</span> <span class="comment">/*@}*/</span> <span class="comment">/* end of group CMSIS_Core_InstructionInterface */</span></div>
<div class="line"><a name="l00782"></a><span class="lineno"> 782</span>  </div>
<div class="line"><a name="l00783"></a><span class="lineno"> 783</span>  </div>
<div class="line"><a name="l00784"></a><span class="lineno"> 784</span> <span class="comment">/* ################### Compiler specific Intrinsics ########################### */</span><span class="comment"></span></div>
<div class="line"><a name="l00785"></a><span class="lineno"> 785</span> <span class="comment">/** \defgroup CMSIS_SIMD_intrinsics CMSIS SIMD Intrinsics</span></div>
<div class="line"><a name="l00786"></a><span class="lineno"> 786</span> <span class="comment"> Access to dedicated SIMD instructions</span></div>
<div class="line"><a name="l00787"></a><span class="lineno"> 787</span> <span class="comment"> @{</span></div>
<div class="line"><a name="l00788"></a><span class="lineno"> 788</span> <span class="comment">*/</span></div>
<div class="line"><a name="l00789"></a><span class="lineno"> 789</span>  </div>
<div class="line"><a name="l00790"></a><span class="lineno"> 790</span> <span class="preprocessor">#if ((defined (__ARM_ARCH_7EM__) && (__ARM_ARCH_7EM__ == 1)) )</span></div>
<div class="line"><a name="l00791"></a><span class="lineno"> 791</span>  </div>
<div class="line"><a name="l00792"></a><span class="lineno"> 792</span> <span class="preprocessor">#define __SADD8 __sadd8</span></div>
<div class="line"><a name="l00793"></a><span class="lineno"> 793</span> <span class="preprocessor">#define __QADD8 __qadd8</span></div>
<div class="line"><a name="l00794"></a><span class="lineno"> 794</span> <span class="preprocessor">#define __SHADD8 __shadd8</span></div>
<div class="line"><a name="l00795"></a><span class="lineno"> 795</span> <span class="preprocessor">#define __UADD8 __uadd8</span></div>
<div class="line"><a name="l00796"></a><span class="lineno"> 796</span> <span class="preprocessor">#define __UQADD8 __uqadd8</span></div>
<div class="line"><a name="l00797"></a><span class="lineno"> 797</span> <span class="preprocessor">#define __UHADD8 __uhadd8</span></div>
<div class="line"><a name="l00798"></a><span class="lineno"> 798</span> <span class="preprocessor">#define __SSUB8 __ssub8</span></div>
<div class="line"><a name="l00799"></a><span class="lineno"> 799</span> <span class="preprocessor">#define __QSUB8 __qsub8</span></div>
<div class="line"><a name="l00800"></a><span class="lineno"> 800</span> <span class="preprocessor">#define __SHSUB8 __shsub8</span></div>
<div class="line"><a name="l00801"></a><span class="lineno"> 801</span> <span class="preprocessor">#define __USUB8 __usub8</span></div>
<div class="line"><a name="l00802"></a><span class="lineno"> 802</span> <span class="preprocessor">#define __UQSUB8 __uqsub8</span></div>
<div class="line"><a name="l00803"></a><span class="lineno"> 803</span> <span class="preprocessor">#define __UHSUB8 __uhsub8</span></div>
<div class="line"><a name="l00804"></a><span class="lineno"> 804</span> <span class="preprocessor">#define __SADD16 __sadd16</span></div>
<div class="line"><a name="l00805"></a><span class="lineno"> 805</span> <span class="preprocessor">#define __QADD16 __qadd16</span></div>
<div class="line"><a name="l00806"></a><span class="lineno"> 806</span> <span class="preprocessor">#define __SHADD16 __shadd16</span></div>
<div class="line"><a name="l00807"></a><span class="lineno"> 807</span> <span class="preprocessor">#define __UADD16 __uadd16</span></div>
<div class="line"><a name="l00808"></a><span class="lineno"> 808</span> <span class="preprocessor">#define __UQADD16 __uqadd16</span></div>
<div class="line"><a name="l00809"></a><span class="lineno"> 809</span> <span class="preprocessor">#define __UHADD16 __uhadd16</span></div>
<div class="line"><a name="l00810"></a><span class="lineno"> 810</span> <span class="preprocessor">#define __SSUB16 __ssub16</span></div>
<div class="line"><a name="l00811"></a><span class="lineno"> 811</span> <span class="preprocessor">#define __QSUB16 __qsub16</span></div>
<div class="line"><a name="l00812"></a><span class="lineno"> 812</span> <span class="preprocessor">#define __SHSUB16 __shsub16</span></div>
<div class="line"><a name="l00813"></a><span class="lineno"> 813</span> <span class="preprocessor">#define __USUB16 __usub16</span></div>
<div class="line"><a name="l00814"></a><span class="lineno"> 814</span> <span class="preprocessor">#define __UQSUB16 __uqsub16</span></div>
<div class="line"><a name="l00815"></a><span class="lineno"> 815</span> <span class="preprocessor">#define __UHSUB16 __uhsub16</span></div>
<div class="line"><a name="l00816"></a><span class="lineno"> 816</span> <span class="preprocessor">#define __SASX __sasx</span></div>
<div class="line"><a name="l00817"></a><span class="lineno"> 817</span> <span class="preprocessor">#define __QASX __qasx</span></div>
<div class="line"><a name="l00818"></a><span class="lineno"> 818</span> <span class="preprocessor">#define __SHASX __shasx</span></div>
<div class="line"><a name="l00819"></a><span class="lineno"> 819</span> <span class="preprocessor">#define __UASX __uasx</span></div>
<div class="line"><a name="l00820"></a><span class="lineno"> 820</span> <span class="preprocessor">#define __UQASX __uqasx</span></div>
<div class="line"><a name="l00821"></a><span class="lineno"> 821</span> <span class="preprocessor">#define __UHASX __uhasx</span></div>
<div class="line"><a name="l00822"></a><span class="lineno"> 822</span> <span class="preprocessor">#define __SSAX __ssax</span></div>
<div class="line"><a name="l00823"></a><span class="lineno"> 823</span> <span class="preprocessor">#define __QSAX __qsax</span></div>
<div class="line"><a name="l00824"></a><span class="lineno"> 824</span> <span class="preprocessor">#define __SHSAX __shsax</span></div>
<div class="line"><a name="l00825"></a><span class="lineno"> 825</span> <span class="preprocessor">#define __USAX __usax</span></div>
<div class="line"><a name="l00826"></a><span class="lineno"> 826</span> <span class="preprocessor">#define __UQSAX __uqsax</span></div>
<div class="line"><a name="l00827"></a><span class="lineno"> 827</span> <span class="preprocessor">#define __UHSAX __uhsax</span></div>
<div class="line"><a name="l00828"></a><span class="lineno"> 828</span> <span class="preprocessor">#define __USAD8 __usad8</span></div>
<div class="line"><a name="l00829"></a><span class="lineno"> 829</span> <span class="preprocessor">#define __USADA8 __usada8</span></div>
<div class="line"><a name="l00830"></a><span class="lineno"> 830</span> <span class="preprocessor">#define __SSAT16 __ssat16</span></div>
<div class="line"><a name="l00831"></a><span class="lineno"> 831</span> <span class="preprocessor">#define __USAT16 __usat16</span></div>
<div class="line"><a name="l00832"></a><span class="lineno"> 832</span> <span class="preprocessor">#define __UXTB16 __uxtb16</span></div>
<div class="line"><a name="l00833"></a><span class="lineno"> 833</span> <span class="preprocessor">#define __UXTAB16 __uxtab16</span></div>
<div class="line"><a name="l00834"></a><span class="lineno"> 834</span> <span class="preprocessor">#define __SXTB16 __sxtb16</span></div>
<div class="line"><a name="l00835"></a><span class="lineno"> 835</span> <span class="preprocessor">#define __SXTAB16 __sxtab16</span></div>
<div class="line"><a name="l00836"></a><span class="lineno"> 836</span> <span class="preprocessor">#define __SMUAD __smuad</span></div>
<div class="line"><a name="l00837"></a><span class="lineno"> 837</span> <span class="preprocessor">#define __SMUADX __smuadx</span></div>
<div class="line"><a name="l00838"></a><span class="lineno"> 838</span> <span class="preprocessor">#define __SMLAD __smlad</span></div>
<div class="line"><a name="l00839"></a><span class="lineno"> 839</span> <span class="preprocessor">#define __SMLADX __smladx</span></div>
<div class="line"><a name="l00840"></a><span class="lineno"> 840</span> <span class="preprocessor">#define __SMLALD __smlald</span></div>
<div class="line"><a name="l00841"></a><span class="lineno"> 841</span> <span class="preprocessor">#define __SMLALDX __smlaldx</span></div>
<div class="line"><a name="l00842"></a><span class="lineno"> 842</span> <span class="preprocessor">#define __SMUSD __smusd</span></div>
<div class="line"><a name="l00843"></a><span class="lineno"> 843</span> <span class="preprocessor">#define __SMUSDX __smusdx</span></div>
<div class="line"><a name="l00844"></a><span class="lineno"> 844</span> <span class="preprocessor">#define __SMLSD __smlsd</span></div>
<div class="line"><a name="l00845"></a><span class="lineno"> 845</span> <span class="preprocessor">#define __SMLSDX __smlsdx</span></div>
<div class="line"><a name="l00846"></a><span class="lineno"> 846</span> <span class="preprocessor">#define __SMLSLD __smlsld</span></div>
<div class="line"><a name="l00847"></a><span class="lineno"> 847</span> <span class="preprocessor">#define __SMLSLDX __smlsldx</span></div>
<div class="line"><a name="l00848"></a><span class="lineno"> 848</span> <span class="preprocessor">#define __SEL __sel</span></div>
<div class="line"><a name="l00849"></a><span class="lineno"> 849</span> <span class="preprocessor">#define __QADD __qadd</span></div>
<div class="line"><a name="l00850"></a><span class="lineno"> 850</span> <span class="preprocessor">#define __QSUB __qsub</span></div>
<div class="line"><a name="l00851"></a><span class="lineno"> 851</span>  </div>
<div class="line"><a name="l00852"></a><span class="lineno"> 852</span> <span class="preprocessor">#define __PKHBT(ARG1,ARG2,ARG3) ( ((((uint32_t)(ARG1)) ) & 0x0000FFFFUL) | \</span></div>
<div class="line"><a name="l00853"></a><span class="lineno"> 853</span> <span class="preprocessor"> ((((uint32_t)(ARG2)) << (ARG3)) & 0xFFFF0000UL) )</span></div>
<div class="line"><a name="l00854"></a><span class="lineno"> 854</span>  </div>
<div class="line"><a name="l00855"></a><span class="lineno"> 855</span> <span class="preprocessor">#define __PKHTB(ARG1,ARG2,ARG3) ( ((((uint32_t)(ARG1)) ) & 0xFFFF0000UL) | \</span></div>
<div class="line"><a name="l00856"></a><span class="lineno"> 856</span> <span class="preprocessor"> ((((uint32_t)(ARG2)) >> (ARG3)) & 0x0000FFFFUL) )</span></div>
<div class="line"><a name="l00857"></a><span class="lineno"> 857</span>  </div>
<div class="line"><a name="l00858"></a><span class="lineno"> 858</span> <span class="preprocessor">#define __SMMLA(ARG1,ARG2,ARG3) ( (int32_t)((((int64_t)(ARG1) * (ARG2)) + \</span></div>
<div class="line"><a name="l00859"></a><span class="lineno"> 859</span> <span class="preprocessor"> ((int64_t)(ARG3) << 32U) ) >> 32U))</span></div>
<div class="line"><a name="l00860"></a><span class="lineno"> 860</span>  </div>
<div class="line"><a name="l00861"></a><span class="lineno"> 861</span> <span class="preprocessor">#endif </span><span class="comment">/* ((defined (__ARM_ARCH_7EM__) && (__ARM_ARCH_7EM__ == 1)) ) */</span><span class="preprocessor"></span></div>
<div class="line"><a name="l00862"></a><span class="lineno"> 862</span> <span class="comment">/*@} end of group CMSIS_SIMD_intrinsics */</span></div>
<div class="line"><a name="l00863"></a><span class="lineno"> 863</span>  </div>
<div class="line"><a name="l00864"></a><span class="lineno"> 864</span>  </div>
<div class="line"><a name="l00865"></a><span class="lineno"> 865</span> <span class="preprocessor">#endif </span><span class="comment">/* __CMSIS_ARMCC_H */</span><span class="preprocessor"></span></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<div class="ttc" id="acmsis__armcc_8h_html_a1378040bcf22428955c6e3ce9c2053cd"><div class="ttname"><a href="cmsis__armcc_8h.html#a1378040bcf22428955c6e3ce9c2053cd">__ASM</a></div><div class="ttdeci">#define __ASM</div><div class="ttdef"><b>Definition:</b> <a href="cmsis__armcc_8h_source.html#l00053">cmsis_armcc.h:53</a></div></div>
<div class="ttc" id="agroup__CMSIS__Core__RegAccFunctions_html_ga40ae8e49000aa06e347b33a7f43b04ad"><div class="ttname"><a href="group__CMSIS__Core__RegAccFunctions.html#ga40ae8e49000aa06e347b33a7f43b04ad">__get_CONTROL</a></div><div class="ttdeci">static __inline uint32_t __get_CONTROL(void)</div><div class="ttdoc">Enable IRQ Interrupts.</div><div class="ttdef"><b>Definition:</b> <a href="cmsis__armcc_8h_source.html#l00130">cmsis_armcc.h:130</a></div></div>
<div class="ttc" id="agroup__CMSIS__Core__InstructionInterface_html_gaafcad33f86db3a8e1f55925989f9d2dc"><div class="ttname"><a href="group__CMSIS__Core__InstructionInterface.html#gaafcad33f86db3a8e1f55925989f9d2dc">sat</a></div><div class="ttdeci">uint32_t sat</div><div class="ttdef"><b>Definition:</b> <a href="cmsis__armcc_8h_source.html#l00737">cmsis_armcc.h:737</a></div></div>
<div class="ttc" id="agroup__CMSIS__Core__RegAccFunctions_html_ga69d362872c4f145142248117d8d015fd"><div class="ttname"><a href="group__CMSIS__Core__RegAccFunctions.html#ga69d362872c4f145142248117d8d015fd">__set_MSP</a></div><div class="ttdeci">static __inline void __set_MSP(uint32_t topOfMainStack)</div><div class="ttdoc">Set Main Stack Pointer.</div><div class="ttdef"><b>Definition:</b> <a href="cmsis__armcc_8h_source.html#l00226">cmsis_armcc.h:226</a></div></div>
<div class="ttc" id="agroup__CMSIS__Core__InstructionInterface_html_gae580812686119c9c5cf3c11a7519a404"><div class="ttname"><a href="group__CMSIS__Core__InstructionInterface.html#gae580812686119c9c5cf3c11a7519a404">__REVSH</a></div><div class="ttdeci">#define __REVSH(value)</div><div class="ttdoc">Reverse byte order (16 bit)</div><div class="ttdef"><b>Definition:</b> <a href="cmsis__armclang_8h_source.html#l00866">cmsis_armclang.h:866</a></div></div>
<div class="ttc" id="agroup__CMSIS__Core__InstructionInterface_html_gab83768933a612816fad669db5488366f"><div class="ttname"><a href="group__CMSIS__Core__InstructionInterface.html#gab83768933a612816fad669db5488366f">__RBIT</a></div><div class="ttdeci">#define __RBIT</div><div class="ttdoc">Reverse bit order of value.</div><div class="ttdef"><b>Definition:</b> <a href="cmsis__armclang_8h_source.html#l00903">cmsis_armclang.h:903</a></div></div>
<div class="ttc" id="agroup__CMSIS__Core__RegAccFunctions_html_ga7538ed8f1ca9781be0ff7c6675d18d1f"><div class="ttname"><a href="group__CMSIS__Core__RegAccFunctions.html#ga7538ed8f1ca9781be0ff7c6675d18d1f">__set_FPSCR</a></div><div class="ttdeci">static __inline void __set_FPSCR(uint32_t fpscr)</div><div class="ttdoc">Set FPSCR.</div><div class="ttdef"><b>Definition:</b> <a href="cmsis__armcc_8h_source.html#l00362">cmsis_armcc.h:362</a></div></div>
<div class="ttc" id="agroup__CMSIS__Core__RegAccFunctions_html_gab80a73db691b79612ee06b6116dbfe25"><div class="ttname"><a href="group__CMSIS__Core__RegAccFunctions.html#gab80a73db691b79612ee06b6116dbfe25">__set_PRIMASK</a></div><div class="ttdeci">static __inline void __set_PRIMASK(uint32_t priMask)</div><div class="ttdoc">Set Priority Mask.</div><div class="ttdef"><b>Definition:</b> <a href="cmsis__armcc_8h_source.html#l00250">cmsis_armcc.h:250</a></div></div>
<div class="ttc" id="agroup__CMSIS__Core__RegAccFunctions_html_ga79f336aeb1381967662621fcd8b7780d"><div class="ttname"><a href="group__CMSIS__Core__RegAccFunctions.html#ga79f336aeb1381967662621fcd8b7780d">__get_PRIMASK</a></div><div class="ttdeci">static __inline uint32_t __get_PRIMASK(void)</div><div class="ttdoc">Get Priority Mask.</div><div class="ttdef"><b>Definition:</b> <a href="cmsis__armcc_8h_source.html#l00238">cmsis_armcc.h:238</a></div></div>
<div class="ttc" id="agroup__CMSIS__Core__RegAccFunctions_html_gab308e346b29015dd289308bcd76909af"><div class="ttname"><a href="group__CMSIS__Core__RegAccFunctions.html#gab308e346b29015dd289308bcd76909af">__get_APSR</a></div><div class="ttdeci">static __inline uint32_t __get_APSR(void)</div><div class="ttdoc">Get APSR Register.</div><div class="ttdef"><b>Definition:</b> <a href="cmsis__armcc_8h_source.html#l00166">cmsis_armcc.h:166</a></div></div>
<div class="ttc" id="agroup__CMSIS__Core__InstructionInterface_html_gad35497777af37e7809271b5e6f9510ba"><div class="ttname"><a href="group__CMSIS__Core__InstructionInterface.html#gad35497777af37e7809271b5e6f9510ba">__REV16</a></div><div class="ttdeci">#define __REV16(value)</div><div class="ttdoc">Reverse byte order (16 bit)</div><div class="ttdef"><b>Definition:</b> <a href="cmsis__armclang_8h_source.html#l00857">cmsis_armclang.h:857</a></div></div>
<div class="ttc" id="agroup__CMSIS__Core__RegAccFunctions_html_ga078b4a8138476da3d0b22cced848d1e9"><div class="ttname"><a href="group__CMSIS__Core__RegAccFunctions.html#ga078b4a8138476da3d0b22cced848d1e9">__get_xPSR</a></div><div class="ttdeci">static __inline uint32_t __get_xPSR(void)</div><div class="ttdoc">Get xPSR Register.</div><div class="ttdef"><b>Definition:</b> <a href="cmsis__armcc_8h_source.html#l00178">cmsis_armcc.h:178</a></div></div>
<div class="ttc" id="acmsis__armcc_8h_html_aba87361bfad2ae52cfe2f40c1a1dbf9c"><div class="ttname"><a href="cmsis__armcc_8h.html#aba87361bfad2ae52cfe2f40c1a1dbf9c">__STATIC_INLINE</a></div><div class="ttdeci">#define __STATIC_INLINE</div><div class="ttdef"><b>Definition:</b> <a href="cmsis__armcc_8h_source.html#l00059">cmsis_armcc.h:59</a></div></div>
<div class="ttc" id="agroup__CMSIS__Core__RegAccFunctions_html_gac7d4bea74e3cd6bdfe5a97b8044f2516"><div class="ttname"><a href="group__CMSIS__Core__RegAccFunctions.html#gac7d4bea74e3cd6bdfe5a97b8044f2516">__set_PSP</a></div><div class="ttdeci">static __inline void __set_PSP(uint32_t topOfProcStack)</div><div class="ttdoc">Set Process Stack Pointer.</div><div class="ttdef"><b>Definition:</b> <a href="cmsis__armcc_8h_source.html#l00202">cmsis_armcc.h:202</a></div></div>
<div class="ttc" id="agroup__CMSIS__Core__RegAccFunctions_html_ga19b2b468b1b5a95d1e0febc42fcfabf0"><div class="ttname"><a href="group__CMSIS__Core__RegAccFunctions.html#ga19b2b468b1b5a95d1e0febc42fcfabf0">__get_FPSCR</a></div><div class="ttdeci">static __inline uint32_t __get_FPSCR(void)</div><div class="ttdoc">Get FPSCR.</div><div class="ttdef"><b>Definition:</b> <a href="cmsis__armcc_8h_source.html#l00345">cmsis_armcc.h:345</a></div></div>
<div class="ttc" id="agroup__CMSIS__Core__RegAccFunctions_html_ga8f2843ba4ca7a815e15303d7e5880a96"><div class="ttname"><a href="group__CMSIS__Core__RegAccFunctions.html#ga8f2843ba4ca7a815e15303d7e5880a96">__get_IPSR</a></div><div class="ttdeci">static __inline uint32_t __get_IPSR(void)</div><div class="ttdoc">Get IPSR Register.</div><div class="ttdef"><b>Definition:</b> <a href="cmsis__armcc_8h_source.html#l00154">cmsis_armcc.h:154</a></div></div>
<div class="ttc" id="agroup__CMSIS__Core__RegAccFunctions_html_ga3d0d190e1af0d79fbfdf0d02d8eff91f"><div class="ttname"><a href="group__CMSIS__Core__RegAccFunctions.html#ga3d0d190e1af0d79fbfdf0d02d8eff91f">__get_MSP</a></div><div class="ttdeci">static __inline uint32_t __get_MSP(void)</div><div class="ttdoc">Get Main Stack Pointer.</div><div class="ttdef"><b>Definition:</b> <a href="cmsis__armcc_8h_source.html#l00214">cmsis_armcc.h:214</a></div></div>
<div class="ttc" id="agroup__CMSIS__Core__RegAccFunctions_html_ga200ad037cde04b8fde4fa365e87b365b"><div class="ttname"><a href="group__CMSIS__Core__RegAccFunctions.html#ga200ad037cde04b8fde4fa365e87b365b">__get_PSP</a></div><div class="ttdeci">static __inline uint32_t __get_PSP(void)</div><div class="ttdoc">Get Process Stack Pointer.</div><div class="ttdef"><b>Definition:</b> <a href="cmsis__armcc_8h_source.html#l00190">cmsis_armcc.h:190</a></div></div>
<div class="ttc" id="acmsis__iccarm_8h_html_a97ad06b300d95ba1d023dcb1e825335f"><div class="ttname"><a href="cmsis__iccarm_8h.html#a97ad06b300d95ba1d023dcb1e825335f">val</a></div><div class="ttdeci">uint16_t val</div><div class="ttdef"><b>Definition:</b> <a href="cmsis__iccarm_8h_source.html#l00184">cmsis_iccarm.h:184</a></div></div>
<div class="ttc" id="agroup__CMSIS__Core__InstructionInterface_html_gaf6c07bb242c244648cc21e1b09c0b5d1"><div class="ttname"><a href="group__CMSIS__Core__InstructionInterface.html#gaf6c07bb242c244648cc21e1b09c0b5d1">__attribute__</a></div><div class="ttdeci">__attribute__((section(".rev16_text"))) static __inline __asm uint32_t __REV16(uint32_t value)</div><div class="ttdoc">Reverse byte order (16 bit)</div><div class="ttdef"><b>Definition:</b> <a href="cmsis__armcc_8h_source.html#l00463">cmsis_armcc.h:463</a></div></div>
<div class="ttc" id="agroup__CMSIS__Core__RegAccFunctions_html_ga34c9673a9c8ea13960a6af6603966784"><div class="ttname"><a href="group__CMSIS__Core__RegAccFunctions.html#ga34c9673a9c8ea13960a6af6603966784">__set_CONTROL</a></div><div class="ttdeci">static __inline void __set_CONTROL(uint32_t control)</div><div class="ttdoc">Set Control Register.</div><div class="ttdef"><b>Definition:</b> <a href="cmsis__armcc_8h_source.html#l00142">cmsis_armcc.h:142</a></div></div>
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_4e5f16ccb0512908371dae1ef268cc7e.html">STM32F103C8T6_powermeter-interface</a></li><li class="navelem"><a class="el" href="dir_4a957a805603a308ca7ef702854b01cc.html">Drivers</a></li><li class="navelem"><a class="el" href="dir_18bf7d3f7b9d55936b2a3f3cf5bda8a2.html">CMSIS</a></li><li class="navelem"><a class="el" href="dir_de37198addca9c151ebc1b96066a72a3.html">Include</a></li><li class="navelem"><a class="el" href="cmsis__armcc_8h.html">cmsis_armcc.h</a></li>
<li class="footer">Generated on Mon Dec 13 2021 16:18:48 for DIY Logging Volt/Ampmeter by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
</ul>
</div>
</body>
</html>