MCB1700_Welcome/Doxygen/html/_hei_o_s___thread_8h.html

1137 lines
72 KiB
HTML
Raw Permalink Blame History

<!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>Labor03: HeiOS_Thread.h File Reference</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">Labor03
</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('_hei_o_s___thread_8h.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="summary">
<a href="#nested-classes">Data Structures</a> &#124;
<a href="#define-members">Macros</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#func-members">Functions</a> &#124;
<a href="#var-members">Variables</a> </div>
<div class="headertitle">
<div class="title">HeiOS_Thread.h File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>In dieser Header befinden sich alle Deklarationen, die f<>r das HeiOS ben<65>tigt werden.
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &quot;LPC17xx.h&quot;</code><br />
<code>#include &quot;stdint.h&quot;</code><br />
<code>#include &lt;string.h&gt;</code><br />
<code>#include &quot;<a class="el" href="_hei_o_s___settings_8h_source.html">HeiOS_Settings.h</a>&quot;</code><br />
</div><div class="textblock"><div class="dynheader">
Include dependency graph for HeiOS_Thread.h:</div>
<div class="dyncontent">
<div class="center"><img src="_hei_o_s___thread_8h__incl.png" border="0" usemap="#a_hei_o_s___thread_8h" alt=""/></div>
<map name="_hei_o_s___thread_8h" id="a_hei_o_s___thread_8h">
<area shape="rect" title="In dieser Header befinden sich alle Deklarationen, die für das HeiOS benötigt werden." alt="" coords="133,5,252,32"/>
<area shape="rect" title=" " alt="" coords="5,80,92,107"/>
<area shape="rect" title=" " alt="" coords="116,80,181,107"/>
<area shape="rect" title=" " alt="" coords="205,80,271,107"/>
<area shape="rect" href="_hei_o_s___settings_8h.html" title="Hier werden die Einstellungen für das Rtos vorgenommen." alt="" coords="295,80,421,107"/>
</map>
</div>
</div><div class="textblock"><div class="dynheader">
This graph shows which files directly or indirectly include this file:</div>
<div class="dyncontent">
<div class="center"><img src="_hei_o_s___thread_8h__dep__incl.png" border="0" usemap="#a_hei_o_s___thread_8hdep" alt=""/></div>
<map name="_hei_o_s___thread_8hdep" id="a_hei_o_s___thread_8hdep">
<area shape="rect" title="In dieser Header befinden sich alle Deklarationen, die für das HeiOS benötigt werden." alt="" coords="1113,5,1231,32"/>
<area shape="rect" href="_e_s2___v3__app_8h.html" title=" " alt="" coords="533,80,643,107"/>
<area shape="rect" href="_fixed_priority_8h.html" title="Diese Headerdatei beinhaltet die Funktionsdeklaration des FixedPriority&#45;Schedulers." alt="" coords="1120,80,1224,107"/>
<area shape="rect" href="_hei_o_s___thread_8c.html" title="In dieser Datei sind alle HeiOS&#45;Funktionen enthalten." alt="" coords="1237,155,1355,181"/>
<area shape="rect" href="_externals_8h.html" title="declare global variables" alt="" coords="5,155,93,181"/>
<area shape="rect" href="_fsm_framework_8c.html" title=" " alt="" coords="117,155,243,181"/>
<area shape="rect" href="_fsm_tape_8c.html" title="FSM for Tape." alt="" coords="267,155,354,181"/>
<area shape="rect" href="_fsm_tape_8h.html" title="Header FSM for Tape." alt="" coords="378,155,465,181"/>
<area shape="rect" href="_fsm_v_c_r_8c.html" title="FSM for VCR." alt="" coords="489,155,575,181"/>
<area shape="rect" href="_fsm_v_c_r_8h.html" title=" " alt="" coords="599,155,686,181"/>
<area shape="rect" href="_globals_8c.html" title=" " alt="" coords="711,155,788,181"/>
<area shape="rect" href="_interrupt_8c.html" title="timer isr handler" alt="" coords="813,155,894,181"/>
<area shape="rect" href="_main_8c.html" title="app main" alt="" coords="919,155,980,181"/>
<area shape="rect" href="_threads_8c.html" title="threads tun by HeiOS" alt="" coords="1004,155,1084,181"/>
<area shape="rect" href="_fixed_priority_8c.html" title="Diese Datei beinhaltet den FixedPriority&#45;Algorithmus." alt="" coords="1108,155,1212,181"/>
</map>
</div>
</div>
<p><a href="_hei_o_s___thread_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Data Structures</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_thread__struct.html">Thread_struct</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_thread_i_d_l_e.html">ThreadIDLE</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:a0353434e030fd5b6d45c9e657ac2b097"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_hei_o_s___thread_8h.html#a0353434e030fd5b6d45c9e657ac2b097">Enter_Critical_Section</a>()&#160;&#160;&#160;__set_BASEPRI(<a class="el" href="_hei_o_s___settings_8h.html#a235e1068057e01693d8744ed64023df0">DISABLE_INTERRUPT_NUMBER</a> &lt;&lt; (8 - __NVIC_PRIO_BITS));</td></tr>
<tr class="memdesc:a0353434e030fd5b6d45c9e657ac2b097"><td class="mdescLeft">&#160;</td><td class="mdescRight">deaktiviert alle Interrupts, die den kritischen Bereich gef<65>hrden k<>nnten <a href="_hei_o_s___thread_8h.html#a0353434e030fd5b6d45c9e657ac2b097">More...</a><br /></td></tr>
<tr class="separator:a0353434e030fd5b6d45c9e657ac2b097"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aeed08d89b22ef0e6cc0631cf4c96cc6d"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_hei_o_s___thread_8h.html#aeed08d89b22ef0e6cc0631cf4c96cc6d">Exit_Critical_Section</a>()&#160;&#160;&#160;__set_BASEPRI(0U);</td></tr>
<tr class="memdesc:aeed08d89b22ef0e6cc0631cf4c96cc6d"><td class="mdescLeft">&#160;</td><td class="mdescRight">aktiviert alle Interrupts, die mit der Funktion <a class="el" href="_hei_o_s___thread_8h.html#a0353434e030fd5b6d45c9e657ac2b097" title="deaktiviert alle Interrupts, die den kritischen Bereich gef<65>hrden k<>nnten">Enter_Critical_Section()</a> deaktiviert wurden <a href="_hei_o_s___thread_8h.html#aeed08d89b22ef0e6cc0631cf4c96cc6d">More...</a><br /></td></tr>
<tr class="separator:aeed08d89b22ef0e6cc0631cf4c96cc6d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adf570b001a08faf1ac60144f9552480a"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_hei_o_s___thread_8h.html#adf570b001a08faf1ac60144f9552480a">thread_yield</a>()&#160;&#160;&#160;SCB-&gt;ICSR=SCB_ICSR_PENDSVSET_Msk;</td></tr>
<tr class="memdesc:adf570b001a08faf1ac60144f9552480a"><td class="mdescLeft">&#160;</td><td class="mdescRight">triggert den PendSV-Handler an und l<>st somit einen Kontextwechsel aus <a href="_hei_o_s___thread_8h.html#adf570b001a08faf1ac60144f9552480a">More...</a><br /></td></tr>
<tr class="separator:adf570b001a08faf1ac60144f9552480a"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:a1a370e56bc70c92c0e7834839b8721f9"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="struct_thread__struct.html">Thread_struct</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_hei_o_s___thread_8h.html#a1a370e56bc70c92c0e7834839b8721f9">Thread_t</a></td></tr>
<tr class="memdesc:a1a370e56bc70c92c0e7834839b8721f9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Deklaration der Thread-Datenstruktur (TCB) <a href="_hei_o_s___thread_8h.html#a1a370e56bc70c92c0e7834839b8721f9">More...</a><br /></td></tr>
<tr class="separator:a1a370e56bc70c92c0e7834839b8721f9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af7783e35b9d29638a306b187d477a8f4"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="struct_thread_i_d_l_e.html">ThreadIDLE</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_hei_o_s___thread_8h.html#af7783e35b9d29638a306b187d477a8f4">Thread_IDLE_t</a></td></tr>
<tr class="memdesc:af7783e35b9d29638a306b187d477a8f4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Deklaration der Idle-Thread-Datenstruktur. <a href="_hei_o_s___thread_8h.html#af7783e35b9d29638a306b187d477a8f4">More...</a><br /></td></tr>
<tr class="separator:af7783e35b9d29638a306b187d477a8f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4b3a50115ee8bbe264f5630a97ecd7fc"><td class="memItemLeft" align="right" valign="top">typedef uint8_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_hei_o_s___thread_8h.html#a4b3a50115ee8bbe264f5630a97ecd7fc">svc_call_t</a>) (<a class="el" href="_hei_o_s___thread_8h.html#a1a370e56bc70c92c0e7834839b8721f9">Thread_t</a> **<a class="el" href="_hei_o_s___thread_8h.html#a085f099d7c875aa298450d79431ae178">root</a>, <a class="el" href="_hei_o_s___thread_8h.html#a1a370e56bc70c92c0e7834839b8721f9">Thread_t</a> *<a class="el" href="_hei_o_s___thread_8h.html#a739786f7d163baf13b7175e45a9eec36">Thread</a>)</td></tr>
<tr class="separator:a4b3a50115ee8bbe264f5630a97ecd7fc"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:adf19f82560160de5dcccadc09bb9c255"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_hei_o_s___thread_8h.html#adf19f82560160de5dcccadc09bb9c255">setfpoutoutidle</a> (void(*fp)(void))</td></tr>
<tr class="separator:adf19f82560160de5dcccadc09bb9c255"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a94d3e31ac9ce0ed4711711a262d5ddda"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_hei_o_s___thread_8h.html#a94d3e31ac9ce0ed4711711a262d5ddda">Thread_init</a> (<a class="el" href="_hei_o_s___thread_8h.html#a1a370e56bc70c92c0e7834839b8721f9">Thread_t</a> *<a class="el" href="_hei_o_s___thread_8h.html#a739786f7d163baf13b7175e45a9eec36">Thread</a>, void *stack, uint32_t stack_size, char name[], void(*pfunc)(), uint32_t executiontime, uint8_t priority)</td></tr>
<tr class="memdesc:a94d3e31ac9ce0ed4711711a262d5ddda"><td class="mdescLeft">&#160;</td><td class="mdescRight">Diese Funktion initialisert einen Thread und f<>gt ihn der Ready-Liste hinzu. <a href="_hei_o_s___thread_8h.html#a94d3e31ac9ce0ed4711711a262d5ddda">More...</a><br /></td></tr>
<tr class="separator:a94d3e31ac9ce0ed4711711a262d5ddda"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4cc8f78ca0543e6948d909e1ea386feb"><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_hei_o_s___thread_8h.html#a4cc8f78ca0543e6948d909e1ea386feb">thread_stack_usage</a> (<a class="el" href="_hei_o_s___thread_8h.html#a1a370e56bc70c92c0e7834839b8721f9">Thread_t</a> *<a class="el" href="_hei_o_s___thread_8h.html#a739786f7d163baf13b7175e45a9eec36">Thread</a>)</td></tr>
<tr class="memdesc:a4cc8f78ca0543e6948d909e1ea386feb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Diese Funktion pr<70>ft den Stackbereich. <a href="_hei_o_s___thread_8h.html#a4cc8f78ca0543e6948d909e1ea386feb">More...</a><br /></td></tr>
<tr class="separator:a4cc8f78ca0543e6948d909e1ea386feb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac1b95c9591274d32fe312d3c3a7c765d"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_hei_o_s___thread_8h.html#ac1b95c9591274d32fe312d3c3a7c765d">priv_thread_sort_add</a> (<a class="el" href="_hei_o_s___thread_8h.html#a1a370e56bc70c92c0e7834839b8721f9">Thread_t</a> **<a class="el" href="_hei_o_s___thread_8h.html#a085f099d7c875aa298450d79431ae178">root</a>, <a class="el" href="_hei_o_s___thread_8h.html#a1a370e56bc70c92c0e7834839b8721f9">Thread_t</a> *<a class="el" href="_hei_o_s___thread_8h.html#a739786f7d163baf13b7175e45a9eec36">Thread</a>)</td></tr>
<tr class="memdesc:ac1b95c9591274d32fe312d3c3a7c765d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Mithilfe der Funktion werden die Thread-Objekte in einer einfach verketteten Liste angeordnet. <br />
Die Reihenfolge ist dabei von der Priorit<69>t des Threads abh<62>ngig. <a href="_hei_o_s___thread_8h.html#ac1b95c9591274d32fe312d3c3a7c765d">More...</a><br /></td></tr>
<tr class="separator:ac1b95c9591274d32fe312d3c3a7c765d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ada1847fa45175177f66831eb1c706efa"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_hei_o_s___thread_8h.html#ada1847fa45175177f66831eb1c706efa">priv_thread_remove</a> (<a class="el" href="_hei_o_s___thread_8h.html#a1a370e56bc70c92c0e7834839b8721f9">Thread_t</a> **<a class="el" href="_hei_o_s___thread_8h.html#a085f099d7c875aa298450d79431ae178">root</a>, <a class="el" href="_hei_o_s___thread_8h.html#a1a370e56bc70c92c0e7834839b8721f9">Thread_t</a> *<a class="el" href="_hei_o_s___thread_8h.html#a739786f7d163baf13b7175e45a9eec36">Thread</a>)</td></tr>
<tr class="memdesc:ada1847fa45175177f66831eb1c706efa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Diese Funktion entfernt das Threadobjekt aus der Liste. <a href="_hei_o_s___thread_8h.html#ada1847fa45175177f66831eb1c706efa">More...</a><br /></td></tr>
<tr class="separator:ada1847fa45175177f66831eb1c706efa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a68469423a46b5ee543b5ee42cbbd1249"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_hei_o_s___thread_8h.html#a68469423a46b5ee543b5ee42cbbd1249">thread_suspend</a> (<a class="el" href="_hei_o_s___thread_8h.html#a1a370e56bc70c92c0e7834839b8721f9">Thread_t</a> *<a class="el" href="_hei_o_s___thread_8h.html#a739786f7d163baf13b7175e45a9eec36">Thread</a>)</td></tr>
<tr class="memdesc:a68469423a46b5ee543b5ee42cbbd1249"><td class="mdescLeft">&#160;</td><td class="mdescRight">Diese Funktion entfernt einen Thread von der Ready-Liste und l<>st gegebenenfalls einen Kontextwechsel aus. <a href="_hei_o_s___thread_8h.html#a68469423a46b5ee543b5ee42cbbd1249">More...</a><br /></td></tr>
<tr class="separator:a68469423a46b5ee543b5ee42cbbd1249"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adb098ee17a421881935bece55c70311e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_hei_o_s___thread_8h.html#adb098ee17a421881935bece55c70311e">thread_resume</a> (<a class="el" href="_hei_o_s___thread_8h.html#a1a370e56bc70c92c0e7834839b8721f9">Thread_t</a> *<a class="el" href="_hei_o_s___thread_8h.html#a739786f7d163baf13b7175e45a9eec36">Thread</a>)</td></tr>
<tr class="memdesc:adb098ee17a421881935bece55c70311e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Diese Funktion f<>gt den <20>bergebenen Thread zur Ready-Liste hinzu. <a href="_hei_o_s___thread_8h.html#adb098ee17a421881935bece55c70311e">More...</a><br /></td></tr>
<tr class="separator:adb098ee17a421881935bece55c70311e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8b6d6e6b67fd60cae0105a0aa3fe5ade"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_hei_o_s___thread_8h.html#a8b6d6e6b67fd60cae0105a0aa3fe5ade">thread_delay</a> (uint32_t tick)</td></tr>
<tr class="memdesc:a8b6d6e6b67fd60cae0105a0aa3fe5ade"><td class="mdescLeft">&#160;</td><td class="mdescRight">Diese Funktion entfernt den <20>bergebenen Thread von der Ready-Liste und f<>gt ihn der Sleep-Liste hinzu. <br />
Nach Ablauf der <20>bergebenen Tickanzahl wird der Thread automatisch der Ready-Liste wieder hinzugef<65>gt. <a href="_hei_o_s___thread_8h.html#a8b6d6e6b67fd60cae0105a0aa3fe5ade">More...</a><br /></td></tr>
<tr class="separator:a8b6d6e6b67fd60cae0105a0aa3fe5ade"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad543ed6571a6cf7986fc3c588fe0876e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_hei_o_s___thread_8h.html#ad543ed6571a6cf7986fc3c588fe0876e">SVC_Handler_service</a> (uint32_t *svc_args)</td></tr>
<tr class="memdesc:ad543ed6571a6cf7986fc3c588fe0876e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Diese Funktion dient als API, um Funktionen im priviligierten Modus ausf<73>hren zu k<>nnen. <br />
Diese Funktion besitzt die h<>chste Priorit<69>t und kann somit von keinem anderen Interrupt unterbrochen werden. <a href="_hei_o_s___thread_8h.html#ad543ed6571a6cf7986fc3c588fe0876e">More...</a><br /></td></tr>
<tr class="separator:ad543ed6571a6cf7986fc3c588fe0876e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a42b714efadf2458b2ef2cf1f70a45158"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_hei_o_s___thread_8h.html#a42b714efadf2458b2ef2cf1f70a45158">__svc</a> (0x00) svc_thread_yield(void)</td></tr>
<tr class="separator:a42b714efadf2458b2ef2cf1f70a45158"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1ee9069610d8ccac4f5281a4681ad59b"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_hei_o_s___thread_8h.html#a1ee9069610d8ccac4f5281a4681ad59b">__svc</a> (0x01) svc_thread(<a class="el" href="_hei_o_s___thread_8h.html#a4b3a50115ee8bbe264f5630a97ecd7fc">svc_call_t</a></td></tr>
<tr class="separator:a1ee9069610d8ccac4f5281a4681ad59b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a16c7ec7d54a769f4aa36c23d3d35eced"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_hei_o_s___thread_8h.html#a16c7ec7d54a769f4aa36c23d3d35eced">OS_Start_Scheduler</a> (void)</td></tr>
<tr class="memdesc:a16c7ec7d54a769f4aa36c23d3d35eced"><td class="mdescLeft">&#160;</td><td class="mdescRight">Diese Funktion initialisiert das OS und sorgt anschlie<69>end f<>r den Wechsel in den Idlethread. <a href="_hei_o_s___thread_8h.html#a16c7ec7d54a769f4aa36c23d3d35eced">More...</a><br /></td></tr>
<tr class="separator:a16c7ec7d54a769f4aa36c23d3d35eced"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a52404b7464fdf3d6a4d10d7956ebc4fa"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_hei_o_s___thread_8h.html#a52404b7464fdf3d6a4d10d7956ebc4fa">save_R4toR11</a> (void)</td></tr>
<tr class="memdesc:a52404b7464fdf3d6a4d10d7956ebc4fa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Diese Funktion sichert die Register R4-R8 mit Inline-Assembler. <a href="_hei_o_s___thread_8h.html#a52404b7464fdf3d6a4d10d7956ebc4fa">More...</a><br /></td></tr>
<tr class="separator:a52404b7464fdf3d6a4d10d7956ebc4fa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1a3886d1dcd4a06a67eb4329970359de"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_hei_o_s___thread_8h.html#a1a3886d1dcd4a06a67eb4329970359de">load_R4toR11</a> (void)</td></tr>
<tr class="memdesc:a1a3886d1dcd4a06a67eb4329970359de"><td class="mdescLeft">&#160;</td><td class="mdescRight">Diese Funktion ladet die Register R4-R8 mit Inline-Assembler. <a href="_hei_o_s___thread_8h.html#a1a3886d1dcd4a06a67eb4329970359de">More...</a><br /></td></tr>
<tr class="separator:a1a3886d1dcd4a06a67eb4329970359de"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a53ebffa94d01fd8dd641bb0520878da2"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_hei_o_s___thread_8h.html#a53ebffa94d01fd8dd641bb0520878da2">update_Thread_slp</a> (void)</td></tr>
<tr class="memdesc:a53ebffa94d01fd8dd641bb0520878da2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Diese Funktion aktualisiert die Verz<72>gerungszeit der Threads. <a href="_hei_o_s___thread_8h.html#a53ebffa94d01fd8dd641bb0520878da2">More...</a><br /></td></tr>
<tr class="separator:a53ebffa94d01fd8dd641bb0520878da2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afb86102d12bfbfbda217500415dfbc2a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_hei_o_s___thread_8h.html#afb86102d12bfbfbda217500415dfbc2a">update_executiontime</a> (void)</td></tr>
<tr class="memdesc:afb86102d12bfbfbda217500415dfbc2a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Diese Funktion aktualisiert die Ausf<73>hrungszeit der Threads. <a href="_hei_o_s___thread_8h.html#afb86102d12bfbfbda217500415dfbc2a">More...</a><br /></td></tr>
<tr class="separator:afb86102d12bfbfbda217500415dfbc2a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afb25be23cd6e0612928e16af882d7cc9"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_hei_o_s___thread_8h.html#afb25be23cd6e0612928e16af882d7cc9">IdleThread</a> (void)</td></tr>
<tr class="memdesc:afb25be23cd6e0612928e16af882d7cc9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Diese Funktion durchl<68>uft eine Endlosschleife und sorgt f<>r einen definierten Zustand, <br />
falls kein Thread f<>r die Abarbeitung bereit ist. <a href="_hei_o_s___thread_8h.html#afb25be23cd6e0612928e16af882d7cc9">More...</a><br /></td></tr>
<tr class="separator:afb25be23cd6e0612928e16af882d7cc9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a658984b56982482ed5fdbd20366cd3f3"><td class="memItemLeft" align="right" valign="top">__STATIC_INLINE uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_hei_o_s___thread_8h.html#a658984b56982482ed5fdbd20366cd3f3">SysTick_RTOS_Config</a> (uint32_t ticks)</td></tr>
<tr class="separator:a658984b56982482ed5fdbd20366cd3f3"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
Variables</h2></td></tr>
<tr class="memitem:a085f099d7c875aa298450d79431ae178"><td class="memItemLeft" align="right" valign="top">uint8_t <a class="el" href="_hei_o_s___thread_8h.html#a1a370e56bc70c92c0e7834839b8721f9">Thread_t</a> **&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_hei_o_s___thread_8h.html#a085f099d7c875aa298450d79431ae178">root</a></td></tr>
<tr class="separator:a085f099d7c875aa298450d79431ae178"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a739786f7d163baf13b7175e45a9eec36"><td class="memItemLeft" align="right" valign="top">uint8_t <a class="el" href="_hei_o_s___thread_8h.html#a1a370e56bc70c92c0e7834839b8721f9">Thread_t</a> <a class="el" href="_hei_o_s___thread_8h.html#a1a370e56bc70c92c0e7834839b8721f9">Thread_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_hei_o_s___thread_8h.html#a739786f7d163baf13b7175e45a9eec36">Thread</a></td></tr>
<tr class="separator:a739786f7d163baf13b7175e45a9eec36"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>In dieser Header befinden sich alle Deklarationen, die f<>r das HeiOS ben<65>tigt werden. </p>
<dl class="section author"><dt>Author</dt><dd>Heinrich Ginter </dd></dl>
<dl class="section version"><dt>Version</dt><dd>v1.0 </dd></dl>
<dl class="section date"><dt>Date</dt><dd>16.12.2015 </dd></dl>
</div><h2 class="groupheader">Macro Definition Documentation</h2>
<a id="a0353434e030fd5b6d45c9e657ac2b097"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0353434e030fd5b6d45c9e657ac2b097">&#9670;&nbsp;</a></span>Enter_Critical_Section</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define Enter_Critical_Section</td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td>&#160;&#160;&#160;__set_BASEPRI(<a class="el" href="_hei_o_s___settings_8h.html#a235e1068057e01693d8744ed64023df0">DISABLE_INTERRUPT_NUMBER</a> &lt;&lt; (8 - __NVIC_PRIO_BITS));</td>
</tr>
</table>
</div><div class="memdoc">
<p>deaktiviert alle Interrupts, die den kritischen Bereich gef<65>hrden k<>nnten </p>
</div>
</div>
<a id="aeed08d89b22ef0e6cc0631cf4c96cc6d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aeed08d89b22ef0e6cc0631cf4c96cc6d">&#9670;&nbsp;</a></span>Exit_Critical_Section</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define Exit_Critical_Section</td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td>&#160;&#160;&#160;__set_BASEPRI(0U);</td>
</tr>
</table>
</div><div class="memdoc">
<p>aktiviert alle Interrupts, die mit der Funktion <a class="el" href="_hei_o_s___thread_8h.html#a0353434e030fd5b6d45c9e657ac2b097" title="deaktiviert alle Interrupts, die den kritischen Bereich gef<65>hrden k<>nnten">Enter_Critical_Section()</a> deaktiviert wurden </p>
</div>
</div>
<a id="adf570b001a08faf1ac60144f9552480a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#adf570b001a08faf1ac60144f9552480a">&#9670;&nbsp;</a></span>thread_yield</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define thread_yield</td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td>&#160;&#160;&#160;SCB-&gt;ICSR=SCB_ICSR_PENDSVSET_Msk;</td>
</tr>
</table>
</div><div class="memdoc">
<p>triggert den PendSV-Handler an und l<>st somit einen Kontextwechsel aus </p>
</div>
</div>
<h2 class="groupheader">Typedef Documentation</h2>
<a id="a4b3a50115ee8bbe264f5630a97ecd7fc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4b3a50115ee8bbe264f5630a97ecd7fc">&#9670;&nbsp;</a></span>svc_call_t</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef uint8_t(* svc_call_t) (<a class="el" href="_hei_o_s___thread_8h.html#a1a370e56bc70c92c0e7834839b8721f9">Thread_t</a> **<a class="el" href="_hei_o_s___thread_8h.html#a085f099d7c875aa298450d79431ae178">root</a>, <a class="el" href="_hei_o_s___thread_8h.html#a1a370e56bc70c92c0e7834839b8721f9">Thread_t</a> *<a class="el" href="_hei_o_s___thread_8h.html#a739786f7d163baf13b7175e45a9eec36">Thread</a>)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="af7783e35b9d29638a306b187d477a8f4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af7783e35b9d29638a306b187d477a8f4">&#9670;&nbsp;</a></span>Thread_IDLE_t</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef struct <a class="el" href="struct_thread_i_d_l_e.html">ThreadIDLE</a> <a class="el" href="_hei_o_s___thread_8h.html#af7783e35b9d29638a306b187d477a8f4">Thread_IDLE_t</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>Deklaration der Idle-Thread-Datenstruktur. </p>
</div>
</div>
<a id="a1a370e56bc70c92c0e7834839b8721f9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1a370e56bc70c92c0e7834839b8721f9">&#9670;&nbsp;</a></span>Thread_t</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef struct <a class="el" href="struct_thread__struct.html">Thread_struct</a> <a class="el" href="_hei_o_s___thread_8h.html#a1a370e56bc70c92c0e7834839b8721f9">Thread_t</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>Deklaration der Thread-Datenstruktur (TCB) </p>
</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a id="a42b714efadf2458b2ef2cf1f70a45158"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a42b714efadf2458b2ef2cf1f70a45158">&#9670;&nbsp;</a></span>__svc() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void __svc </td>
<td>(</td>
<td class="paramtype">0x00&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a1ee9069610d8ccac4f5281a4681ad59b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1ee9069610d8ccac4f5281a4681ad59b">&#9670;&nbsp;</a></span>__svc() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint8_t __svc </td>
<td>(</td>
<td class="paramtype">0x01&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="afb25be23cd6e0612928e16af882d7cc9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afb25be23cd6e0612928e16af882d7cc9">&#9670;&nbsp;</a></span>IdleThread()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void IdleThread </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Diese Funktion durchl<68>uft eine Endlosschleife und sorgt f<>r einen definierten Zustand, <br />
falls kein Thread f<>r die Abarbeitung bereit ist. </p>
<dl class="section author"><dt>Author</dt><dd>Heinrich Ginter </dd></dl>
<dl class="section version"><dt>Version</dt><dd>1.0 </dd></dl>
<dl class="section date"><dt>Date</dt><dd>16.12.2015 </dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">keine</td><td><EFBFBD>bergabeparameter </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>keinen R<>ckgabeparameter </dd></dl>
<div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><img src="_hei_o_s___thread_8h_afb25be23cd6e0612928e16af882d7cc9_icgraph.png" border="0" usemap="#a_hei_o_s___thread_8h_afb25be23cd6e0612928e16af882d7cc9_icgraph" alt=""/></div>
<map name="_hei_o_s___thread_8h_afb25be23cd6e0612928e16af882d7cc9_icgraph" id="a_hei_o_s___thread_8h_afb25be23cd6e0612928e16af882d7cc9_icgraph">
<area shape="rect" title="Diese Funktion durchläuft eine Endlosschleife und sorgt für einen definierten Zustand, &#160;falls kein Thread für die..." alt="" coords="295,5,377,32"/>
<area shape="rect" href="_hei_o_s___thread_8h.html#a16c7ec7d54a769f4aa36c23d3d35eced" title="Diese Funktion initialisiert das OS und sorgt anschließend für den Wechsel in den Idlethread." alt="" coords="104,5,247,32"/>
<area shape="rect" href="_main_8c.html#a840291bc02cba5474a4cb46a9b9566fe" title="app entry point" alt="" coords="5,5,56,32"/>
</map>
</div>
</div>
</div>
<a id="a1a3886d1dcd4a06a67eb4329970359de"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1a3886d1dcd4a06a67eb4329970359de">&#9670;&nbsp;</a></span>load_R4toR11()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void load_R4toR11 </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Diese Funktion ladet die Register R4-R8 mit Inline-Assembler. </p>
<dl class="section author"><dt>Author</dt><dd>Heinrich Ginter </dd></dl>
<dl class="section version"><dt>Version</dt><dd>1.0 </dd></dl>
<dl class="section date"><dt>Date</dt><dd>16.12.2015 </dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">keine</td><td><EFBFBD>bergabeparameter </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>keinen R<>ckgabeparameter </dd></dl>
<div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><img src="_hei_o_s___thread_8h_a1a3886d1dcd4a06a67eb4329970359de_icgraph.png" border="0" usemap="#a_hei_o_s___thread_8h_a1a3886d1dcd4a06a67eb4329970359de_icgraph" alt=""/></div>
<map name="_hei_o_s___thread_8h_a1a3886d1dcd4a06a67eb4329970359de_icgraph" id="a_hei_o_s___thread_8h_a1a3886d1dcd4a06a67eb4329970359de_icgraph">
<area shape="rect" title="Diese Funktion ladet die Register R4&#45;R8 mit Inline&#45;Assembler." alt="" coords="173,5,279,32"/>
<area shape="rect" href="_hei_o_s___thread_8c.html#a6303e1f258cbdc1f970ce579cc015623" title="Diese Funktion führt den Kontextwechsel aus." alt="" coords="5,5,125,32"/>
</map>
</div>
</div>
</div>
<a id="a16c7ec7d54a769f4aa36c23d3d35eced"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a16c7ec7d54a769f4aa36c23d3d35eced">&#9670;&nbsp;</a></span>OS_Start_Scheduler()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void OS_Start_Scheduler </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Diese Funktion initialisiert das OS und sorgt anschlie<69>end f<>r den Wechsel in den Idlethread. </p>
<p>Der Prozessstackpointer des Idlethreads wird initialisert und die Priorit<69>ten der Interrupts werden gesetzt. <br />
Ebenfalls wird die Tickrate des SysTick-Handlers konfiguriert und der Wechsel in den Thread-Mode eingeleitet. </p><dl class="section author"><dt>Author</dt><dd>Heinrich Ginter </dd></dl>
<dl class="section version"><dt>Version</dt><dd>1.0 </dd></dl>
<dl class="section date"><dt>Date</dt><dd>16.12.2015 </dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">keine</td><td><EFBFBD>bergabeparameter </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>keinen R<>ckgabeparameter </dd></dl>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><img src="_hei_o_s___thread_8h_a16c7ec7d54a769f4aa36c23d3d35eced_cgraph.png" border="0" usemap="#a_hei_o_s___thread_8h_a16c7ec7d54a769f4aa36c23d3d35eced_cgraph" alt=""/></div>
<map name="_hei_o_s___thread_8h_a16c7ec7d54a769f4aa36c23d3d35eced_cgraph" id="a_hei_o_s___thread_8h_a16c7ec7d54a769f4aa36c23d3d35eced_cgraph">
<area shape="rect" title="Diese Funktion initialisiert das OS und sorgt anschließend für den Wechsel in den Idlethread." alt="" coords="5,31,148,57"/>
<area shape="rect" href="_hei_o_s___thread_8c.html#afb25be23cd6e0612928e16af882d7cc9" title="Diese Funktion durchläuft eine Endlosschleife und sorgt für einen definierten Zustand, &#160;falls kein Thread für die..." alt="" coords="234,5,317,32"/>
<area shape="rect" href="_hei_o_s___thread_8h.html#a658984b56982482ed5fdbd20366cd3f3" title=" " alt="" coords="196,56,355,83"/>
</map>
</div>
<div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><img src="_hei_o_s___thread_8h_a16c7ec7d54a769f4aa36c23d3d35eced_icgraph.png" border="0" usemap="#a_hei_o_s___thread_8h_a16c7ec7d54a769f4aa36c23d3d35eced_icgraph" alt=""/></div>
<map name="_hei_o_s___thread_8h_a16c7ec7d54a769f4aa36c23d3d35eced_icgraph" id="a_hei_o_s___thread_8h_a16c7ec7d54a769f4aa36c23d3d35eced_icgraph">
<area shape="rect" title="Diese Funktion initialisiert das OS und sorgt anschließend für den Wechsel in den Idlethread." alt="" coords="104,5,247,32"/>
<area shape="rect" href="_main_8c.html#a840291bc02cba5474a4cb46a9b9566fe" title="app entry point" alt="" coords="5,5,56,32"/>
</map>
</div>
</div>
</div>
<a id="ada1847fa45175177f66831eb1c706efa"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ada1847fa45175177f66831eb1c706efa">&#9670;&nbsp;</a></span>priv_thread_remove()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint8_t priv_thread_remove </td>
<td>(</td>
<td class="paramtype"><a class="el" href="_hei_o_s___thread_8h.html#a1a370e56bc70c92c0e7834839b8721f9">Thread_t</a> **&#160;</td>
<td class="paramname"><em>root</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="_hei_o_s___thread_8h.html#a1a370e56bc70c92c0e7834839b8721f9">Thread_t</a> *&#160;</td>
<td class="paramname"><em>Thread</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Diese Funktion entfernt das Threadobjekt aus der Liste. </p>
<dl class="section author"><dt>Author</dt><dd>Heinrich Ginter </dd></dl>
<dl class="section version"><dt>Version</dt><dd>1.0 </dd></dl>
<dl class="section date"><dt>Date</dt><dd>16.12.2015 </dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">Listenanker</td><td>und Threadobjekt </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>bei erfolgreicher Ausf<73>hrung wird ein positiver Wert zur<75>ckgegeben ansonsten eine 0 </dd></dl>
<div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><img src="_hei_o_s___thread_8h_ada1847fa45175177f66831eb1c706efa_icgraph.png" border="0" usemap="#a_hei_o_s___thread_8h_ada1847fa45175177f66831eb1c706efa_icgraph" alt=""/></div>
<map name="_hei_o_s___thread_8h_ada1847fa45175177f66831eb1c706efa_icgraph" id="a_hei_o_s___thread_8h_ada1847fa45175177f66831eb1c706efa_icgraph">
<area shape="rect" title="Diese Funktion entfernt das Threadobjekt aus der Liste." alt="" coords="455,81,589,108"/>
<area shape="rect" href="_hei_o_s___thread_8h.html#a8b6d6e6b67fd60cae0105a0aa3fe5ade" title="Diese Funktion entfernt den übergebenen Thread von der Ready&#45;Liste und fügt ihn der Sleep&#45;Liste hinzu...." alt="" coords="293,31,389,57"/>
<area shape="rect" href="_hei_o_s___thread_8h.html#a68469423a46b5ee543b5ee42cbbd1249" title="Diese Funktion entfernt einen Thread von der Ready&#45;Liste und löst gegebenenfalls einen Kontextwechsel au..." alt="" coords="283,81,398,108"/>
<area shape="rect" href="_hei_o_s___thread_8h.html#a53ebffa94d01fd8dd641bb0520878da2" title="Diese Funktion aktualisiert die Verzögerungszeit der Threads." alt="" coords="275,132,407,159"/>
<area shape="rect" href="_threads_8h.html#ab18a2d02666d3472c05aaa82a9c34d3d" title="run FSM for Tape" alt="" coords="104,5,227,32"/>
<area shape="rect" href="_threads_8h.html#aba2eae05c4278c9db06f6b523c1e107e" title="run FSM for VCR" alt="" coords="104,56,227,83"/>
<area shape="rect" href="_main_8c.html#a840291bc02cba5474a4cb46a9b9566fe" title="app entry point" alt="" coords="5,31,56,57"/>
<area shape="rect" href="_hei_o_s___thread_8c.html#ab5e09814056d617c521549e542639b7e" title="Diese Funktion wird in regelmäßigen Abständen ausgeführt." alt="" coords="104,132,227,159"/>
</map>
</div>
</div>
</div>
<a id="ac1b95c9591274d32fe312d3c3a7c765d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac1b95c9591274d32fe312d3c3a7c765d">&#9670;&nbsp;</a></span>priv_thread_sort_add()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint8_t priv_thread_sort_add </td>
<td>(</td>
<td class="paramtype"><a class="el" href="_hei_o_s___thread_8h.html#a1a370e56bc70c92c0e7834839b8721f9">Thread_t</a> **&#160;</td>
<td class="paramname"><em>root</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="_hei_o_s___thread_8h.html#a1a370e56bc70c92c0e7834839b8721f9">Thread_t</a> *&#160;</td>
<td class="paramname"><em>Thread</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Mithilfe der Funktion werden die Thread-Objekte in einer einfach verketteten Liste angeordnet. <br />
Die Reihenfolge ist dabei von der Priorit<69>t des Threads abh<62>ngig. </p>
<dl class="section author"><dt>Author</dt><dd>Heinrich Ginter </dd></dl>
<dl class="section version"><dt>Version</dt><dd>1.0 </dd></dl>
<dl class="section date"><dt>Date</dt><dd>16.12.2015 </dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">Ein</td><td>Listenanker sowie das Thread-Objekt werden <20>bergeben. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>liefert einen Integer zur<75>ck und symbolisiert dadurch eine erfolgreiche Ausf<73>hrung </dd></dl>
<div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><img src="_hei_o_s___thread_8h_ac1b95c9591274d32fe312d3c3a7c765d_icgraph.png" border="0" usemap="#a_hei_o_s___thread_8h_ac1b95c9591274d32fe312d3c3a7c765d_icgraph" alt=""/></div>
<map name="_hei_o_s___thread_8h_ac1b95c9591274d32fe312d3c3a7c765d_icgraph" id="a_hei_o_s___thread_8h_ac1b95c9591274d32fe312d3c3a7c765d_icgraph">
<area shape="rect" title="Mithilfe der Funktion werden die Thread&#45;Objekte in einer einfach verketteten Liste angeordnet...." alt="" coords="455,132,599,159"/>
<area shape="rect" href="_hei_o_s___thread_8h.html#a8b6d6e6b67fd60cae0105a0aa3fe5ade" title="Diese Funktion entfernt den übergebenen Thread von der Ready&#45;Liste und fügt ihn der Sleep&#45;Liste hinzu...." alt="" coords="293,56,389,83"/>
<area shape="rect" href="_hei_o_s___thread_8h.html#a94d3e31ac9ce0ed4711711a262d5ddda" title="Diese Funktion initialisert einen Thread und fügt ihn der Ready&#45;Liste hinzu." alt="" coords="122,107,209,133"/>
<area shape="rect" href="_hei_o_s___thread_8h.html#adb098ee17a421881935bece55c70311e" title="Diese Funktion fügt den übergebenen Thread zur Ready&#45;Liste hinzu." alt="" coords="287,157,395,184"/>
<area shape="rect" href="_hei_o_s___thread_8h.html#a53ebffa94d01fd8dd641bb0520878da2" title="Diese Funktion aktualisiert die Verzögerungszeit der Threads." alt="" coords="275,208,407,235"/>
<area shape="rect" href="_threads_8h.html#ab18a2d02666d3472c05aaa82a9c34d3d" title="run FSM for Tape" alt="" coords="104,5,227,32"/>
<area shape="rect" href="_threads_8h.html#aba2eae05c4278c9db06f6b523c1e107e" title="run FSM for VCR" alt="" coords="104,56,227,83"/>
<area shape="rect" href="_main_8c.html#a840291bc02cba5474a4cb46a9b9566fe" title="app entry point" alt="" coords="5,56,56,83"/>
<area shape="rect" href="_hei_o_s___thread_8c.html#ab5e09814056d617c521549e542639b7e" title="Diese Funktion wird in regelmäßigen Abständen ausgeführt." alt="" coords="104,208,227,235"/>
</map>
</div>
</div>
</div>
<a id="a52404b7464fdf3d6a4d10d7956ebc4fa"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a52404b7464fdf3d6a4d10d7956ebc4fa">&#9670;&nbsp;</a></span>save_R4toR11()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void save_R4toR11 </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Diese Funktion sichert die Register R4-R8 mit Inline-Assembler. </p>
<dl class="section author"><dt>Author</dt><dd>Heinrich Ginter </dd></dl>
<dl class="section version"><dt>Version</dt><dd>1.0 </dd></dl>
<dl class="section date"><dt>Date</dt><dd>16.12.2015 </dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">keine</td><td><EFBFBD>bergabeparameter </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>keinen R<>ckgabeparameter </dd></dl>
<div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><img src="_hei_o_s___thread_8h_a52404b7464fdf3d6a4d10d7956ebc4fa_icgraph.png" border="0" usemap="#a_hei_o_s___thread_8h_a52404b7464fdf3d6a4d10d7956ebc4fa_icgraph" alt=""/></div>
<map name="_hei_o_s___thread_8h_a52404b7464fdf3d6a4d10d7956ebc4fa_icgraph" id="a_hei_o_s___thread_8h_a52404b7464fdf3d6a4d10d7956ebc4fa_icgraph">
<area shape="rect" title="Diese Funktion sichert die Register R4&#45;R8 mit Inline&#45;Assembler." alt="" coords="173,5,281,32"/>
<area shape="rect" href="_hei_o_s___thread_8c.html#a6303e1f258cbdc1f970ce579cc015623" title="Diese Funktion führt den Kontextwechsel aus." alt="" coords="5,5,125,32"/>
</map>
</div>
</div>
</div>
<a id="adf19f82560160de5dcccadc09bb9c255"></a>
<h2 class="memtitle"><span class="permalink"><a href="#adf19f82560160de5dcccadc09bb9c255">&#9670;&nbsp;</a></span>setfpoutoutidle()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void setfpoutoutidle </td>
<td>(</td>
<td class="paramtype">void(*)(void)&#160;</td>
<td class="paramname"><em>fp</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ad543ed6571a6cf7986fc3c588fe0876e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad543ed6571a6cf7986fc3c588fe0876e">&#9670;&nbsp;</a></span>SVC_Handler_service()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void SVC_Handler_service </td>
<td>(</td>
<td class="paramtype">uint32_t *&#160;</td>
<td class="paramname"><em>svc_args</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Diese Funktion dient als API, um Funktionen im priviligierten Modus ausf<73>hren zu k<>nnen. <br />
Diese Funktion besitzt die h<>chste Priorit<69>t und kann somit von keinem anderen Interrupt unterbrochen werden. </p>
<dl class="section author"><dt>Author</dt><dd>Heinrich Ginter </dd></dl>
<dl class="section version"><dt>Version</dt><dd>1.0 </dd></dl>
<dl class="section date"><dt>Date</dt><dd>16.12.2015 </dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">der</td><td>Stackrahmen mit den Registern xPSR,PC,LR,R12,R0-R3 wird <20>bergeben </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>keinen R<>ckgabeparameter </dd></dl>
<div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><img src="_hei_o_s___thread_8h_ad543ed6571a6cf7986fc3c588fe0876e_icgraph.png" border="0" usemap="#a_hei_o_s___thread_8h_ad543ed6571a6cf7986fc3c588fe0876e_icgraph" alt=""/></div>
<map name="_hei_o_s___thread_8h_ad543ed6571a6cf7986fc3c588fe0876e_icgraph" id="a_hei_o_s___thread_8h_ad543ed6571a6cf7986fc3c588fe0876e_icgraph">
<area shape="rect" title="Diese Funktion dient als API, um Funktionen im priviligierten Modus ausführen zu können. &#160;&#160;Diese Funktion bes..." alt="" coords="153,5,304,32"/>
<area shape="rect" href="_hei_o_s___thread_8c.html#a37a51408555bf2a31f8e00a7ec229b7a" title="Diese Funktion ermittelt mithile von embedded Assembler den verwendeten Stackpointer." alt="" coords="5,5,105,32"/>
</map>
</div>
</div>
</div>
<a id="a658984b56982482ed5fdbd20366cd3f3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a658984b56982482ed5fdbd20366cd3f3">&#9670;&nbsp;</a></span>SysTick_RTOS_Config()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">__STATIC_INLINE uint32_t SysTick_RTOS_Config </td>
<td>(</td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>ticks</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><img src="_hei_o_s___thread_8h_a658984b56982482ed5fdbd20366cd3f3_icgraph.png" border="0" usemap="#a_hei_o_s___thread_8h_a658984b56982482ed5fdbd20366cd3f3_icgraph" alt=""/></div>
<map name="_hei_o_s___thread_8h_a658984b56982482ed5fdbd20366cd3f3_icgraph" id="a_hei_o_s___thread_8h_a658984b56982482ed5fdbd20366cd3f3_icgraph">
<area shape="rect" title=" " alt="" coords="295,5,453,32"/>
<area shape="rect" href="_hei_o_s___thread_8h.html#a16c7ec7d54a769f4aa36c23d3d35eced" title="Diese Funktion initialisiert das OS und sorgt anschließend für den Wechsel in den Idlethread." alt="" coords="104,5,247,32"/>
<area shape="rect" href="_main_8c.html#a840291bc02cba5474a4cb46a9b9566fe" title="app entry point" alt="" coords="5,5,56,32"/>
</map>
</div>
</div>
</div>
<a id="a8b6d6e6b67fd60cae0105a0aa3fe5ade"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8b6d6e6b67fd60cae0105a0aa3fe5ade">&#9670;&nbsp;</a></span>thread_delay()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void thread_delay </td>
<td>(</td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>tick</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Diese Funktion entfernt den <20>bergebenen Thread von der Ready-Liste und f<>gt ihn der Sleep-Liste hinzu. <br />
Nach Ablauf der <20>bergebenen Tickanzahl wird der Thread automatisch der Ready-Liste wieder hinzugef<65>gt. </p>
<dl class="section author"><dt>Author</dt><dd>Heinrich Ginter </dd></dl>
<dl class="section version"><dt>Version</dt><dd>1.0 </dd></dl>
<dl class="section date"><dt>Date</dt><dd>16.12.2015 </dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">Tickanzahl</td><td>(Ein Tick entspricht hierbei dem Intervall des SysTicks) </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>keinen R<>ckgabeparameter </dd></dl>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><img src="_hei_o_s___thread_8h_a8b6d6e6b67fd60cae0105a0aa3fe5ade_cgraph.png" border="0" usemap="#a_hei_o_s___thread_8h_a8b6d6e6b67fd60cae0105a0aa3fe5ade_cgraph" alt=""/></div>
<map name="_hei_o_s___thread_8h_a8b6d6e6b67fd60cae0105a0aa3fe5ade_cgraph" id="a_hei_o_s___thread_8h_a8b6d6e6b67fd60cae0105a0aa3fe5ade_cgraph">
<area shape="rect" title="Diese Funktion entfernt den übergebenen Thread von der Ready&#45;Liste und fügt ihn der Sleep&#45;Liste hinzu...." alt="" coords="5,31,101,57"/>
<area shape="rect" href="_hei_o_s___thread_8c.html#ada1847fa45175177f66831eb1c706efa" title="Diese Funktion entfernt das Threadobjekt aus der Liste." alt="" coords="154,5,289,32"/>
<area shape="rect" href="_hei_o_s___thread_8c.html#ac1b95c9591274d32fe312d3c3a7c765d" title="Mithilfe der Funktion werden die Thread&#45;Objekte in einer einfach verketteten Liste angeordnet...." alt="" coords="149,56,293,83"/>
</map>
</div>
<div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><img src="_hei_o_s___thread_8h_a8b6d6e6b67fd60cae0105a0aa3fe5ade_icgraph.png" border="0" usemap="#a_hei_o_s___thread_8h_a8b6d6e6b67fd60cae0105a0aa3fe5ade_icgraph" alt=""/></div>
<map name="_hei_o_s___thread_8h_a8b6d6e6b67fd60cae0105a0aa3fe5ade_icgraph" id="a_hei_o_s___thread_8h_a8b6d6e6b67fd60cae0105a0aa3fe5ade_icgraph">
<area shape="rect" title="Diese Funktion entfernt den übergebenen Thread von der Ready&#45;Liste und fügt ihn der Sleep&#45;Liste hinzu...." alt="" coords="275,31,371,57"/>
<area shape="rect" href="_threads_8h.html#ab18a2d02666d3472c05aaa82a9c34d3d" title="run FSM for Tape" alt="" coords="104,5,227,32"/>
<area shape="rect" href="_threads_8h.html#aba2eae05c4278c9db06f6b523c1e107e" title="run FSM for VCR" alt="" coords="104,56,227,83"/>
<area shape="rect" href="_main_8c.html#a840291bc02cba5474a4cb46a9b9566fe" title="app entry point" alt="" coords="5,31,56,57"/>
</map>
</div>
</div>
</div>
<a id="a94d3e31ac9ce0ed4711711a262d5ddda"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a94d3e31ac9ce0ed4711711a262d5ddda">&#9670;&nbsp;</a></span>Thread_init()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void Thread_init </td>
<td>(</td>
<td class="paramtype"><a class="el" href="_hei_o_s___thread_8h.html#a1a370e56bc70c92c0e7834839b8721f9">Thread_t</a> *&#160;</td>
<td class="paramname"><em>Thread</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>stack</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>stack_size</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">char&#160;</td>
<td class="paramname"><em>name</em>[], </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void(*)()&#160;</td>
<td class="paramname"><em>pfunc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>executiontime</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>priority</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Diese Funktion initialisert einen Thread und f<>gt ihn der Ready-Liste hinzu. </p>
<p>Alle <20>bergebenen Parameter werden den Attributen der Datenstruktur zugewiesen. Ebenfalls werden die CPU-Register des Threads f<>r die erstmalige Ausf<73>hrung initialisert. </p><dl class="section author"><dt>Author</dt><dd>Heinrich Ginter </dd></dl>
<dl class="section version"><dt>Version</dt><dd>1.0 </dd></dl>
<dl class="section date"><dt>Date</dt><dd>16.12.2015 </dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">Thread_t</td><td>*Thread: <20>bergabeparameter der angelegten Threaddatenstruktur (call by reference) <br />
void *stack: <20>bergabeparameter des Stackframes <br />
uint32_t stack_size: <20>bergabeparameter der Arraygr<67><72>e <br />
char name[]: Name des Threads <br />
void (*pfunc)(): <20>bergabeparameter der Threadfunktion <br />
uint32_t executiontime: Ausf<73>hrungszeit eines Threads <br />
uint8_t priority: Priorit<69>t eines Threads </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>keinen R<>ckgabeparameter </dd></dl>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><img src="_hei_o_s___thread_8h_a94d3e31ac9ce0ed4711711a262d5ddda_cgraph.png" border="0" usemap="#a_hei_o_s___thread_8h_a94d3e31ac9ce0ed4711711a262d5ddda_cgraph" alt=""/></div>
<map name="_hei_o_s___thread_8h_a94d3e31ac9ce0ed4711711a262d5ddda_cgraph" id="a_hei_o_s___thread_8h_a94d3e31ac9ce0ed4711711a262d5ddda_cgraph">
<area shape="rect" title="Diese Funktion initialisert einen Thread und fügt ihn der Ready&#45;Liste hinzu." alt="" coords="5,5,92,32"/>
<area shape="rect" href="_hei_o_s___thread_8c.html#ac1b95c9591274d32fe312d3c3a7c765d" title="Mithilfe der Funktion werden die Thread&#45;Objekte in einer einfach verketteten Liste angeordnet...." alt="" coords="140,5,284,32"/>
</map>
</div>
<div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><img src="_hei_o_s___thread_8h_a94d3e31ac9ce0ed4711711a262d5ddda_icgraph.png" border="0" usemap="#a_hei_o_s___thread_8h_a94d3e31ac9ce0ed4711711a262d5ddda_icgraph" alt=""/></div>
<map name="_hei_o_s___thread_8h_a94d3e31ac9ce0ed4711711a262d5ddda_icgraph" id="a_hei_o_s___thread_8h_a94d3e31ac9ce0ed4711711a262d5ddda_icgraph">
<area shape="rect" title="Diese Funktion initialisert einen Thread und fügt ihn der Ready&#45;Liste hinzu." alt="" coords="104,5,191,32"/>
<area shape="rect" href="_main_8c.html#a840291bc02cba5474a4cb46a9b9566fe" title="app entry point" alt="" coords="5,5,56,32"/>
</map>
</div>
</div>
</div>
<a id="adb098ee17a421881935bece55c70311e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#adb098ee17a421881935bece55c70311e">&#9670;&nbsp;</a></span>thread_resume()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void thread_resume </td>
<td>(</td>
<td class="paramtype"><a class="el" href="_hei_o_s___thread_8h.html#a1a370e56bc70c92c0e7834839b8721f9">Thread_t</a> *&#160;</td>
<td class="paramname"><em>Thread</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Diese Funktion f<>gt den <20>bergebenen Thread zur Ready-Liste hinzu. </p>
<dl class="section author"><dt>Author</dt><dd>Heinrich Ginter </dd></dl>
<dl class="section version"><dt>Version</dt><dd>1.0 </dd></dl>
<dl class="section date"><dt>Date</dt><dd>16.12.2015 </dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">Threadobjekt</td><td></td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>keinen R<>ckgabeparameter </dd></dl>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><img src="_hei_o_s___thread_8h_adb098ee17a421881935bece55c70311e_cgraph.png" border="0" usemap="#a_hei_o_s___thread_8h_adb098ee17a421881935bece55c70311e_cgraph" alt=""/></div>
<map name="_hei_o_s___thread_8h_adb098ee17a421881935bece55c70311e_cgraph" id="a_hei_o_s___thread_8h_adb098ee17a421881935bece55c70311e_cgraph">
<area shape="rect" title="Diese Funktion fügt den übergebenen Thread zur Ready&#45;Liste hinzu." alt="" coords="5,5,113,32"/>
<area shape="rect" href="_hei_o_s___thread_8c.html#ac1b95c9591274d32fe312d3c3a7c765d" title="Mithilfe der Funktion werden die Thread&#45;Objekte in einer einfach verketteten Liste angeordnet...." alt="" coords="161,5,305,32"/>
</map>
</div>
</div>
</div>
<a id="a4cc8f78ca0543e6948d909e1ea386feb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4cc8f78ca0543e6948d909e1ea386feb">&#9670;&nbsp;</a></span>thread_stack_usage()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint16_t thread_stack_usage </td>
<td>(</td>
<td class="paramtype"><a class="el" href="_hei_o_s___thread_8h.html#a1a370e56bc70c92c0e7834839b8721f9">Thread_t</a> *&#160;</td>
<td class="paramname"><em>Thread</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Diese Funktion pr<70>ft den Stackbereich. </p>
<p>Der Stackbereich ist mit magischen Nummern beschrieben. Sobald eine Sequenz des Stackbereichs von der magischen Nummer abweicht, kann auf den <20>berschriebenen Bereich zur<75>ckgeschlossen werden. </p><dl class="section author"><dt>Author</dt><dd>Heinrich Ginter </dd></dl>
<dl class="section version"><dt>Version</dt><dd>1.0 </dd></dl>
<dl class="section date"><dt>Date</dt><dd>16.12.2015 </dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">Threaddatenstruktur</td><td>wird <20>bergeben </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>liefert einen Integer zur<75>ck mit der Gr<47><72>e des <20>berschriebenen Stackbereichs </dd></dl>
<div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><img src="_hei_o_s___thread_8h_a4cc8f78ca0543e6948d909e1ea386feb_icgraph.png" border="0" usemap="#a_hei_o_s___thread_8h_a4cc8f78ca0543e6948d909e1ea386feb_icgraph" alt=""/></div>
<map name="_hei_o_s___thread_8h_a4cc8f78ca0543e6948d909e1ea386feb_icgraph" id="a_hei_o_s___thread_8h_a4cc8f78ca0543e6948d909e1ea386feb_icgraph">
<area shape="rect" title="Diese Funktion prüft den Stackbereich." alt="" coords="173,5,312,32"/>
<area shape="rect" href="_hei_o_s___thread_8c.html#a6303e1f258cbdc1f970ce579cc015623" title="Diese Funktion führt den Kontextwechsel aus." alt="" coords="5,5,125,32"/>
</map>
</div>
</div>
</div>
<a id="a68469423a46b5ee543b5ee42cbbd1249"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a68469423a46b5ee543b5ee42cbbd1249">&#9670;&nbsp;</a></span>thread_suspend()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void thread_suspend </td>
<td>(</td>
<td class="paramtype"><a class="el" href="_hei_o_s___thread_8h.html#a1a370e56bc70c92c0e7834839b8721f9">Thread_t</a> *&#160;</td>
<td class="paramname"><em>Thread</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Diese Funktion entfernt einen Thread von der Ready-Liste und l<>st gegebenenfalls einen Kontextwechsel aus. </p>
<dl class="section author"><dt>Author</dt><dd>Heinrich Ginter </dd></dl>
<dl class="section version"><dt>Version</dt><dd>1.0 </dd></dl>
<dl class="section date"><dt>Date</dt><dd>16.12.2015 </dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">Threadobjekt</td><td></td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>keinen R<>ckgabeparameter </dd></dl>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><img src="_hei_o_s___thread_8h_a68469423a46b5ee543b5ee42cbbd1249_cgraph.png" border="0" usemap="#a_hei_o_s___thread_8h_a68469423a46b5ee543b5ee42cbbd1249_cgraph" alt=""/></div>
<map name="_hei_o_s___thread_8h_a68469423a46b5ee543b5ee42cbbd1249_cgraph" id="a_hei_o_s___thread_8h_a68469423a46b5ee543b5ee42cbbd1249_cgraph">
<area shape="rect" title="Diese Funktion entfernt einen Thread von der Ready&#45;Liste und löst gegebenenfalls einen Kontextwechsel au..." alt="" coords="5,5,120,32"/>
<area shape="rect" href="_hei_o_s___thread_8c.html#ada1847fa45175177f66831eb1c706efa" title="Diese Funktion entfernt das Threadobjekt aus der Liste." alt="" coords="168,5,303,32"/>
</map>
</div>
</div>
</div>
<a id="afb86102d12bfbfbda217500415dfbc2a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afb86102d12bfbfbda217500415dfbc2a">&#9670;&nbsp;</a></span>update_executiontime()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void update_executiontime </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Diese Funktion aktualisiert die Ausf<73>hrungszeit der Threads. </p>
<p>Nach Ablauf der Ausf<73>hrungszeit wird ein Kontextwechsel ausgel<65>st. </p><dl class="section author"><dt>Author</dt><dd>Heinrich Ginter </dd></dl>
<dl class="section version"><dt>Version</dt><dd>1.0 </dd></dl>
<dl class="section date"><dt>Date</dt><dd>16.12.2015 </dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">keine</td><td><EFBFBD>bergabeparameter </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>keinen R<>ckgabeparameter </dd></dl>
<div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><img src="_hei_o_s___thread_8h_afb86102d12bfbfbda217500415dfbc2a_icgraph.png" border="0" usemap="#a_hei_o_s___thread_8h_afb86102d12bfbfbda217500415dfbc2a_icgraph" alt=""/></div>
<map name="_hei_o_s___thread_8h_afb86102d12bfbfbda217500415dfbc2a_icgraph" id="a_hei_o_s___thread_8h_afb86102d12bfbfbda217500415dfbc2a_icgraph">
<area shape="rect" title="Diese Funktion aktualisiert die Ausführungszeit der Threads." alt="" coords="176,5,324,32"/>
<area shape="rect" href="_hei_o_s___thread_8c.html#ab5e09814056d617c521549e542639b7e" title="Diese Funktion wird in regelmäßigen Abständen ausgeführt." alt="" coords="5,5,128,32"/>
</map>
</div>
</div>
</div>
<a id="a53ebffa94d01fd8dd641bb0520878da2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a53ebffa94d01fd8dd641bb0520878da2">&#9670;&nbsp;</a></span>update_Thread_slp()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void update_Thread_slp </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Diese Funktion aktualisiert die Verz<72>gerungszeit der Threads. </p>
<p>Nach Ablauf der Verz<72>gerungszeit wird der jeweilige Thread von der Sleep-Liste entfernt und der Ready-Liste hinzugef<65>gt. </p><dl class="section author"><dt>Author</dt><dd>Heinrich Ginter </dd></dl>
<dl class="section version"><dt>Version</dt><dd>1.0 </dd></dl>
<dl class="section date"><dt>Date</dt><dd>16.12.2015 </dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">keine</td><td><EFBFBD>bergabeparameter </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>keinen R<>ckgabeparameter </dd></dl>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><img src="_hei_o_s___thread_8h_a53ebffa94d01fd8dd641bb0520878da2_cgraph.png" border="0" usemap="#a_hei_o_s___thread_8h_a53ebffa94d01fd8dd641bb0520878da2_cgraph" alt=""/></div>
<map name="_hei_o_s___thread_8h_a53ebffa94d01fd8dd641bb0520878da2_cgraph" id="a_hei_o_s___thread_8h_a53ebffa94d01fd8dd641bb0520878da2_cgraph">
<area shape="rect" title="Diese Funktion aktualisiert die Verzögerungszeit der Threads." alt="" coords="5,31,137,57"/>
<area shape="rect" href="_hei_o_s___thread_8c.html#ada1847fa45175177f66831eb1c706efa" title="Diese Funktion entfernt das Threadobjekt aus der Liste." alt="" coords="190,5,325,32"/>
<area shape="rect" href="_hei_o_s___thread_8c.html#ac1b95c9591274d32fe312d3c3a7c765d" title="Mithilfe der Funktion werden die Thread&#45;Objekte in einer einfach verketteten Liste angeordnet...." alt="" coords="185,56,329,83"/>
</map>
</div>
<div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><img src="_hei_o_s___thread_8h_a53ebffa94d01fd8dd641bb0520878da2_icgraph.png" border="0" usemap="#a_hei_o_s___thread_8h_a53ebffa94d01fd8dd641bb0520878da2_icgraph" alt=""/></div>
<map name="_hei_o_s___thread_8h_a53ebffa94d01fd8dd641bb0520878da2_icgraph" id="a_hei_o_s___thread_8h_a53ebffa94d01fd8dd641bb0520878da2_icgraph">
<area shape="rect" title="Diese Funktion aktualisiert die Verzögerungszeit der Threads." alt="" coords="176,5,308,32"/>
<area shape="rect" href="_hei_o_s___thread_8c.html#ab5e09814056d617c521549e542639b7e" title="Diese Funktion wird in regelmäßigen Abständen ausgeführt." alt="" coords="5,5,128,32"/>
</map>
</div>
</div>
</div>
<h2 class="groupheader">Variable Documentation</h2>
<a id="a085f099d7c875aa298450d79431ae178"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a085f099d7c875aa298450d79431ae178">&#9670;&nbsp;</a></span>root</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint8_t <a class="el" href="_hei_o_s___thread_8h.html#a1a370e56bc70c92c0e7834839b8721f9">Thread_t</a>** root</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a739786f7d163baf13b7175e45a9eec36"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a739786f7d163baf13b7175e45a9eec36">&#9670;&nbsp;</a></span>Thread</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint8_t <a class="el" href="_hei_o_s___thread_8h.html#a1a370e56bc70c92c0e7834839b8721f9">Thread_t</a> <a class="el" href="_hei_o_s___thread_8h.html#a1a370e56bc70c92c0e7834839b8721f9">Thread_t</a>* Thread</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="_hei_o_s___thread_8h.html">HeiOS_Thread.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>