summaryrefslogtreecommitdiff
path: root/docs/Core_A/html/group__comp__cntrl__gr.html
diff options
context:
space:
mode:
Diffstat (limited to 'docs/Core_A/html/group__comp__cntrl__gr.html')
-rw-r--r--docs/Core_A/html/group__comp__cntrl__gr.html161
1 files changed, 159 insertions, 2 deletions
diff --git a/docs/Core_A/html/group__comp__cntrl__gr.html b/docs/Core_A/html/group__comp__cntrl__gr.html
index 7454667..a224604 100644
--- a/docs/Core_A/html/group__comp__cntrl__gr.html
+++ b/docs/Core_A/html/group__comp__cntrl__gr.html
@@ -32,7 +32,7 @@
<td id="projectlogo"><img alt="Logo" src="CMSIS_Logo_Final.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">CMSIS-Core (Cortex-A)
- &#160;<span id="projectnumber">Version 1.1.2</span>
+ &#160;<span id="projectnumber">Version 1.1.4</span>
</div>
<div id="projectbrief">CMSIS-Core support for Cortex-A processor-based devices</div>
</td>
@@ -131,6 +131,9 @@ Macros</h2></td></tr>
<tr class="memitem:gaba87361bfad2ae52cfe2f40c1a1dbf9c"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__comp__cntrl__gr.html#gaba87361bfad2ae52cfe2f40c1a1dbf9c">__STATIC_INLINE</a>&#160;&#160;&#160;static __inline</td></tr>
<tr class="memdesc:gaba87361bfad2ae52cfe2f40c1a1dbf9c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Define a static function should be inlined by the compiler. <a href="#gaba87361bfad2ae52cfe2f40c1a1dbf9c">More...</a><br/></td></tr>
<tr class="separator:gaba87361bfad2ae52cfe2f40c1a1dbf9c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab904513442afdf77d4f8c74f23cbb040"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__comp__cntrl__gr.html#gab904513442afdf77d4f8c74f23cbb040">__STATIC_FORCEINLINE</a></td></tr>
+<tr class="memdesc:gab904513442afdf77d4f8c74f23cbb040"><td class="mdescLeft">&#160;</td><td class="mdescRight">Define a static function that should be always inlined by the compiler. <a href="#gab904513442afdf77d4f8c74f23cbb040">More...</a><br/></td></tr>
+<tr class="separator:gab904513442afdf77d4f8c74f23cbb040"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga153a4a31b276a9758959580538720a51"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__comp__cntrl__gr.html#ga153a4a31b276a9758959580538720a51">__NO_RETURN</a>&#160;&#160;&#160;__declspec(noreturn)</td></tr>
<tr class="memdesc:ga153a4a31b276a9758959580538720a51"><td class="mdescLeft">&#160;</td><td class="mdescRight">Inform the compiler that a function does not return. <a href="#ga153a4a31b276a9758959580538720a51">More...</a><br/></td></tr>
<tr class="separator:ga153a4a31b276a9758959580538720a51"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -146,6 +149,24 @@ Macros</h2></td></tr>
<tr class="memitem:gabe8996d3d985ee1529475443cc635bf1"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__comp__cntrl__gr.html#gabe8996d3d985ee1529475443cc635bf1">__PACKED</a>&#160;&#160;&#160;__attribute__((packed))</td></tr>
<tr class="memdesc:gabe8996d3d985ee1529475443cc635bf1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Request smallest possible alignment. <a href="#gabe8996d3d985ee1529475443cc635bf1">More...</a><br/></td></tr>
<tr class="separator:gabe8996d3d985ee1529475443cc635bf1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga4dbb70fab85207c27b581ecb6532b314"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__comp__cntrl__gr.html#ga4dbb70fab85207c27b581ecb6532b314">__PACKED_STRUCT</a></td></tr>
+<tr class="memdesc:ga4dbb70fab85207c27b581ecb6532b314"><td class="mdescLeft">&#160;</td><td class="mdescRight">Request smallest possible alignment for a structure. <a href="#ga4dbb70fab85207c27b581ecb6532b314">More...</a><br/></td></tr>
+<tr class="separator:ga4dbb70fab85207c27b581ecb6532b314"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga27fd2ec6767ca1ab66d36b5cc0103268"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__comp__cntrl__gr.html#ga27fd2ec6767ca1ab66d36b5cc0103268">__UNALIGNED_UINT32</a></td></tr>
+<tr class="memdesc:ga27fd2ec6767ca1ab66d36b5cc0103268"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pointer for unaligned access of a uint32_t variable. <a href="#ga27fd2ec6767ca1ab66d36b5cc0103268">More...</a><br/></td></tr>
+<tr class="separator:ga27fd2ec6767ca1ab66d36b5cc0103268"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gabe8693a7200e573101551d49a1772fb9"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__comp__cntrl__gr.html#gabe8693a7200e573101551d49a1772fb9">__UNALIGNED_UINT16_READ</a></td></tr>
+<tr class="memdesc:gabe8693a7200e573101551d49a1772fb9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pointer for unaligned read of a uint16_t variable. <a href="#gabe8693a7200e573101551d49a1772fb9">More...</a><br/></td></tr>
+<tr class="separator:gabe8693a7200e573101551d49a1772fb9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gadb9cd73446f7e11e92383cd327a23407"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__comp__cntrl__gr.html#gadb9cd73446f7e11e92383cd327a23407">__UNALIGNED_UINT16_WRITE</a></td></tr>
+<tr class="memdesc:gadb9cd73446f7e11e92383cd327a23407"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pointer for unaligned write of a uint16_t variable. <a href="#gadb9cd73446f7e11e92383cd327a23407">More...</a><br/></td></tr>
+<tr class="separator:gadb9cd73446f7e11e92383cd327a23407"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga254322c344d954c9f829719a50a88e87"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__comp__cntrl__gr.html#ga254322c344d954c9f829719a50a88e87">__UNALIGNED_UINT32_READ</a></td></tr>
+<tr class="memdesc:ga254322c344d954c9f829719a50a88e87"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pointer for unaligned read of a uint32_t variable. <a href="#ga254322c344d954c9f829719a50a88e87">More...</a><br/></td></tr>
+<tr class="separator:ga254322c344d954c9f829719a50a88e87"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gabb2180285c417aa9120a360c51f64b4b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__comp__cntrl__gr.html#gabb2180285c417aa9120a360c51f64b4b">__UNALIGNED_UINT32_WRITE</a></td></tr>
+<tr class="memdesc:gabb2180285c417aa9120a360c51f64b4b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pointer for unaligned write of a uint32_t variable. <a href="#gabb2180285c417aa9120a360c51f64b4b">More...</a><br/></td></tr>
+<tr class="separator:gabb2180285c417aa9120a360c51f64b4b"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Description</h2>
<p>The CMSIS-Core provides the header file <b>cmsis_compiler.h</b> with consistent #define symbols to generate C or C++ source files that should be compiler agnostic. Each CMSIS compliant compiler should support the functionality described in this section. </p>
@@ -263,6 +284,46 @@ Macros</h2></td></tr>
</div><!-- fragment -->
</div>
</div>
+<a class="anchor" id="ga4dbb70fab85207c27b581ecb6532b314"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define __PACKED_STRUCT</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Specifies that a structure must have the smallest possible alignment.</p>
+<p><b> Code Example:</b> </p>
+<div class="fragment"><div class="line"><a class="code" href="group__comp__cntrl__gr.html#ga4dbb70fab85207c27b581ecb6532b314">__PACKED_STRUCT</a> foo {</div>
+<div class="line"> uint8_t u8;</div>
+<div class="line"> uint32_t u32;</div>
+<div class="line"> uint16_t u16;</div>
+<div class="line">};</div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="gab904513442afdf77d4f8c74f23cbb040"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define __STATIC_FORCEINLINE</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Defines a static function that should be always inlined by the compiler.</p>
+<dl class="section note"><dt>Note</dt><dd>For compilers that do not allow to force function inlining, the macro maps to <a class="el" href="group__comp__cntrl__gr.html#gaba87361bfad2ae52cfe2f40c1a1dbf9c">__STATIC_INLINE</a>.</dd></dl>
+<p><b> Code Example:</b> </p>
+<div class="fragment"><div class="line">\\ Get Interrupt Vector</div>
+<div class="line"><a class="code" href="group__comp__cntrl__gr.html#gab904513442afdf77d4f8c74f23cbb040">__STATIC_FORCEINLINE</a> uint32_t NVIC_GetVector(<a class="code" href="ARMCA9_8h.html#a7e1129cd8a196f4284d41db3e82ad5c8">IRQn_Type</a> IRQn)</div>
+<div class="line">{</div>
+<div class="line"> uint32_t *vectors = (uint32_t *)SCB-&gt;VTOR;</div>
+<div class="line"> <span class="keywordflow">return</span> vectors[(int32_t)IRQn + NVIC_USER_IRQ_OFFSET];</div>
+<div class="line">}</div>
+</div><!-- fragment -->
+</div>
+</div>
<a class="anchor" id="gaba87361bfad2ae52cfe2f40c1a1dbf9c"></a>
<div class="memitem">
<div class="memproto">
@@ -281,6 +342,102 @@ Macros</h2></td></tr>
</div><!-- fragment -->
</div>
</div>
+<a class="anchor" id="gabe8693a7200e573101551d49a1772fb9"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define __UNALIGNED_UINT16_READ</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Defines a pointer to a uint16_t from an address that does not need to be aligned. This can then be used in read operations. The compiler will generate the appropriate access (aligned or non-aligned) depending on the underlying Arm processor core and compiler settings.</p>
+<p><b> Code Example:</b> </p>
+<div class="fragment"><div class="line">uint16_t val16;</div>
+<div class="line"> </div>
+<div class="line"><span class="keywordtype">void</span> test (uint8_t *ptr) {</div>
+<div class="line"> val16 = <a class="code" href="group__comp__cntrl__gr.html#gabe8693a7200e573101551d49a1772fb9">__UNALIGNED_UINT16_READ</a>(ptr);</div>
+<div class="line">}</div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="gadb9cd73446f7e11e92383cd327a23407"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define __UNALIGNED_UINT16_WRITE</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Defines a pointer to a uint16_t from an address that does not need to be aligned. This can then be used in write operations. The compiler will generate the appropriate access (aligned or non-aligned) depending on the underlying Arm processor core and compiler settings.</p>
+<p><b> Code Example:</b> </p>
+<div class="fragment"><div class="line">uint16_t val16 = 0U;</div>
+<div class="line"> </div>
+<div class="line"><span class="keywordtype">void</span> test (uint8_t *ptr) {</div>
+<div class="line"> <a class="code" href="group__comp__cntrl__gr.html#gadb9cd73446f7e11e92383cd327a23407">__UNALIGNED_UINT16_WRITE</a>(ptr, val16);</div>
+<div class="line">}</div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="ga27fd2ec6767ca1ab66d36b5cc0103268"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define __UNALIGNED_UINT32</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000001">Deprecated:</a></b></dt><dd>Do not use this macro. It has been superseded by <a class="el" href="cmsis__armcc_8h.html#a3b931f0b051b8c1a6377a3dcc7559b5e">__UNALIGNED_UINT32_READ</a>, <a class="el" href="cmsis__armcc_8h.html#a203f593d140ed88b81bc189edc861110">__UNALIGNED_UINT32_WRITE</a> and will be removed in the future.</dd></dl>
+<p>Defines a pointer to a uint32_t from an address that does not need to be aligned. This can then be used in read/write operations. The compiler will generate the appropriate access (aligned or non-aligned) depending on the underlying Arm processor core and compiler settings.</p>
+<p><b> Code Example:</b> </p>
+<div class="fragment"><div class="line">uint32_t val32;</div>
+<div class="line"> </div>
+<div class="line"><span class="keywordtype">void</span> test (uint8_t *ptr) {</div>
+<div class="line"> <a class="code" href="group__comp__cntrl__gr.html#ga27fd2ec6767ca1ab66d36b5cc0103268">__UNALIGNED_UINT32</a>(ptr) = val32;</div>
+<div class="line">}</div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="ga254322c344d954c9f829719a50a88e87"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define __UNALIGNED_UINT32_READ</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Defines a pointer to a uint32_t from an address that does not need to be aligned. This can then be used in read operations. The compiler will generate the appropriate access (aligned or non-aligned) depending on the underlying Arm processor core and compiler settings.</p>
+<p><b> Code Example:</b> </p>
+<div class="fragment"><div class="line">uint32_t val32;</div>
+<div class="line"> </div>
+<div class="line"><span class="keywordtype">void</span> test (uint8_t *ptr) {</div>
+<div class="line"> val32 = <a class="code" href="group__comp__cntrl__gr.html#ga254322c344d954c9f829719a50a88e87">__UNALIGNED_UINT32_READ</a>(ptr);</div>
+<div class="line">}</div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="gabb2180285c417aa9120a360c51f64b4b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define __UNALIGNED_UINT32_WRITE</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Defines a pointer to a uint32_t from an address that does not need to be aligned. This can then be used in write operations. The compiler will generate the appropriate access (aligned or non-aligned) depending on the underlying Arm processor core and compiler settings.</p>
+<p><b> Code Example:</b> </p>
+<div class="fragment"><div class="line">uint32_t val32 = 0U;</div>
+<div class="line"> </div>
+<div class="line"><span class="keywordtype">void</span> test (uint8_t *ptr) {</div>
+<div class="line"> <a class="code" href="group__comp__cntrl__gr.html#gabb2180285c417aa9120a360c51f64b4b">__UNALIGNED_UINT32_WRITE</a>(ptr, val32);</div>
+<div class="line">}</div>
+</div><!-- fragment -->
+</div>
+</div>
<a class="anchor" id="ga3e40e4c553fc11588f7a4c2a19e789e0"></a>
<div class="memitem">
<div class="memproto">
@@ -325,7 +482,7 @@ Macros</h2></td></tr>
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="footer">Generated on Wed Aug 1 2018 17:12:10 for CMSIS-Core (Cortex-A) by Arm Ltd. All rights reserved.
+ <li class="footer">Generated on Wed Jul 10 2019 15:20:27 for CMSIS-Core (Cortex-A) Version 1.1.4 by Arm Ltd. All rights reserved.
<!--
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6