MCB1700_Welcome/Doxygen/html/portable_8h_source.html

350 lines
56 KiB
HTML

<!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.20"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Labor04: portable.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="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.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">Labor04
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.20 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<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&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_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&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('portable_8h_source.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="headertitle">
<div class="title">portable.h</div> </div>
</div><!--header-->
<div class="contents">
<a href="portable_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>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * FreeRTOS Kernel V10.0.0</span></div>
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> * Copyright (C) 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.</span></div>
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * Permission is hereby granted, free of charge, to any person obtaining a copy of</span></div>
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * this software and associated documentation files (the &quot;Software&quot;), to deal in</span></div>
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * the Software without restriction, including without limitation the rights to</span></div>
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of</span></div>
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * the Software, and to permit persons to whom the Software is furnished to do so,</span></div>
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * subject to the following conditions:</span></div>
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * The above copyright notice and this permission notice shall be included in all</span></div>
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> * copies or substantial portions of the Software. If you wish to use our Amazon</span></div>
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * FreeRTOS name, please do so in a fair use way that does not cause confusion.</span></div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> * THE SOFTWARE IS PROVIDED &quot;AS IS&quot;, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR</span></div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment"> * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS</span></div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment"> * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR</span></div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment"> * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER</span></div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment"> * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN</span></div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment"> * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</span></div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment"> * http://www.FreeRTOS.org</span></div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment"> * http://aws.amazon.com/freertos</span></div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment"> * 1 tab == 4 spaces!</span></div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; </div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="comment">/*-----------------------------------------------------------</span></div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="comment"> * Portable layer API. Each function must be defined for each port.</span></div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="comment"> *----------------------------------------------------------*/</span></div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; </div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#ifndef PORTABLE_H</span></div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#define PORTABLE_H</span></div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; </div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="comment">/* Each FreeRTOS port has a unique portmacro.h header file. Originally a</span></div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="comment">pre-processor definition was used to ensure the pre-processor found the correct</span></div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="comment">portmacro.h file for the port being used. That scheme was deprecated in favour</span></div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="comment">of setting the compiler&#39;s include path such that it found the correct</span></div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="comment">portmacro.h file - removing the need for the constant and allowing the</span></div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="comment">portmacro.h file to be located anywhere in relation to the port being used.</span></div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="comment">Purely for reasons of backward compatibility the old method is still valid, but</span></div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="comment">to make it clear that new projects should not use it, support for the port</span></div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="comment">specific constants has been moved into the deprecated_definitions.h header</span></div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="comment">file. */</span></div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="deprecated__definitions_8h.html">deprecated_definitions.h</a>&quot;</span></div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; </div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="comment">/* If portENTER_CRITICAL is not defined then including deprecated_definitions.h</span></div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="comment">did not result in a portmacro.h header file being included - and it should be</span></div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="comment">included here. In this case the path to the correct portmacro.h header file</span></div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="comment">must be set in the compiler&#39;s include path. */</span></div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="preprocessor">#ifndef portENTER_CRITICAL</span></div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="portmacro_8h.html">portmacro.h</a>&quot;</span></div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; </div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="preprocessor">#if portBYTE_ALIGNMENT == 32</span></div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="preprocessor">#define portBYTE_ALIGNMENT_MASK ( 0x001f )</span></div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; </div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="preprocessor">#if portBYTE_ALIGNMENT == 16</span></div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="preprocessor">#define portBYTE_ALIGNMENT_MASK ( 0x000f )</span></div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; </div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="preprocessor">#if portBYTE_ALIGNMENT == 8</span></div>
<div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="portable_8h.html#a92f6cfc08bf7459db3227a18ae8b6b59"> 65</a></span>&#160;<span class="preprocessor">#define portBYTE_ALIGNMENT_MASK ( 0x0007 )</span></div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; </div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;<span class="preprocessor">#if portBYTE_ALIGNMENT == 4</span></div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<span class="preprocessor">#define portBYTE_ALIGNMENT_MASK ( 0x0003 )</span></div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; </div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;<span class="preprocessor">#if portBYTE_ALIGNMENT == 2</span></div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;<span class="preprocessor">#define portBYTE_ALIGNMENT_MASK ( 0x0001 )</span></div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; </div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;<span class="preprocessor">#if portBYTE_ALIGNMENT == 1</span></div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;<span class="preprocessor">#define portBYTE_ALIGNMENT_MASK ( 0x0000 )</span></div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; </div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;<span class="preprocessor">#ifndef portBYTE_ALIGNMENT_MASK</span></div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;<span class="preprocessor">#error &quot;Invalid portBYTE_ALIGNMENT definition&quot;</span></div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; </div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;<span class="preprocessor">#ifndef portNUM_CONFIGURABLE_REGIONS</span></div>
<div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="portable_8h.html#aca7e1a8a568a38b74cc9db10c8efebda"> 85</a></span>&#160;<span class="preprocessor">#define portNUM_CONFIGURABLE_REGIONS 1</span></div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; </div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;<span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> {</div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; </div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="mpu__wrappers_8h.html">mpu_wrappers.h</a>&quot;</span></div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; </div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;<span class="comment"> * Setup the stack of a new task so it is ready to be placed under the</span></div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;<span class="comment"> * scheduler control. The registers have to be placed on the stack in</span></div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;<span class="comment"> * the order that the port expects to find them.</span></div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;<span class="preprocessor">#if( portUSING_MPU_WRAPPERS == 1 )</span></div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;<a class="code" href="portmacro_8h.html#a84e9a8ba132feed0b2401c1f4e2ac63c">StackType_t</a> *<a class="code" href="portable_8h.html#abb736501b227deb79f234b30eaf090e3">pxPortInitialiseStack</a>( <a class="code" href="portmacro_8h.html#a84e9a8ba132feed0b2401c1f4e2ac63c">StackType_t</a> *pxTopOfStack, <a class="code" href="projdefs_8h.html#a9b32502ff92c255c686dacde53c1cba0">TaskFunction_t</a> pxCode, <span class="keywordtype">void</span> *pvParameters, <a class="code" href="portmacro_8h.html#a46fb21e00ae0729d7515c0fbf2269796">BaseType_t</a> xRunPrivileged ) <a class="code" href="mpu__wrappers_8h.html#a4785c4f4a8c04b835139dcc2a6682078">PRIVILEGED_FUNCTION</a>;</div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;<span class="preprocessor">#else</span></div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;<a class="code" href="portmacro_8h.html#a84e9a8ba132feed0b2401c1f4e2ac63c">StackType_t</a> *<a class="code" href="portable_8h.html#abb736501b227deb79f234b30eaf090e3">pxPortInitialiseStack</a>( <a class="code" href="portmacro_8h.html#a84e9a8ba132feed0b2401c1f4e2ac63c">StackType_t</a> *pxTopOfStack, <a class="code" href="projdefs_8h.html#a9b32502ff92c255c686dacde53c1cba0">TaskFunction_t</a> pxCode, <span class="keywordtype">void</span> *pvParameters ) <a class="code" href="mpu__wrappers_8h.html#a4785c4f4a8c04b835139dcc2a6682078">PRIVILEGED_FUNCTION</a>;</div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; </div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;<span class="comment">/* Used by heap_5.c. */</span></div>
<div class="line"><a name="l00107"></a><span class="lineno"><a class="line" href="struct_heap_region.html"> 107</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct_heap_region.html">HeapRegion</a></div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;{</div>
<div class="line"><a name="l00109"></a><span class="lineno"><a class="line" href="struct_heap_region.html#a9d602a97428bd849298f05391a13968e"> 109</a></span>&#160; uint8_t *<a class="code" href="struct_heap_region.html#a9d602a97428bd849298f05391a13968e">pucStartAddress</a>;</div>
<div class="line"><a name="l00110"></a><span class="lineno"><a class="line" href="struct_heap_region.html#ab0ed41976d9901576b117bc7981f6c98"> 110</a></span>&#160; <span class="keywordtype">size_t</span> <a class="code" href="struct_heap_region.html#ab0ed41976d9901576b117bc7981f6c98">xSizeInBytes</a>;</div>
<div class="line"><a name="l00111"></a><span class="lineno"><a class="line" href="portable_8h.html#acce46e1bf21496c11f2b1e49ded2882b"> 111</a></span>&#160;} <a class="code" href="portable_8h.html#acce46e1bf21496c11f2b1e49ded2882b">HeapRegion_t</a>;</div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; </div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;<span class="comment"> * Used to define multiple heap regions for use by heap_5.c. This function</span></div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;<span class="comment"> * must be called before any calls to pvPortMalloc() - not creating a task,</span></div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;<span class="comment"> * queue, semaphore, mutex, software timer, event group, etc. will result in</span></div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;<span class="comment"> * pvPortMalloc being called.</span></div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;<span class="comment"> * pxHeapRegions passes in an array of HeapRegion_t structures - each of which</span></div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;<span class="comment"> * defines a region of memory that can be used as the heap. The array is</span></div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;<span class="comment"> * terminated by a HeapRegions_t structure that has a size of 0. The region</span></div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;<span class="comment"> * with the lowest start address must appear first in the array.</span></div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00124"></a><span class="lineno"><a class="line" href="portable_8h.html#a4f3a75726f448c4170d9d6565bdef636"> 124</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="portable_8h.html#a4f3a75726f448c4170d9d6565bdef636">vPortDefineHeapRegions</a>( <span class="keyword">const</span> <a class="code" href="struct_heap_region.html">HeapRegion_t</a> * <span class="keyword">const</span> pxHeapRegions ) <a class="code" href="mpu__wrappers_8h.html#a4785c4f4a8c04b835139dcc2a6682078">PRIVILEGED_FUNCTION</a>;</div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; </div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; </div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;<span class="comment"> * Map to the memory management routines required for the port.</span></div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;<span class="keywordtype">void</span> *<a class="code" href="portable_8h.html#a237d63f90b28e0950bd86f76815cd6e3">pvPortMalloc</a>( <span class="keywordtype">size_t</span> xSize ) <a class="code" href="mpu__wrappers_8h.html#a4785c4f4a8c04b835139dcc2a6682078">PRIVILEGED_FUNCTION</a>;</div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;<span class="keywordtype">void</span> <a class="code" href="portable_8h.html#a735cd3085bb7ba06ff8e47565bfd7016">vPortFree</a>( <span class="keywordtype">void</span> *pv ) <a class="code" href="mpu__wrappers_8h.html#a4785c4f4a8c04b835139dcc2a6682078">PRIVILEGED_FUNCTION</a>;</div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;<span class="keywordtype">void</span> <a class="code" href="portable_8h.html#a846b5ebdaf2b51fe707efb4a0974f676">vPortInitialiseBlocks</a>( <span class="keywordtype">void</span> ) <a class="code" href="mpu__wrappers_8h.html#a4785c4f4a8c04b835139dcc2a6682078">PRIVILEGED_FUNCTION</a>;</div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;<span class="keywordtype">size_t</span> <a class="code" href="portable_8h.html#a8f72fbee5c25c956bda528299ce6dd02">xPortGetFreeHeapSize</a>( <span class="keywordtype">void</span> ) <a class="code" href="mpu__wrappers_8h.html#a4785c4f4a8c04b835139dcc2a6682078">PRIVILEGED_FUNCTION</a>;</div>
<div class="line"><a name="l00134"></a><span class="lineno"><a class="line" href="portable_8h.html#a6195704430323f2e97ea4deab7a4eece"> 134</a></span>&#160;<span class="keywordtype">size_t</span> <a class="code" href="portable_8h.html#a6195704430323f2e97ea4deab7a4eece">xPortGetMinimumEverFreeHeapSize</a>( <span class="keywordtype">void</span> ) <a class="code" href="mpu__wrappers_8h.html#a4785c4f4a8c04b835139dcc2a6682078">PRIVILEGED_FUNCTION</a>;</div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; </div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;<span class="comment"> * Setup the hardware ready for the scheduler to take control. This generally</span></div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;<span class="comment"> * sets up a tick interrupt and sets timers for the correct tick frequency.</span></div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;<a class="code" href="portmacro_8h.html#a46fb21e00ae0729d7515c0fbf2269796">BaseType_t</a> <a class="code" href="portable_8h.html#a4f3b1bb7590996f2fa1e0456dda961ff">xPortStartScheduler</a>( <span class="keywordtype">void</span> ) <a class="code" href="mpu__wrappers_8h.html#a4785c4f4a8c04b835139dcc2a6682078">PRIVILEGED_FUNCTION</a>;</div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; </div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;<span class="comment"> * Undo any hardware/ISR setup that was performed by xPortStartScheduler() so</span></div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;<span class="comment"> * the hardware is left in its original condition after the scheduler stops</span></div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;<span class="comment"> * executing.</span></div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;<span class="keywordtype">void</span> <a class="code" href="portable_8h.html#aa356b7baaa9089490321aa919542dd6c">vPortEndScheduler</a>( <span class="keywordtype">void</span> ) <a class="code" href="mpu__wrappers_8h.html#a4785c4f4a8c04b835139dcc2a6682078">PRIVILEGED_FUNCTION</a>;</div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; </div>
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;<span class="comment"> * The structures and methods of manipulating the MPU are contained within the</span></div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;<span class="comment"> * port layer.</span></div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;<span class="comment"> * Fills the xMPUSettings structure with the memory region information</span></div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;<span class="comment"> * contained in xRegions.</span></div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;<span class="preprocessor">#if( portUSING_MPU_WRAPPERS == 1 )</span></div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;<span class="keyword">struct </span><a class="code" href="structx_m_e_m_o_r_y___r_e_g_i_o_n.html">xMEMORY_REGION</a>;</div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;<span class="keywordtype">void</span> vPortStoreTaskMPUSettings( xMPU_SETTINGS *xMPUSettings, <span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="structx_m_e_m_o_r_y___r_e_g_i_o_n.html">xMEMORY_REGION</a> * <span class="keyword">const</span> xRegions, <a class="code" href="portmacro_8h.html#a84e9a8ba132feed0b2401c1f4e2ac63c">StackType_t</a> *pxBottomOfStack, uint32_t ulStackDepth ) <a class="code" href="mpu__wrappers_8h.html#a4785c4f4a8c04b835139dcc2a6682078">PRIVILEGED_FUNCTION</a>;</div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; </div>
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;}</div>
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; </div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* PORTABLE_H */</span><span class="preprocessor"></span></div>
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; </div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<div class="ttc" id="aport_8c_html_ade5a8c6666e7413a0355cc252029c5c6"><div class="ttname"><a href="port_8c.html#ade5a8c6666e7413a0355cc252029c5c6">xPortStartScheduler</a></div><div class="ttdeci">BaseType_t xPortStartScheduler(void)</div><div class="ttdef"><b>Definition:</b> port.c:252</div></div>
<div class="ttc" id="a_main_8c_html_a840291bc02cba5474a4cb46a9b9566fe"><div class="ttname"><a href="_main_8c.html#a840291bc02cba5474a4cb46a9b9566fe">main</a></div><div class="ttdeci">int main(void)</div><div class="ttdoc">app entry point</div><div class="ttdef"><b>Definition:</b> Main.c:26</div></div>
<div class="ttc" id="atask_8h_html"><div class="ttname"><a href="task_8h.html">task.h</a></div></div>
<div class="ttc" id="a_free_r_t_o_s_config_8h_html_a2f0258dd1e3b877e5bc013be54c2db6a"><div class="ttname"><a href="_free_r_t_o_s_config_8h.html#a2f0258dd1e3b877e5bc013be54c2db6a">configTICK_RATE_HZ</a></div><div class="ttdeci">#define configTICK_RATE_HZ</div><div class="ttdef"><b>Definition:</b> FreeRTOSConfig.h:29</div></div>
<div class="ttc" id="aport_8c_html_a4e6b17b7b6e1a92564afdeff7e9dba91"><div class="ttname"><a href="port_8c.html#a4e6b17b7b6e1a92564afdeff7e9dba91">xPortPendSVHandler</a></div><div class="ttdeci">void xPortPendSVHandler(void)</div><div class="ttdef"><b>Definition:</b> port.c:375</div></div>
<div class="ttc" id="atask_8h_html_a8dda6cb26bb158dd9636873135e63912"><div class="ttname"><a href="task_8h.html#a8dda6cb26bb158dd9636873135e63912">vTaskStepTick</a></div><div class="ttdeci">void vTaskStepTick(const TickType_t xTicksToJump) PRIVILEGED_FUNCTION</div></div>
<div class="ttc" id="astruct_heap_region_html_a9d602a97428bd849298f05391a13968e"><div class="ttname"><a href="struct_heap_region.html#a9d602a97428bd849298f05391a13968e">HeapRegion::pucStartAddress</a></div><div class="ttdeci">uint8_t * pucStartAddress</div><div class="ttdef"><b>Definition:</b> portable.h:109</div></div>
<div class="ttc" id="aport_8c_html_aeb00c00ae5a1b5c39ef0d008cdc2aabe"><div class="ttname"><a href="port_8c.html#aeb00c00ae5a1b5c39ef0d008cdc2aabe">portNVIC_SYSTICK_INT_BIT</a></div><div class="ttdeci">#define portNVIC_SYSTICK_INT_BIT</div><div class="ttdef"><b>Definition:</b> port.c:70</div></div>
<div class="ttc" id="aportable_8h_html_a6195704430323f2e97ea4deab7a4eece"><div class="ttname"><a href="portable_8h.html#a6195704430323f2e97ea4deab7a4eece">xPortGetMinimumEverFreeHeapSize</a></div><div class="ttdeci">size_t xPortGetMinimumEverFreeHeapSize(void) PRIVILEGED_FUNCTION</div></div>
<div class="ttc" id="aportmacro_8h_html_a9021d55b208c59fc725af4e7c330a417"><div class="ttname"><a href="portmacro_8h.html#a9021d55b208c59fc725af4e7c330a417">vPortRaiseBASEPRI</a></div><div class="ttdeci">static portFORCE_INLINE void vPortRaiseBASEPRI(void)</div><div class="ttdef"><b>Definition:</b> portmacro.h:178</div></div>
<div class="ttc" id="aportmacro_8h_html_a6758106ef1bbb877377317138834427e"><div class="ttname"><a href="portmacro_8h.html#a6758106ef1bbb877377317138834427e">vPortClearBASEPRIFromISR</a></div><div class="ttdeci">static portFORCE_INLINE void vPortClearBASEPRIFromISR(void)</div><div class="ttdef"><b>Definition:</b> portmacro.h:193</div></div>
<div class="ttc" id="aport_8c_html_aa62e48aea4d4d2ad3426bd1243dbc72a"><div class="ttname"><a href="port_8c.html#aa62e48aea4d4d2ad3426bd1243dbc72a">prvStartFirstTask</a></div><div class="ttdeci">static void prvStartFirstTask(void)</div><div class="ttdef"><b>Definition:</b> port.c:226</div></div>
<div class="ttc" id="aport_8c_html_a31e85c2138ccee8dc7a8397f0c5cf44c"><div class="ttname"><a href="port_8c.html#a31e85c2138ccee8dc7a8397f0c5cf44c">portPRIGROUP_SHIFT</a></div><div class="ttdeci">#define portPRIGROUP_SHIFT</div><div class="ttdef"><b>Definition:</b> port.c:87</div></div>
<div class="ttc" id="ampu__wrappers_8h_html"><div class="ttname"><a href="mpu__wrappers_8h.html">mpu_wrappers.h</a></div></div>
<div class="ttc" id="astruct_heap_region_html_ab0ed41976d9901576b117bc7981f6c98"><div class="ttname"><a href="struct_heap_region.html#ab0ed41976d9901576b117bc7981f6c98">HeapRegion::xSizeInBytes</a></div><div class="ttdeci">size_t xSizeInBytes</div><div class="ttdef"><b>Definition:</b> portable.h:110</div></div>
<div class="ttc" id="aport_8c_html_a71a0b2492ed73217b5864c1e3ba8c9be"><div class="ttname"><a href="port_8c.html#a71a0b2492ed73217b5864c1e3ba8c9be">portNVIC_PENDSV_PRI</a></div><div class="ttdeci">#define portNVIC_PENDSV_PRI</div><div class="ttdef"><b>Definition:</b> port.c:76</div></div>
<div class="ttc" id="astructx_m_e_m_o_r_y___r_e_g_i_o_n_html"><div class="ttname"><a href="structx_m_e_m_o_r_y___r_e_g_i_o_n.html">xMEMORY_REGION</a></div><div class="ttdef"><b>Definition:</b> task.h:104</div></div>
<div class="ttc" id="aport_8c_html_a813e8227aedfc6bd83c66c4a9b8e4f41"><div class="ttname"><a href="port_8c.html#a813e8227aedfc6bd83c66c4a9b8e4f41">prvTaskExitError</a></div><div class="ttdeci">static void prvTaskExitError(void)</div><div class="ttdef"><b>Definition:</b> port.c:195</div></div>
<div class="ttc" id="aportmacro_8h_html_a6e3fcd078a96185dea9b8ed5dd10db44"><div class="ttname"><a href="portmacro_8h.html#a6e3fcd078a96185dea9b8ed5dd10db44">portSY_FULL_READ_WRITE</a></div><div class="ttdeci">#define portSY_FULL_READ_WRITE</div><div class="ttdef"><b>Definition:</b> portmacro.h:79</div></div>
<div class="ttc" id="a_free_r_t_o_s_config_8h_html_ac42cff506ad61d4174fa23e952e3225e"><div class="ttname"><a href="_free_r_t_o_s_config_8h.html#ac42cff506ad61d4174fa23e952e3225e">configKERNEL_INTERRUPT_PRIORITY</a></div><div class="ttdeci">#define configKERNEL_INTERRUPT_PRIORITY</div><div class="ttdef"><b>Definition:</b> FreeRTOSConfig.h:20</div></div>
<div class="ttc" id="aport_8c_html_a2ed3554a3de09a3bd09d396ee081ab69"><div class="ttname"><a href="port_8c.html#a2ed3554a3de09a3bd09d396ee081ab69">vPortEnterCritical</a></div><div class="ttdeci">void vPortEnterCritical(void)</div><div class="ttdef"><b>Definition:</b> port.c:347</div></div>
<div class="ttc" id="aport_8c_html_ae4ddaa528bc05260d1a5a607c8a00d9f"><div class="ttname"><a href="port_8c.html#ae4ddaa528bc05260d1a5a607c8a00d9f">portNVIC_SYSTICK_PRI</a></div><div class="ttdeci">#define portNVIC_SYSTICK_PRI</div><div class="ttdef"><b>Definition:</b> port.c:77</div></div>
<div class="ttc" id="ampu__wrappers_8h_html_a4785c4f4a8c04b835139dcc2a6682078"><div class="ttname"><a href="mpu__wrappers_8h.html#a4785c4f4a8c04b835139dcc2a6682078">PRIVILEGED_FUNCTION</a></div><div class="ttdeci">#define PRIVILEGED_FUNCTION</div><div class="ttdef"><b>Definition:</b> mpu_wrappers.h:174</div></div>
<div class="ttc" id="aport_8c_html_a6fb185b6f87a37fcb11be7f5f7f74c3c"><div class="ttname"><a href="port_8c.html#a6fb185b6f87a37fcb11be7f5f7f74c3c">portNVIC_SYSTICK_LOAD_REG</a></div><div class="ttdeci">#define portNVIC_SYSTICK_LOAD_REG</div><div class="ttdef"><b>Definition:</b> port.c:66</div></div>
<div class="ttc" id="aportmacro_8h_html_aefd025907402b0b863d5012673d5036e"><div class="ttname"><a href="portmacro_8h.html#aefd025907402b0b863d5012673d5036e">vPortSuppressTicksAndSleep</a></div><div class="ttdeci">void vPortSuppressTicksAndSleep(TickType_t xExpectedIdleTime)</div></div>
<div class="ttc" id="aportmacro_8h_html_aa69c48c6e902ce54f70886e6573c92a9"><div class="ttname"><a href="portmacro_8h.html#aa69c48c6e902ce54f70886e6573c92a9">TickType_t</a></div><div class="ttdeci">uint32_t TickType_t</div><div class="ttdef"><b>Definition:</b> portmacro.h:64</div></div>
<div class="ttc" id="aport_8c_html_a4c9342fc3940bcd756f344e3489a030e"><div class="ttname"><a href="port_8c.html#a4c9342fc3940bcd756f344e3489a030e">portNVIC_SYSTICK_ENABLE_BIT</a></div><div class="ttdeci">#define portNVIC_SYSTICK_ENABLE_BIT</div><div class="ttdef"><b>Definition:</b> port.c:71</div></div>
<div class="ttc" id="aprojdefs_8h_html_aa56260e937e7e203026707e5ba944273"><div class="ttname"><a href="projdefs_8h.html#aa56260e937e7e203026707e5ba944273">pdFALSE</a></div><div class="ttdeci">#define pdFALSE</div><div class="ttdef"><b>Definition:</b> projdefs.h:45</div></div>
<div class="ttc" id="aport_8c_html_a238a0e7e04cbd58af721b226071789fc"><div class="ttname"><a href="port_8c.html#a238a0e7e04cbd58af721b226071789fc">vPortGetIPSR</a></div><div class="ttdeci">__asm uint32_t vPortGetIPSR(void)</div><div class="ttdef"><b>Definition:</b> port.c:630</div></div>
<div class="ttc" id="aportable_8h_html_a735cd3085bb7ba06ff8e47565bfd7016"><div class="ttname"><a href="portable_8h.html#a735cd3085bb7ba06ff8e47565bfd7016">vPortFree</a></div><div class="ttdeci">void vPortFree(void *pv) PRIVILEGED_FUNCTION</div><div class="ttdef"><b>Definition:</b> heap_1.c:123</div></div>
<div class="ttc" id="aportmacro_8h_html_a646f89d4298e4f5afd522202b11cb2e6"><div class="ttname"><a href="portmacro_8h.html#a646f89d4298e4f5afd522202b11cb2e6">UBaseType_t</a></div><div class="ttdeci">unsigned long UBaseType_t</div><div class="ttdef"><b>Definition:</b> portmacro.h:58</div></div>
<div class="ttc" id="a_free_r_t_o_s_config_8h_html_aa68082df879e6fc96bcb9b26513639e7"><div class="ttname"><a href="_free_r_t_o_s_config_8h.html#aa68082df879e6fc96bcb9b26513639e7">configCPU_CLOCK_HZ</a></div><div class="ttdeci">#define configCPU_CLOCK_HZ</div><div class="ttdef"><b>Definition:</b> FreeRTOSConfig.h:15</div></div>
<div class="ttc" id="atask_8h_html_afd168a210ae0f2fb0fca242860a8178eaba7b1a394c63faa14a85dbb191f1c6f9"><div class="ttname"><a href="task_8h.html#afd168a210ae0f2fb0fca242860a8178eaba7b1a394c63faa14a85dbb191f1c6f9">eAbortSleep</a></div><div class="ttdeci">@ eAbortSleep</div><div class="ttdef"><b>Definition:</b> task.h:145</div></div>
<div class="ttc" id="a_free_r_t_o_s_config_8h_html_a54bfc31c410ee452577a25a4552c3704"><div class="ttname"><a href="_free_r_t_o_s_config_8h.html#a54bfc31c410ee452577a25a4552c3704">configMAX_SYSCALL_INTERRUPT_PRIORITY</a></div><div class="ttdeci">#define configMAX_SYSCALL_INTERRUPT_PRIORITY</div><div class="ttdef"><b>Definition:</b> FreeRTOSConfig.h:24</div></div>
<div class="ttc" id="aportmacro_8h_html_a6e3d10ee1a0734a647ca192523c2cfc1"><div class="ttname"><a href="portmacro_8h.html#a6e3d10ee1a0734a647ca192523c2cfc1">portDISABLE_INTERRUPTS</a></div><div class="ttdeci">#define portDISABLE_INTERRUPTS()</div><div class="ttdef"><b>Definition:</b> portmacro.h:105</div></div>
<div class="ttc" id="aport_8c_html_af76f3c0b44c5b5c06fc046a4ee1a6423"><div class="ttname"><a href="port_8c.html#af76f3c0b44c5b5c06fc046a4ee1a6423">vPortEndScheduler</a></div><div class="ttdeci">void vPortEndScheduler(void)</div><div class="ttdef"><b>Definition:</b> port.c:339</div></div>
<div class="ttc" id="aportable_8h_html_a8f72fbee5c25c956bda528299ce6dd02"><div class="ttname"><a href="portable_8h.html#a8f72fbee5c25c956bda528299ce6dd02">xPortGetFreeHeapSize</a></div><div class="ttdeci">size_t xPortGetFreeHeapSize(void) PRIVILEGED_FUNCTION</div><div class="ttdef"><b>Definition:</b> heap_1.c:142</div></div>
<div class="ttc" id="aportmacro_8h_html_a16830bf8349e14cdeed05193af234d5e"><div class="ttname"><a href="portmacro_8h.html#a16830bf8349e14cdeed05193af234d5e">portNVIC_PENDSVSET_BIT</a></div><div class="ttdeci">#define portNVIC_PENDSVSET_BIT</div><div class="ttdef"><b>Definition:</b> portmacro.h:96</div></div>
<div class="ttc" id="aport_8c_html_a6a8cc3be38f6a681ffcf3a895970853f"><div class="ttname"><a href="port_8c.html#a6a8cc3be38f6a681ffcf3a895970853f">portMAX_8_BIT_VALUE</a></div><div class="ttdeci">#define portMAX_8_BIT_VALUE</div><div class="ttdef"><b>Definition:</b> port.c:83</div></div>
<div class="ttc" id="aport_8c_html_a474fbbb58ea661a1557f05adc41120c1"><div class="ttname"><a href="port_8c.html#a474fbbb58ea661a1557f05adc41120c1">pxPortInitialiseStack</a></div><div class="ttdeci">StackType_t * pxPortInitialiseStack(StackType_t *pxTopOfStack, TaskFunction_t pxCode, void *pvParameters)</div><div class="ttdef"><b>Definition:</b> port.c:176</div></div>
<div class="ttc" id="aportable_8h_html_a4f3a75726f448c4170d9d6565bdef636"><div class="ttname"><a href="portable_8h.html#a4f3a75726f448c4170d9d6565bdef636">vPortDefineHeapRegions</a></div><div class="ttdeci">void vPortDefineHeapRegions(const HeapRegion_t *const pxHeapRegions) PRIVILEGED_FUNCTION</div></div>
<div class="ttc" id="aportmacro_8h_html_a84e9a8ba132feed0b2401c1f4e2ac63c"><div class="ttname"><a href="portmacro_8h.html#a84e9a8ba132feed0b2401c1f4e2ac63c">StackType_t</a></div><div class="ttdeci">portSTACK_TYPE StackType_t</div><div class="ttdef"><b>Definition:</b> portmacro.h:56</div></div>
<div class="ttc" id="aport_8c_html_a859e86b6143d6bc4cf96b2867f408c75"><div class="ttname"><a href="port_8c.html#a859e86b6143d6bc4cf96b2867f408c75">vPortSVCHandler</a></div><div class="ttdeci">void vPortSVCHandler(void)</div><div class="ttdef"><b>Definition:</b> port.c:209</div></div>
<div class="ttc" id="atask_8h_html_ad185d5a451380c4040888620d9a92ec6"><div class="ttname"><a href="task_8h.html#ad185d5a451380c4040888620d9a92ec6">eTaskConfirmSleepModeStatus</a></div><div class="ttdeci">eSleepModeStatus eTaskConfirmSleepModeStatus(void) PRIVILEGED_FUNCTION</div></div>
<div class="ttc" id="aport_8c_html_aa6c52b1b434ca2a708c56fdee02e7946"><div class="ttname"><a href="port_8c.html#aa6c52b1b434ca2a708c56fdee02e7946">configSYSTICK_CLOCK_HZ</a></div><div class="ttdeci">#define configSYSTICK_CLOCK_HZ</div><div class="ttdef"><b>Definition:</b> port.c:46</div></div>
<div class="ttc" id="aport_8c_html_af1ef0b7e839d2e30cc6ef9cdc93b8801"><div class="ttname"><a href="port_8c.html#af1ef0b7e839d2e30cc6ef9cdc93b8801">uxCriticalNesting</a></div><div class="ttdeci">static UBaseType_t uxCriticalNesting</div><div class="ttdef"><b>Definition:</b> port.c:135</div></div>
<div class="ttc" id="aport_8c_html_a78100b2d36913d0b45565be8975e5de8"><div class="ttname"><a href="port_8c.html#a78100b2d36913d0b45565be8975e5de8">xPortSysTickHandler</a></div><div class="ttdeci">void xPortSysTickHandler(void)</div><div class="ttdef"><b>Definition:</b> port.c:412</div></div>
<div class="ttc" id="aprojdefs_8h_html_a9b32502ff92c255c686dacde53c1cba0"><div class="ttname"><a href="projdefs_8h.html#a9b32502ff92c255c686dacde53c1cba0">TaskFunction_t</a></div><div class="ttdeci">void(* TaskFunction_t)(void *)</div><div class="ttdef"><b>Definition:</b> projdefs.h:36</div></div>
<div class="ttc" id="a_free_r_t_o_s_8h_html"><div class="ttname"><a href="_free_r_t_o_s_8h.html">FreeRTOS.h</a></div></div>
<div class="ttc" id="aport_8c_html_a840264c4ada33651c41921488329f127"><div class="ttname"><a href="port_8c.html#a840264c4ada33651c41921488329f127">portNVIC_SYSTICK_CURRENT_VALUE_REG</a></div><div class="ttdeci">#define portNVIC_SYSTICK_CURRENT_VALUE_REG</div><div class="ttdef"><b>Definition:</b> port.c:67</div></div>
<div class="ttc" id="aport_8c_html_a5ee932503b5ba9d5a6125df7e7fc459b"><div class="ttname"><a href="port_8c.html#a5ee932503b5ba9d5a6125df7e7fc459b">portMISSED_COUNTS_FACTOR</a></div><div class="ttdeci">#define portMISSED_COUNTS_FACTOR</div><div class="ttdef"><b>Definition:</b> port.c:101</div></div>
<div class="ttc" id="aport_8c_html_a9a481ef8434703c3834dd1e701805853"><div class="ttname"><a href="port_8c.html#a9a481ef8434703c3834dd1e701805853">portVECTACTIVE_MASK</a></div><div class="ttdeci">#define portVECTACTIVE_MASK</div><div class="ttdef"><b>Definition:</b> port.c:90</div></div>
<div class="ttc" id="aport_8c_html_a9d076b8b45d4ab187668bb7b0c1f8d31"><div class="ttname"><a href="port_8c.html#a9d076b8b45d4ab187668bb7b0c1f8d31">portNVIC_SYSPRI2_REG</a></div><div class="ttdeci">#define portNVIC_SYSPRI2_REG</div><div class="ttdef"><b>Definition:</b> port.c:68</div></div>
<div class="ttc" id="aport_8c_html_a94a387a85f1ebbd3d23feceb63d995c5"><div class="ttname"><a href="port_8c.html#a94a387a85f1ebbd3d23feceb63d995c5">portNVIC_SYSTICK_CLK_BIT</a></div><div class="ttdeci">#define portNVIC_SYSTICK_CLK_BIT</div><div class="ttdef"><b>Definition:</b> port.c:48</div></div>
<div class="ttc" id="aportable_8h_html_acce46e1bf21496c11f2b1e49ded2882b"><div class="ttname"><a href="portable_8h.html#acce46e1bf21496c11f2b1e49ded2882b">HeapRegion_t</a></div><div class="ttdeci">struct HeapRegion HeapRegion_t</div></div>
<div class="ttc" id="aportmacro_8h_html_abc47e85a6befbb47961ad5ee7aa57173"><div class="ttname"><a href="portmacro_8h.html#abc47e85a6befbb47961ad5ee7aa57173">portENABLE_INTERRUPTS</a></div><div class="ttdeci">#define portENABLE_INTERRUPTS()</div><div class="ttdef"><b>Definition:</b> portmacro.h:106</div></div>
<div class="ttc" id="aport_8c_html_a062d03aca8ae932b4552a2aa19853b44"><div class="ttname"><a href="port_8c.html#a062d03aca8ae932b4552a2aa19853b44">portINITIAL_XPSR</a></div><div class="ttdeci">#define portINITIAL_XPSR</div><div class="ttdef"><b>Definition:</b> port.c:93</div></div>
<div class="ttc" id="a_free_r_t_o_s_8h_html_a55f848c10319c953bfcc456fc724cee1"><div class="ttname"><a href="_free_r_t_o_s_8h.html#a55f848c10319c953bfcc456fc724cee1">configPOST_SLEEP_PROCESSING</a></div><div class="ttdeci">#define configPOST_SLEEP_PROCESSING(x)</div><div class="ttdef"><b>Definition:</b> FreeRTOS.h:751</div></div>
<div class="ttc" id="aport_8c_html_a046cc13f73dad0c8a9cdd0504bc35a88"><div class="ttname"><a href="port_8c.html#a046cc13f73dad0c8a9cdd0504bc35a88">portTOP_BIT_OF_BYTE</a></div><div class="ttdeci">#define portTOP_BIT_OF_BYTE</div><div class="ttdef"><b>Definition:</b> port.c:84</div></div>
<div class="ttc" id="adeprecated__definitions_8h_html"><div class="ttname"><a href="deprecated__definitions_8h.html">deprecated_definitions.h</a></div></div>
<div class="ttc" id="aportable_8h_html_a237d63f90b28e0950bd86f76815cd6e3"><div class="ttname"><a href="portable_8h.html#a237d63f90b28e0950bd86f76815cd6e3">pvPortMalloc</a></div><div class="ttdeci">void * pvPortMalloc(size_t xSize) PRIVILEGED_FUNCTION</div><div class="ttdef"><b>Definition:</b> heap_1.c:71</div></div>
<div class="ttc" id="aportable_8h_html_a4f3b1bb7590996f2fa1e0456dda961ff"><div class="ttname"><a href="portable_8h.html#a4f3b1bb7590996f2fa1e0456dda961ff">xPortStartScheduler</a></div><div class="ttdeci">BaseType_t xPortStartScheduler(void) PRIVILEGED_FUNCTION</div><div class="ttdef"><b>Definition:</b> port.c:252</div></div>
<div class="ttc" id="aport_8c_html_a4649001ea4d29b80759e6eca4bba58eb"><div class="ttname"><a href="port_8c.html#a4649001ea4d29b80759e6eca4bba58eb">vPortSetupTimerInterrupt</a></div><div class="ttdeci">void vPortSetupTimerInterrupt(void)</div><div class="ttdef"><b>Definition:</b> port.c:607</div></div>
<div class="ttc" id="aportable_8h_html_abb736501b227deb79f234b30eaf090e3"><div class="ttname"><a href="portable_8h.html#abb736501b227deb79f234b30eaf090e3">pxPortInitialiseStack</a></div><div class="ttdeci">StackType_t * pxPortInitialiseStack(StackType_t *pxTopOfStack, TaskFunction_t pxCode, void *pvParameters) PRIVILEGED_FUNCTION</div><div class="ttdef"><b>Definition:</b> port.c:176</div></div>
<div class="ttc" id="aportmacro_8h_html_a46fb21e00ae0729d7515c0fbf2269796"><div class="ttname"><a href="portmacro_8h.html#a46fb21e00ae0729d7515c0fbf2269796">BaseType_t</a></div><div class="ttdeci">long BaseType_t</div><div class="ttdef"><b>Definition:</b> portmacro.h:57</div></div>
<div class="ttc" id="a_free_r_t_o_s_8h_html_a986fc0c49fdf4945edd7fb6701e04978"><div class="ttname"><a href="_free_r_t_o_s_8h.html#a986fc0c49fdf4945edd7fb6701e04978">configPRE_SLEEP_PROCESSING</a></div><div class="ttdeci">#define configPRE_SLEEP_PROCESSING(x)</div><div class="ttdef"><b>Definition:</b> FreeRTOS.h:747</div></div>
<div class="ttc" id="aport_8c_html_a9bf7ad0c574222fbbf0ad6ac5a387a11"><div class="ttname"><a href="port_8c.html#a9bf7ad0c574222fbbf0ad6ac5a387a11">portFIRST_USER_INTERRUPT_NUMBER</a></div><div class="ttdeci">#define portFIRST_USER_INTERRUPT_NUMBER</div><div class="ttdef"><b>Definition:</b> port.c:80</div></div>
<div class="ttc" id="aportable_8h_html_aa356b7baaa9089490321aa919542dd6c"><div class="ttname"><a href="portable_8h.html#aa356b7baaa9089490321aa919542dd6c">vPortEndScheduler</a></div><div class="ttdeci">void vPortEndScheduler(void) PRIVILEGED_FUNCTION</div><div class="ttdef"><b>Definition:</b> port.c:339</div></div>
<div class="ttc" id="aport_8c_html_a14e81b7d3d94bf8d192c05c06f82c8d8"><div class="ttname"><a href="port_8c.html#a14e81b7d3d94bf8d192c05c06f82c8d8">portMAX_24_BIT_NUMBER</a></div><div class="ttdeci">#define portMAX_24_BIT_NUMBER</div><div class="ttdef"><b>Definition:</b> port.c:96</div></div>
<div class="ttc" id="atasks_8c_html_acdecf2afe97343aba42b111bc6df9eea"><div class="ttname"><a href="tasks_8c.html#acdecf2afe97343aba42b111bc6df9eea">pxCurrentTCB</a></div><div class="ttdeci">PRIVILEGED_DATA TCB_t *volatile pxCurrentTCB</div><div class="ttdef"><b>Definition:</b> tasks.c:347</div></div>
<div class="ttc" id="aport_8c_html_abbfa60faa2116dee71c1923a4ec3aa4a"><div class="ttname"><a href="port_8c.html#abbfa60faa2116dee71c1923a4ec3aa4a">portMAX_PRIGROUP_BITS</a></div><div class="ttdeci">#define portMAX_PRIGROUP_BITS</div><div class="ttdef"><b>Definition:</b> port.c:85</div></div>
<div class="ttc" id="atask_8h_html_a978e25460ac35706f9ad30b46d9403d8"><div class="ttname"><a href="task_8h.html#a978e25460ac35706f9ad30b46d9403d8">xTaskIncrementTick</a></div><div class="ttdeci">BaseType_t xTaskIncrementTick(void) PRIVILEGED_FUNCTION</div><div class="ttdef"><b>Definition:</b> tasks.c:2588</div></div>
<div class="ttc" id="atask_8h_html_a26df422f8d635d5191a3e106fbeeed68"><div class="ttname"><a href="task_8h.html#a26df422f8d635d5191a3e106fbeeed68">vTaskSwitchContext</a></div><div class="ttdeci">void vTaskSwitchContext(void) PRIVILEGED_FUNCTION</div><div class="ttdef"><b>Definition:</b> tasks.c:2850</div></div>
<div class="ttc" id="a_free_r_t_o_s_8h_html_a228c70cd48927d6ab730ed1a6dfbe35f"><div class="ttname"><a href="_free_r_t_o_s_8h.html#a228c70cd48927d6ab730ed1a6dfbe35f">configASSERT</a></div><div class="ttdeci">#define configASSERT(x)</div><div class="ttdef"><b>Definition:</b> FreeRTOS.h:235</div></div>
<div class="ttc" id="aport_8c_html_aed20ada05b957181a0de042802a82a5b"><div class="ttname"><a href="port_8c.html#aed20ada05b957181a0de042802a82a5b">vPortExitCritical</a></div><div class="ttdeci">void vPortExitCritical(void)</div><div class="ttdef"><b>Definition:</b> port.c:364</div></div>
<div class="ttc" id="aport_8c_html_a72b5f375744da7a3ec890dd573dddc77"><div class="ttname"><a href="port_8c.html#a72b5f375744da7a3ec890dd573dddc77">portNVIC_IP_REGISTERS_OFFSET_16</a></div><div class="ttdeci">#define portNVIC_IP_REGISTERS_OFFSET_16</div><div class="ttdef"><b>Definition:</b> port.c:81</div></div>
<div class="ttc" id="aport_8c_html_ad4e191d3886fa6ba91bb7cd11cdc665e"><div class="ttname"><a href="port_8c.html#ad4e191d3886fa6ba91bb7cd11cdc665e">portAIRCR_REG</a></div><div class="ttdeci">#define portAIRCR_REG</div><div class="ttdef"><b>Definition:</b> port.c:82</div></div>
<div class="ttc" id="aportmacro_8h_html_ae42817ecbd6fe76d846a89cc0fcd0d95"><div class="ttname"><a href="portmacro_8h.html#ae42817ecbd6fe76d846a89cc0fcd0d95">portNVIC_INT_CTRL_REG</a></div><div class="ttdeci">#define portNVIC_INT_CTRL_REG</div><div class="ttdef"><b>Definition:</b> portmacro.h:95</div></div>
<div class="ttc" id="aportmacro_8h_html"><div class="ttname"><a href="portmacro_8h.html">portmacro.h</a></div></div>
<div class="ttc" id="aport_8c_html_adad03b75dbce86018cd8f77724f5f89a"><div class="ttname"><a href="port_8c.html#adad03b75dbce86018cd8f77724f5f89a">portNVIC_SYSTICK_CTRL_REG</a></div><div class="ttdeci">#define portNVIC_SYSTICK_CTRL_REG</div><div class="ttdef"><b>Definition:</b> port.c:65</div></div>
<div class="ttc" id="astruct_heap_region_html"><div class="ttname"><a href="struct_heap_region.html">HeapRegion</a></div><div class="ttdef"><b>Definition:</b> portable.h:108</div></div>
<div class="ttc" id="aport_8c_html_a3de9530f5de675c37a0195cda9e272d0"><div class="ttname"><a href="port_8c.html#a3de9530f5de675c37a0195cda9e272d0">portPRIORITY_GROUP_MASK</a></div><div class="ttdeci">#define portPRIORITY_GROUP_MASK</div><div class="ttdef"><b>Definition:</b> port.c:86</div></div>
<div class="ttc" id="aportable_8h_html_a846b5ebdaf2b51fe707efb4a0974f676"><div class="ttname"><a href="portable_8h.html#a846b5ebdaf2b51fe707efb4a0974f676">vPortInitialiseBlocks</a></div><div class="ttdeci">void vPortInitialiseBlocks(void) PRIVILEGED_FUNCTION</div><div class="ttdef"><b>Definition:</b> heap_1.c:135</div></div>
<div class="ttc" id="aport_8c_html_ac4d0dccf5f3a96cf955bd2cf5ff987a2"><div class="ttname"><a href="port_8c.html#ac4d0dccf5f3a96cf955bd2cf5ff987a2">portSTART_ADDRESS_MASK</a></div><div class="ttdeci">#define portSTART_ADDRESS_MASK</div><div class="ttdef"><b>Definition:</b> port.c:105</div></div>
<div class="ttc" id="aport_8c_html_a1774a206db4e93668b7508965338893f"><div class="ttname"><a href="port_8c.html#a1774a206db4e93668b7508965338893f">portNVIC_SYSTICK_COUNT_FLAG_BIT</a></div><div class="ttdeci">#define portNVIC_SYSTICK_COUNT_FLAG_BIT</div><div class="ttdef"><b>Definition:</b> port.c:72</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="portable_8h.html">portable.h</a></li>
<li class="footer">Generated by <a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20 </li>
</ul>
</div>
</body>
</html>