diff options
Diffstat (limited to 'docs/Core_A/html/group__comp__cntrl__gr.html')
-rw-r--r-- | docs/Core_A/html/group__comp__cntrl__gr.html | 161 |
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) -  <span id="projectnumber">Version 1.1.2</span> +  <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 </td><td class="memItemRight" valign="bottom"><a class="el" href="group__comp__cntrl__gr.html#gaba87361bfad2ae52cfe2f40c1a1dbf9c">__STATIC_INLINE</a>   static __inline</td></tr> <tr class="memdesc:gaba87361bfad2ae52cfe2f40c1a1dbf9c"><td class="mdescLeft"> </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"> </td></tr> +<tr class="memitem:gab904513442afdf77d4f8c74f23cbb040"><td class="memItemLeft" align="right" valign="top">#define </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"> </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"> </td></tr> <tr class="memitem:ga153a4a31b276a9758959580538720a51"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__comp__cntrl__gr.html#ga153a4a31b276a9758959580538720a51">__NO_RETURN</a>   __declspec(noreturn)</td></tr> <tr class="memdesc:ga153a4a31b276a9758959580538720a51"><td class="mdescLeft"> </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"> </td></tr> @@ -146,6 +149,24 @@ Macros</h2></td></tr> <tr class="memitem:gabe8996d3d985ee1529475443cc635bf1"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__comp__cntrl__gr.html#gabe8996d3d985ee1529475443cc635bf1">__PACKED</a>   __attribute__((packed))</td></tr> <tr class="memdesc:gabe8996d3d985ee1529475443cc635bf1"><td class="mdescLeft"> </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"> </td></tr> +<tr class="memitem:ga4dbb70fab85207c27b581ecb6532b314"><td class="memItemLeft" align="right" valign="top">#define </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"> </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"> </td></tr> +<tr class="memitem:ga27fd2ec6767ca1ab66d36b5cc0103268"><td class="memItemLeft" align="right" valign="top">#define </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"> </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"> </td></tr> +<tr class="memitem:gabe8693a7200e573101551d49a1772fb9"><td class="memItemLeft" align="right" valign="top">#define </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"> </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"> </td></tr> +<tr class="memitem:gadb9cd73446f7e11e92383cd327a23407"><td class="memItemLeft" align="right" valign="top">#define </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"> </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"> </td></tr> +<tr class="memitem:ga254322c344d954c9f829719a50a88e87"><td class="memItemLeft" align="right" valign="top">#define </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"> </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"> </td></tr> +<tr class="memitem:gabb2180285c417aa9120a360c51f64b4b"><td class="memItemLeft" align="right" valign="top">#define </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"> </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"> </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->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 |