MCB1700_Welcome/Doxygen/html/group__v_task_get_run_time_...

112 lines
6.8 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: vTaskGetRunTimeStats</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('group__v_task_get_run_time_stats.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">vTaskGetRunTimeStats</div> </div>
</div><!--header-->
<div class="contents">
<p>task. h </p><pre>void <a class="el" href="task_8h.html#a52da9b427041a48dc9f6802e10f151d4">vTaskGetRunTimeStats( char *pcWriteBuffer )</a>;</pre><p>configGENERATE_RUN_TIME_STATS and configUSE_STATS_FORMATTING_FUNCTIONS must both be defined as 1 for this function to be available. The application must also then provide definitions for <a class="el" href="_free_r_t_o_s_8h.html#a727939bcdb98501e0eba0ec8a1841e1b">portCONFIGURE_TIMER_FOR_RUN_TIME_STATS()</a> and portGET_RUN_TIME_COUNTER_VALUE() to configure a peripheral timer/counter and return the timers current count value respectively. The counter should be at least 10 times the frequency of the tick count.</p>
<p>NOTE 1: This function will disable interrupts for its duration. It is not intended for normal application runtime use but as a debug aid.</p>
<p>Setting configGENERATE_RUN_TIME_STATS to 1 will result in a total accumulated execution time being stored for each task. The resolution of the accumulated time value depends on the frequency of the timer configured by the <a class="el" href="_free_r_t_o_s_8h.html#a727939bcdb98501e0eba0ec8a1841e1b">portCONFIGURE_TIMER_FOR_RUN_TIME_STATS()</a> macro. Calling <a class="el" href="task_8h.html#a52da9b427041a48dc9f6802e10f151d4">vTaskGetRunTimeStats()</a> writes the total execution time of each task into a buffer, both as an absolute count value and as a percentage of the total system execution time.</p>
<p>NOTE 2:</p>
<p>This function is provided for convenience only, and is used by many of the demo applications. Do not consider it to be part of the scheduler.</p>
<p><a class="el" href="task_8h.html#a52da9b427041a48dc9f6802e10f151d4">vTaskGetRunTimeStats()</a> calls <a class="el" href="task_8h.html#aa4603f3de3d809e9beb18d10fbac005d">uxTaskGetSystemState()</a>, then formats part of the <a class="el" href="task_8h.html#aa4603f3de3d809e9beb18d10fbac005d">uxTaskGetSystemState()</a> output into a human readable table that displays the amount of time each task has spent in the Running state in both absolute and percentage terms.</p>
<p><a class="el" href="task_8h.html#a52da9b427041a48dc9f6802e10f151d4">vTaskGetRunTimeStats()</a> has a dependency on the sprintf() C library function that might bloat the code size, use a lot of stack, and provide different results on different platforms. An alternative, tiny, third party, and limited functionality implementation of sprintf() is provided in many of the FreeRTOS/Demo sub-directories in a file called printf-stdarg.c (note printf-stdarg.c does not provide a full snprintf() implementation!).</p>
<p>It is recommended that production systems call <a class="el" href="task_8h.html#aa4603f3de3d809e9beb18d10fbac005d">uxTaskGetSystemState()</a> directly to get access to raw stats data, rather than indirectly through a call to <a class="el" href="task_8h.html#a52da9b427041a48dc9f6802e10f151d4">vTaskGetRunTimeStats()</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">pcWriteBuffer</td><td>A buffer into which the execution times will be written, in ASCII form. This buffer is assumed to be large enough to contain the generated report. Approximately 40 bytes per task should be sufficient. </td></tr>
</table>
</dd>
</dl>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<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>