<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://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"/>
<title>Thread Configuration</title>
<title>CMSIS-RTOS: Thread Configuration</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="cmsis.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<script type="text/javascript" src="printComponentTabs.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
  $(window).load(resizeHeight);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
</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: 46px;">
  <td id="projectlogo"><img alt="Logo" src="CMSIS_Logo_Final.png"/></td>
  <td style="padding-left: 0.5em;">
   <div id="projectname">CMSIS-RTOS
   &#160;<span id="projectnumber">Version 1.03</span>
   </div>
   <div id="projectbrief">Real-Time Operating System: API and RTX Reference Implementation.</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<div id="CMSISnav" class="tabs1">
    <ul class="tablist">
      <script type="text/javascript">
		<!--
		writeComponentTabs.call(this);
		//-->
      </script>
	  </ul>
</div>
<!-- Generated by Doxygen 1.8.6 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li class="current"><a href="pages.html"><span>Usage&#160;and&#160;Description</span></a></li>
      <li><a href="modules.html"><span>Reference</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </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">
$(document).ready(function(){initNavTree('threadConfig.html','');});
</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)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Pages</a></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">Thread Configuration </div>  </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><p>The CMSIS-RTOS RTX provides several parameters for the thread configuration.</p>
<ul>
<li><a class="el" href="threadConfig.html#stackConfig">Configuration of Thread count and Stack Space</a></li>
<li><a class="el" href="threadConfig.html#stackCheck">Stack Overflow Checking</a></li>
<li><a class="el" href="threadConfig.html#processorMode">Processor Mode for Thread Execution</a></li>
</ul>
<h1><a class="anchor" id="stackConfig"></a>
Configuration of Thread count and Stack Space</h1>
<p><a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html#gaee93d929beb350f16e5cc7fa602e229f">osThreadDef</a> defines a thread function. The parameter <em>stacksz</em> specifies thereby the stack requirements of this thread function. CMSIS-RTOS RTX defines two methods for defining the stack requirements:</p>
<ul>
<li>when <em>stacksz</em> is 0, a fixed-size memory pool is used to for the thread stack. In this case <b>OS_STKSIZE</b> specifies the stack size for the thread function.</li>
<li>when <em>stacksz</em> is not 0, the thread stack is allocated from a user space. The size of this user space is specified with <b>OS_PRIVSTKSIZE</b>.</li>
</ul>
<p>The CMSIS-RTOS RTX kernel uses a separate stack for each thread it creates. However, before the kernel is started by the <a class="el" href="group__CMSIS__RTOS__KernelCtrl.html#ga53d078a801022e202e8115c083ece68e">osKernelInitialize()</a> function, the main stack size that is configured in the file startup_<em>device</em>.s is used.</p>
<p>Main stack is also used when:</p>
<ul>
<li>the user application calls the majority of RTX functions from Thread mode (ending up in an SVC call)</li>
<li>running from handlers (user interrupt of exception handlers like SVCm PendSV, Faults, etc.)</li>
</ul>
<table class="doxtable">
<tr>
<th>Name </th><th>#define </th><th>Description  </th></tr>
<tr>
<td>Number of concurrent running user threads </td><td><code>OS_TASKCNT</code> </td><td>Indicates the maximum number of threads that will run at the same time (including main). </td></tr>
<tr>
<td>Default Thread stack size [bytes] </td><td><code>OS_STKSIZE</code> </td><td>Specifies the default stack size (in words) for threads that are defined with osThreadDef <em>stacksz</em> = 0. </td></tr>
<tr>
<td>Main Thread stack size [bytes] </td><td><code>OS_MAINSTKSIZE</code> </td><td>Is the stack requirement (in words) for the main function that is started by default as an RTOS thread. </td></tr>
<tr>
<td>Number of threads with user-provided stack size </td><td><code>OS_PRIVCNT</code> </td><td>Indicates the number of threads that are defined with <a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html#gaee93d929beb350f16e5cc7fa602e229f">osThreadDef</a> <em>stacksz</em> != 0 (excluding main). <em>stacksz</em> specifies the stack size requirement of that thread. </td></tr>
<tr>
<td>Total stack size [bytes] for threads with user-provided stack size </td><td><code>OS_PRIVSTKSIZE</code> </td><td>Is the combined stack requirement (in words) of all threads that are defined with with <a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html#gaee93d929beb350f16e5cc7fa602e229f">osThreadDef</a> <em>stacksz</em> != 0 (excluding main). </td></tr>
<tr>
<td><a class="el" href="threadConfig.html#stackCheck">Stack Overflow Checking</a> </td><td><code>OS_STKCHECK</code> </td><td>If a stack overflow is detected at a thread switch, the function <b>os_error</b> with error code = 1 is called. By default, this function is implemented as endless loop and will practically stop code execution. </td></tr>
<tr>
<td><a class="el" href="threadConfig.html#stackUsage">Stack Usage Watermark</a> </td><td><code>OS_STKINIT</code> </td><td>Initializes the thread stack with a watermark pattern that can be used to determine the maximum stack usage within each thread. </td></tr>
<tr>
<td><a class="el" href="threadConfig.html#processorMode">Processor Mode for Thread Execution</a> </td><td><code>OS_RUNPRIV</code> </td><td>Controls the processor mode (privileged/unprivileged) </td></tr>
</table>
<h1><a class="anchor" id="stackCheck"></a>
Stack Overflow Checking</h1>
<p>CMSIS-RTOS RTX implements a software stack overflow checking that traps stack overruns. Stack is used for return addresses and automatic variables and extensive usage or incorrect stack configuration may cause a stack overflow. Software stack overflow checking is controlled with the <b>#define OS_STKCHECK</b>.</p>
<p>If a stack overflow is detected, the function <b>os_error</b> with error code = 1 is called. By default, this function is implemented as endless loop and will practically stop code execution.</p>
<h1><a class="anchor" id="stackUsage"></a>
Stack Usage Watermark</h1>
<p>The total stack size of an application needs to be as small as possible in a memory restricted embedded system. To be able to set the smallest stack size for every thread, the developer needs to know the maximum stack usage over the runtime of the application.</p>
<p>The <b>Stack</b> <b>Usage</b> <b>Watermark</b> feature support this by initializing the thread stack with a watermark pattern (0xCC) when a thread is created. This allows the debugger to determine the maximum stack usage for each thread.</p>
<div class="image">
<img src="stack_usage_watermark.png" alt="stack_usage_watermark.png"/>
<div class="caption">
System and Thread Viewer showing current and maximum stack usage</div></div>
<p> Stack usage watermark is controlled with the <b>#define OS_STKINIT</b>. Setting this <code>#define</code> increases significantly the execution time of <a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html#gac59b5713cb083702dce759c73fd90dff">osThreadCreate</a> (depending on thread stack size).</p>
<h1><a class="anchor" id="processorMode"></a>
Processor Mode for Thread Execution</h1>
<p>CMSIS-RTOS RTX allows to execute threads in unprivileged or privileged processor mode. The processor mode is controlled with the <b>#define OS_RUNPRIV</b>.</p>
<p>In unprivileged processor mode, the software:</p>
<ul>
<li>has limited access to the MSR and MRS instructions, and cannot use the CPS instruction.</li>
<li>cannot access the system timer, NVIC, or system control block.</li>
<li>might have restricted access to memory or peripherals.</li>
</ul>
<p>In privileged processor mode the software can use all the instructions and has access to all resources.</p>
<dl class="section note"><dt>Note</dt><dd>It is recommended to use the privileged processor mode. </dd></dl>
</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="index.html">index</a></li><li class="navelem"><a class="el" href="rtxImplementation.html">RTX Implementation</a></li><li class="navelem"><a class="el" href="configure.html">Configure RTX</a></li>
    <li class="footer">Generated on Wed Jul 10 2019 15:21:02 for CMSIS-RTOS Version 1.03 by Arm Ltd. All rights reserved.
	<!--
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 
	-->
	</li>
  </ul>
</div>
</body>
</html>
