update doxygen

This commit is contained in:
Gabriel Wang 2022-05-30 16:38:58 +01:00
parent bd91fe1d5f
commit ad1087a429
262 changed files with 33616 additions and 73 deletions

2736
Doxyfile Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,98 @@
<!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=11"/>
<meta name="generator" content="Doxygen 1.9.4"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>perf_counter: README.md 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 id="projectrow">
<td id="projectalign">
<div id="projectname">perf_counter
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.4 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @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:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(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:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('_r_e_a_d_m_e_8md.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">README.md File Reference</div></div>
</div><!--header-->
<div class="contents">
</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="_r_e_a_d_m_e_8md.html">README.md</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.4 </li>
</ul>
</div>
</body>
</html>

View File

@ -0,0 +1,107 @@
<!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=11"/>
<meta name="generator" content="Doxygen 1.9.4"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>perf_counter: Data Structures</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 id="projectrow">
<td id="projectalign">
<div id="projectname">perf_counter
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.4 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @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:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(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:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('annotated.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">Data Structures</div></div>
</div><!--header-->
<div class="contents">
<div class="textblock">Here are the data structures with brief descriptions:</div><div class="directory">
<table class="directory">
<tr id="row_0_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct____task__cycle__info__t.html" target="_self">__task_cycle_info_t</a></td><td class="desc"></td></tr>
<tr id="row_1_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_s_c_b___type.html" target="_self">SCB_Type</a></td><td class="desc">Structure type to access the System Control Block (SCB) </td></tr>
<tr id="row_2_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_sys_tick___type.html" target="_self">SysTick_Type</a></td><td class="desc">Structure type to access the System Timer (SysTick) </td></tr>
<tr id="row_3_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtask__cycle__info__agent__t.html" target="_self">task_cycle_info_agent_t</a></td><td class="desc"></td></tr>
<tr id="row_4_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtask__cycle__info__t.html" target="_self">task_cycle_info_t</a></td><td class="desc"></td></tr>
<tr id="row_5_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtsk_task_control_block.html" target="_self">tskTaskControlBlock</a></td><td class="desc"></td></tr>
</table>
</div><!-- directory -->
</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="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.4 </li>
</ul>
</div>
</body>
</html>

View File

@ -0,0 +1,9 @@
var annotated_dup =
[
[ "__task_cycle_info_t", "struct____task__cycle__info__t.html", "struct____task__cycle__info__t" ],
[ "SCB_Type", "struct_s_c_b___type.html", "struct_s_c_b___type" ],
[ "SysTick_Type", "struct_sys_tick___type.html", "struct_sys_tick___type" ],
[ "task_cycle_info_agent_t", "structtask__cycle__info__agent__t.html", "structtask__cycle__info__agent__t" ],
[ "task_cycle_info_t", "structtask__cycle__info__t.html", "structtask__cycle__info__t" ],
[ "tskTaskControlBlock", "structtsk_task_control_block.html", "structtsk_task_control_block" ]
];

BIN
documents/html/bc_s.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 676 B

BIN
documents/html/bdwn.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 147 B

109
documents/html/classes.html Normal file
View File

@ -0,0 +1,109 @@
<!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=11"/>
<meta name="generator" content="Doxygen 1.9.4"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>perf_counter: Data Structure Index</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 id="projectrow">
<td id="projectalign">
<div id="projectname">perf_counter
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.4 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @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:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(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:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('classes.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">Data Structure Index</div></div>
</div><!--header-->
<div class="contents">
<div class="qindex"><a class="qindex" href="#letter_S">S</a>&#160;|&#160;<a class="qindex" href="#letter_T">T</a>&#160;|&#160;<a class="qindex" href="#letter__">_</a></div>
<div class="classindex">
<dl class="classindex even">
<dt class="alphachar"><a id="letter_S" name="letter_S">S</a></dt>
<dd><a class="el" href="struct_s_c_b___type.html">SCB_Type</a></dd><dd><a class="el" href="struct_sys_tick___type.html">SysTick_Type</a></dd></dl>
<dl class="classindex odd">
<dt class="alphachar"><a id="letter_T" name="letter_T">T</a></dt>
<dd><a class="el" href="structtask__cycle__info__agent__t.html">task_cycle_info_agent_t</a></dd><dd><a class="el" href="structtask__cycle__info__t.html">task_cycle_info_t</a></dd><dd><a class="el" href="structtsk_task_control_block.html">tskTaskControlBlock</a></dd></dl>
<dl class="classindex even">
<dt class="alphachar"><a id="letter__" name="letter__">_</a></dt>
<dd><a class="el" href="struct____task__cycle__info__t.html">__task_cycle_info_t</a></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="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.4 </li>
</ul>
</div>
</body>
</html>

BIN
documents/html/closed.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 132 B

BIN
documents/html/doc.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 746 B

1841
documents/html/doxygen.css Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 15 KiB

View File

@ -0,0 +1,128 @@
/*
@licstart The following is the entire license notice for the JavaScript code in this file.
The MIT License (MIT)
Copyright (C) 1997-2020 by Dimitri van Heesch
Permission is hereby granted, free of charge, to any person obtaining a copy of this software
and associated documentation files (the "Software"), to deal in the Software without restriction,
including without limitation the rights to use, copy, modify, merge, publish, distribute,
sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or
substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@licend The above is the entire license notice for the JavaScript code in this file
*/
function toggleVisibility(linkObj)
{
var base = $(linkObj).attr('id');
var summary = $('#'+base+'-summary');
var content = $('#'+base+'-content');
var trigger = $('#'+base+'-trigger');
var src=$(trigger).attr('src');
if (content.is(':visible')===true) {
content.hide();
summary.show();
$(linkObj).addClass('closed').removeClass('opened');
$(trigger).attr('src',src.substring(0,src.length-8)+'closed.png');
} else {
content.show();
summary.hide();
$(linkObj).removeClass('closed').addClass('opened');
$(trigger).attr('src',src.substring(0,src.length-10)+'open.png');
}
return false;
}
function updateStripes()
{
$('table.directory tr').
removeClass('even').filter(':visible:even').addClass('even');
}
function toggleLevel(level)
{
$('table.directory tr').each(function() {
var l = this.id.split('_').length-1;
var i = $('#img'+this.id.substring(3));
var a = $('#arr'+this.id.substring(3));
if (l<level+1) {
i.removeClass('iconfopen iconfclosed').addClass('iconfopen');
a.html('&#9660;');
$(this).show();
} else if (l==level+1) {
i.removeClass('iconfclosed iconfopen').addClass('iconfclosed');
a.html('&#9658;');
$(this).show();
} else {
$(this).hide();
}
});
updateStripes();
}
function toggleFolder(id)
{
// the clicked row
var currentRow = $('#row_'+id);
// all rows after the clicked row
var rows = currentRow.nextAll("tr");
var re = new RegExp('^row_'+id+'\\d+_$', "i"); //only one sub
// only match elements AFTER this one (can't hide elements before)
var childRows = rows.filter(function() { return this.id.match(re); });
// first row is visible we are HIDING
if (childRows.filter(':first').is(':visible')===true) {
// replace down arrow by right arrow for current row
var currentRowSpans = currentRow.find("span");
currentRowSpans.filter(".iconfopen").removeClass("iconfopen").addClass("iconfclosed");
currentRowSpans.filter(".arrow").html('&#9658;');
rows.filter("[id^=row_"+id+"]").hide(); // hide all children
} else { // we are SHOWING
// replace right arrow by down arrow for current row
var currentRowSpans = currentRow.find("span");
currentRowSpans.filter(".iconfclosed").removeClass("iconfclosed").addClass("iconfopen");
currentRowSpans.filter(".arrow").html('&#9660;');
// replace down arrows by right arrows for child rows
var childRowsSpans = childRows.find("span");
childRowsSpans.filter(".iconfopen").removeClass("iconfopen").addClass("iconfclosed");
childRowsSpans.filter(".arrow").html('&#9658;');
childRows.show(); //show all children
}
updateStripes();
}
function toggleInherit(id)
{
var rows = $('tr.inherit.'+id);
var img = $('tr.inherit_header.'+id+' img');
var src = $(img).attr('src');
if (rows.filter(':first').is(':visible')===true) {
rows.css('display','none');
$(img).attr('src',src.substring(0,src.length-8)+'closed.png');
} else {
rows.css('display','table-row'); // using show() causes jump in firefox
$(img).attr('src',src.substring(0,src.length-10)+'open.png');
}
}
/* @license-end */
$(document).ready(function() {
$('.code,.codeRef').each(function() {
$(this).data('powertip',$('#a'+$(this).attr('href').replace(/.*\//,'').replace(/[^a-z_A-Z0-9]/g,'_')).html());
$.fn.powerTip.smartPlacementLists.s = [ 's', 'n', 'ne', 'se' ];
$(this).powerTip({ placement: 's', smartPlacement: true, mouseOnToPopup: true });
});
});

107
documents/html/files.html Normal file
View File

@ -0,0 +1,107 @@
<!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=11"/>
<meta name="generator" content="Doxygen 1.9.4"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>perf_counter: File List</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 id="projectrow">
<td id="projectalign">
<div id="projectname">perf_counter
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.4 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @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:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(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:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('files.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">File List</div></div>
</div><!--header-->
<div class="contents">
<div class="textblock">Here is a list of all files with brief descriptions:</div><div class="directory">
<table class="directory">
<tr id="row_0_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="perf__counter_8c_source.html"><span class="icondoc"></span></a><a class="el" href="perf__counter_8c.html" target="_self">perf_counter.c</a></td><td class="desc"></td></tr>
<tr id="row_1_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="perf__counter_8h_source.html"><span class="icondoc"></span></a><a class="el" href="perf__counter_8h.html" target="_self">perf_counter.h</a></td><td class="desc"></td></tr>
<tr id="row_2_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="perf__os__patch__freertos_8c_source.html"><span class="icondoc"></span></a><a class="el" href="perf__os__patch__freertos_8c.html" target="_self">perf_os_patch_freertos.c</a></td><td class="desc"></td></tr>
<tr id="row_3_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="perf__os__patch__rt__thread_8c_source.html"><span class="icondoc"></span></a><a class="el" href="perf__os__patch__rt__thread_8c.html" target="_self">perf_os_patch_rt_thread.c</a></td><td class="desc"></td></tr>
<tr id="row_4_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="perf__os__patch__rtx5_8c_source.html"><span class="icondoc"></span></a><a class="el" href="perf__os__patch__rtx5_8c.html" target="_self">perf_os_patch_rtx5.c</a></td><td class="desc"></td></tr>
<tr id="row_5_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="perf__os__patch__threadx_8c_source.html"><span class="icondoc"></span></a><a class="el" href="perf__os__patch__threadx_8c.html" target="_self">perf_os_patch_threadx.c</a></td><td class="desc"></td></tr>
</table>
</div><!-- directory -->
</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="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.4 </li>
</ul>
</div>
</body>
</html>

View File

@ -0,0 +1,9 @@
var files_dup =
[
[ "perf_counter.c", "perf__counter_8c.html", "perf__counter_8c" ],
[ "perf_counter.h", "perf__counter_8h.html", "perf__counter_8h" ],
[ "perf_os_patch_freertos.c", "perf__os__patch__freertos_8c.html", "perf__os__patch__freertos_8c" ],
[ "perf_os_patch_rt_thread.c", "perf__os__patch__rt__thread_8c.html", "perf__os__patch__rt__thread_8c" ],
[ "perf_os_patch_rtx5.c", "perf__os__patch__rtx5_8c.html", "perf__os__patch__rtx5_8c" ],
[ "perf_os_patch_threadx.c", "perf__os__patch__threadx_8c.html", "perf__os__patch__threadx_8c" ]
];

Binary file not shown.

After

Width:  |  Height:  |  Size: 616 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 597 B

View File

@ -0,0 +1,210 @@
<!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=11"/>
<meta name="generator" content="Doxygen 1.9.4"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>perf_counter: Data Fields</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 id="projectrow">
<td id="projectalign">
<div id="projectname">perf_counter
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.4 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @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:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(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:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('functions.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="contents">
<div class="textblock">Here is a list of all struct and union fields with links to the structures/unions they belong to:</div>
<h3><a id="index__5F" name="index__5F"></a>- _ -</h3><ul>
<li>__pad0__&#160;:&#160;<a class="el" href="structtask__cycle__info__t.html#a77132c2c26a75f5b8751b235cda23828">task_cycle_info_t</a></li>
</ul>
<h3><a id="index_a" name="index_a"></a>- a -</h3><ul>
<li>ADR&#160;:&#160;<a class="el" href="struct_s_c_b___type.html#a72572af6d5dece4947453aeabd52575f">SCB_Type</a></li>
<li>AFSR&#160;:&#160;<a class="el" href="struct_s_c_b___type.html#a3ef0057e48fdef798f2ee12125a80d9f">SCB_Type</a></li>
<li>AIRCR&#160;:&#160;<a class="el" href="struct_s_c_b___type.html#a9b6ccd9c0c0865f8facad77ea37240b0">SCB_Type</a></li>
</ul>
<h3><a id="index_b" name="index_b"></a>- b -</h3><ul>
<li>bEnabled&#160;:&#160;<a class="el" href="structtask__cycle__info__t.html#a8a4c67264f8440bb83dec68c4312ff09">task_cycle_info_t</a></li>
<li>BFAR&#160;:&#160;<a class="el" href="struct_s_c_b___type.html#a3fde073744418e2fe476333cb4d55d0d">SCB_Type</a></li>
</ul>
<h3><a id="index_c" name="index_c"></a>- c -</h3><ul>
<li>CALIB&#160;:&#160;<a class="el" href="struct_sys_tick___type.html#aedf0dff29a9cacdaa2fb7eec6b116a13">SysTick_Type</a></li>
<li>CCR&#160;:&#160;<a class="el" href="struct_s_c_b___type.html#ad68b5c1f2d9845ef4247cf2d9b041336">SCB_Type</a></li>
<li>CFSR&#160;:&#160;<a class="el" href="struct_s_c_b___type.html#a0f9e27357254e6e953a94f95bda040b1">SCB_Type</a></li>
<li>CPACR&#160;:&#160;<a class="el" href="struct_s_c_b___type.html#ab8e9dd6ca5f31244ea352ed0c19155d8">SCB_Type</a></li>
<li>CPUID&#160;:&#160;<a class="el" href="struct_s_c_b___type.html#adbf8292503748ba6421a523bdee6819d">SCB_Type</a></li>
<li>CTRL&#160;:&#160;<a class="el" href="struct_sys_tick___type.html#ac81efc171e9852a36caeb47122bfec5b">SysTick_Type</a></li>
</ul>
<h3><a id="index_d" name="index_d"></a>- d -</h3><ul>
<li>DFR&#160;:&#160;<a class="el" href="struct_s_c_b___type.html#ae2b3d4530d1b0c05593b634dc46348bd">SCB_Type</a></li>
<li>DFSR&#160;:&#160;<a class="el" href="struct_s_c_b___type.html#a3b590075aa07880ce686d5cfb4e61c5c">SCB_Type</a></li>
</ul>
<h3><a id="index_h" name="index_h"></a>- h -</h3><ul>
<li>HFSR&#160;:&#160;<a class="el" href="struct_s_c_b___type.html#ab974e7ceb2e52a3fbcaa84e06e52922d">SCB_Type</a></li>
<li>hwActiveCount&#160;:&#160;<a class="el" href="structtask__cycle__info__t.html#a84d3729a2d49dd2e43ef8727fcd6f9b0">task_cycle_info_t</a></li>
</ul>
<h3><a id="index_i" name="index_i"></a>- i -</h3><ul>
<li>ICSR&#160;:&#160;<a class="el" href="struct_s_c_b___type.html#aced895d6aba03d72b0d865fcc5ce44ee">SCB_Type</a></li>
<li>ISAR&#160;:&#160;<a class="el" href="struct_s_c_b___type.html#af2950df748750d535d5d65ac1c209563">SCB_Type</a></li>
</ul>
<h3><a id="index_l" name="index_l"></a>- l -</h3><ul>
<li>lLastTimeStamp&#160;:&#160;<a class="el" href="struct____task__cycle__info__t.html#ae2aae11f91e3eea654ceeac9b81706cb">__task_cycle_info_t</a></li>
<li>LOAD&#160;:&#160;<a class="el" href="struct_sys_tick___type.html#a0c1333686137b7e25a46bd548a5b5bc3">SysTick_Type</a></li>
<li>lStart&#160;:&#160;<a class="el" href="structtask__cycle__info__t.html#a3b941eea48497afb204462c694bc2d12">task_cycle_info_t</a></li>
<li>lUsedTotal&#160;:&#160;<a class="el" href="structtask__cycle__info__t.html#a19a46cbd05039f568b01e326d65d6b80">task_cycle_info_t</a></li>
</ul>
<h3><a id="index_m" name="index_m"></a>- m -</h3><ul>
<li>MMFAR&#160;:&#160;<a class="el" href="struct_s_c_b___type.html#ae9d94d186615d57d38c9253cb842d244">SCB_Type</a></li>
<li>MMFR&#160;:&#160;<a class="el" href="struct_s_c_b___type.html#ab6c914b579d22d7eb86d0e3d9a5fde71">SCB_Type</a></li>
</ul>
<h3><a id="index_n" name="index_n"></a>- n -</h3><ul>
<li>nUsedRecent&#160;:&#160;<a class="el" href="structtask__cycle__info__t.html#a0250b43cfb57ddf17f7f40c4cc587249">task_cycle_info_t</a></li>
</ul>
<h3><a id="index_p" name="index_p"></a>- p -</h3><ul>
<li>pcTaskName&#160;:&#160;<a class="el" href="structtsk_task_control_block.html#afa7d65deeca135b921eaa78fbbf52918">tskTaskControlBlock</a></li>
<li>PFR&#160;:&#160;<a class="el" href="struct_s_c_b___type.html#a602fa5eae6a772dbb09970d304e75690">SCB_Type</a></li>
<li>ptInfo&#160;:&#160;<a class="el" href="structtask__cycle__info__agent__t.html#a26adda6b75d3722f450eb169546bd7e7">task_cycle_info_agent_t</a></li>
<li>ptNext&#160;:&#160;<a class="el" href="structtask__cycle__info__agent__t.html#a3f049d289ce99f316894417016d60ca6">task_cycle_info_agent_t</a></li>
<li>ptPrev&#160;:&#160;<a class="el" href="structtask__cycle__info__agent__t.html#a0ab0ef208ec46b60dce3d05a76754931">task_cycle_info_agent_t</a></li>
<li>pxStack&#160;:&#160;<a class="el" href="structtsk_task_control_block.html#aaecd48bdf732c1df94b258956ca85bd7">tskTaskControlBlock</a></li>
<li>pxTopOfStack&#160;:&#160;<a class="el" href="structtsk_task_control_block.html#a41989bc39d576125f4492364592f9e1a">tskTaskControlBlock</a></li>
</ul>
<h3><a id="index_r" name="index_r"></a>- r -</h3><ul>
<li>RESERVED0&#160;:&#160;<a class="el" href="struct_s_c_b___type.html#a9361cfd01123913b78dd5d0dc8301bfd">SCB_Type</a></li>
</ul>
<h3><a id="index_s" name="index_s"></a>- s -</h3><ul>
<li>SCR&#160;:&#160;<a class="el" href="struct_s_c_b___type.html#acac65f229cb3fcb5369a0a9e0393b8c0">SCB_Type</a></li>
<li>SHCSR&#160;:&#160;<a class="el" href="struct_s_c_b___type.html#a44ad5c292dbd77e72f310902375a8a06">SCB_Type</a></li>
<li>SHP&#160;:&#160;<a class="el" href="struct_s_c_b___type.html#a293826a2c44f754e80af03d62f62f9e6">SCB_Type</a></li>
</ul>
<h3><a id="index_t" name="index_t"></a>- t -</h3><ul>
<li>tInfo&#160;:&#160;<a class="el" href="struct____task__cycle__info__t.html#a8af024785267321e4ef544e7f25d80dc">__task_cycle_info_t</a></li>
<li>tList&#160;:&#160;<a class="el" href="struct____task__cycle__info__t.html#a7d50a2272c4a1b65f927e8c6d1242b33">__task_cycle_info_t</a></li>
</ul>
<h3><a id="index_u" name="index_u"></a>- u -</h3><ul>
<li>uxPriority&#160;:&#160;<a class="el" href="structtsk_task_control_block.html#a0befed3dd0fe55b4314158f4814f50ae">tskTaskControlBlock</a></li>
</ul>
<h3><a id="index_v" name="index_v"></a>- v -</h3><ul>
<li>VAL&#160;:&#160;<a class="el" href="struct_sys_tick___type.html#ae7a655a853654127f3dfb7fa32c3f457">SysTick_Type</a></li>
<li>VTOR&#160;:&#160;<a class="el" href="struct_s_c_b___type.html#ae457d2615e203c3d5904a43a1bc9df71">SCB_Type</a></li>
</ul>
<h3><a id="index_w" name="index_w"></a>- w -</h3><ul>
<li>wMagicWord&#160;:&#160;<a class="el" href="struct____task__cycle__info__t.html#a88c8aad5ae23ae04fa44b2892081561b">__task_cycle_info_t</a></li>
</ul>
<h3><a id="index_x" name="index_x"></a>- x -</h3><ul>
<li>xEventListItem&#160;:&#160;<a class="el" href="structtsk_task_control_block.html#a139605d93d834601f34be927ecba3a15">tskTaskControlBlock</a></li>
<li>xStateListItem&#160;:&#160;<a class="el" href="structtsk_task_control_block.html#a2575f6a579ef61db0db66d7b1b52ec48">tskTaskControlBlock</a></li>
</ul>
</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="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.4 </li>
</ul>
</div>
</body>
</html>

View File

@ -0,0 +1,210 @@
<!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=11"/>
<meta name="generator" content="Doxygen 1.9.4"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>perf_counter: Data Fields - Variables</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 id="projectrow">
<td id="projectalign">
<div id="projectname">perf_counter
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.4 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @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:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(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:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('functions_vars.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="contents">
&#160;
<h3><a id="index__5F" name="index__5F"></a>- _ -</h3><ul>
<li>__pad0__&#160;:&#160;<a class="el" href="structtask__cycle__info__t.html#a77132c2c26a75f5b8751b235cda23828">task_cycle_info_t</a></li>
</ul>
<h3><a id="index_a" name="index_a"></a>- a -</h3><ul>
<li>ADR&#160;:&#160;<a class="el" href="struct_s_c_b___type.html#a72572af6d5dece4947453aeabd52575f">SCB_Type</a></li>
<li>AFSR&#160;:&#160;<a class="el" href="struct_s_c_b___type.html#a3ef0057e48fdef798f2ee12125a80d9f">SCB_Type</a></li>
<li>AIRCR&#160;:&#160;<a class="el" href="struct_s_c_b___type.html#a9b6ccd9c0c0865f8facad77ea37240b0">SCB_Type</a></li>
</ul>
<h3><a id="index_b" name="index_b"></a>- b -</h3><ul>
<li>bEnabled&#160;:&#160;<a class="el" href="structtask__cycle__info__t.html#a8a4c67264f8440bb83dec68c4312ff09">task_cycle_info_t</a></li>
<li>BFAR&#160;:&#160;<a class="el" href="struct_s_c_b___type.html#a3fde073744418e2fe476333cb4d55d0d">SCB_Type</a></li>
</ul>
<h3><a id="index_c" name="index_c"></a>- c -</h3><ul>
<li>CALIB&#160;:&#160;<a class="el" href="struct_sys_tick___type.html#aedf0dff29a9cacdaa2fb7eec6b116a13">SysTick_Type</a></li>
<li>CCR&#160;:&#160;<a class="el" href="struct_s_c_b___type.html#ad68b5c1f2d9845ef4247cf2d9b041336">SCB_Type</a></li>
<li>CFSR&#160;:&#160;<a class="el" href="struct_s_c_b___type.html#a0f9e27357254e6e953a94f95bda040b1">SCB_Type</a></li>
<li>CPACR&#160;:&#160;<a class="el" href="struct_s_c_b___type.html#ab8e9dd6ca5f31244ea352ed0c19155d8">SCB_Type</a></li>
<li>CPUID&#160;:&#160;<a class="el" href="struct_s_c_b___type.html#adbf8292503748ba6421a523bdee6819d">SCB_Type</a></li>
<li>CTRL&#160;:&#160;<a class="el" href="struct_sys_tick___type.html#ac81efc171e9852a36caeb47122bfec5b">SysTick_Type</a></li>
</ul>
<h3><a id="index_d" name="index_d"></a>- d -</h3><ul>
<li>DFR&#160;:&#160;<a class="el" href="struct_s_c_b___type.html#ae2b3d4530d1b0c05593b634dc46348bd">SCB_Type</a></li>
<li>DFSR&#160;:&#160;<a class="el" href="struct_s_c_b___type.html#a3b590075aa07880ce686d5cfb4e61c5c">SCB_Type</a></li>
</ul>
<h3><a id="index_h" name="index_h"></a>- h -</h3><ul>
<li>HFSR&#160;:&#160;<a class="el" href="struct_s_c_b___type.html#ab974e7ceb2e52a3fbcaa84e06e52922d">SCB_Type</a></li>
<li>hwActiveCount&#160;:&#160;<a class="el" href="structtask__cycle__info__t.html#a84d3729a2d49dd2e43ef8727fcd6f9b0">task_cycle_info_t</a></li>
</ul>
<h3><a id="index_i" name="index_i"></a>- i -</h3><ul>
<li>ICSR&#160;:&#160;<a class="el" href="struct_s_c_b___type.html#aced895d6aba03d72b0d865fcc5ce44ee">SCB_Type</a></li>
<li>ISAR&#160;:&#160;<a class="el" href="struct_s_c_b___type.html#af2950df748750d535d5d65ac1c209563">SCB_Type</a></li>
</ul>
<h3><a id="index_l" name="index_l"></a>- l -</h3><ul>
<li>lLastTimeStamp&#160;:&#160;<a class="el" href="struct____task__cycle__info__t.html#ae2aae11f91e3eea654ceeac9b81706cb">__task_cycle_info_t</a></li>
<li>LOAD&#160;:&#160;<a class="el" href="struct_sys_tick___type.html#a0c1333686137b7e25a46bd548a5b5bc3">SysTick_Type</a></li>
<li>lStart&#160;:&#160;<a class="el" href="structtask__cycle__info__t.html#a3b941eea48497afb204462c694bc2d12">task_cycle_info_t</a></li>
<li>lUsedTotal&#160;:&#160;<a class="el" href="structtask__cycle__info__t.html#a19a46cbd05039f568b01e326d65d6b80">task_cycle_info_t</a></li>
</ul>
<h3><a id="index_m" name="index_m"></a>- m -</h3><ul>
<li>MMFAR&#160;:&#160;<a class="el" href="struct_s_c_b___type.html#ae9d94d186615d57d38c9253cb842d244">SCB_Type</a></li>
<li>MMFR&#160;:&#160;<a class="el" href="struct_s_c_b___type.html#ab6c914b579d22d7eb86d0e3d9a5fde71">SCB_Type</a></li>
</ul>
<h3><a id="index_n" name="index_n"></a>- n -</h3><ul>
<li>nUsedRecent&#160;:&#160;<a class="el" href="structtask__cycle__info__t.html#a0250b43cfb57ddf17f7f40c4cc587249">task_cycle_info_t</a></li>
</ul>
<h3><a id="index_p" name="index_p"></a>- p -</h3><ul>
<li>pcTaskName&#160;:&#160;<a class="el" href="structtsk_task_control_block.html#afa7d65deeca135b921eaa78fbbf52918">tskTaskControlBlock</a></li>
<li>PFR&#160;:&#160;<a class="el" href="struct_s_c_b___type.html#a602fa5eae6a772dbb09970d304e75690">SCB_Type</a></li>
<li>ptInfo&#160;:&#160;<a class="el" href="structtask__cycle__info__agent__t.html#a26adda6b75d3722f450eb169546bd7e7">task_cycle_info_agent_t</a></li>
<li>ptNext&#160;:&#160;<a class="el" href="structtask__cycle__info__agent__t.html#a3f049d289ce99f316894417016d60ca6">task_cycle_info_agent_t</a></li>
<li>ptPrev&#160;:&#160;<a class="el" href="structtask__cycle__info__agent__t.html#a0ab0ef208ec46b60dce3d05a76754931">task_cycle_info_agent_t</a></li>
<li>pxStack&#160;:&#160;<a class="el" href="structtsk_task_control_block.html#aaecd48bdf732c1df94b258956ca85bd7">tskTaskControlBlock</a></li>
<li>pxTopOfStack&#160;:&#160;<a class="el" href="structtsk_task_control_block.html#a41989bc39d576125f4492364592f9e1a">tskTaskControlBlock</a></li>
</ul>
<h3><a id="index_r" name="index_r"></a>- r -</h3><ul>
<li>RESERVED0&#160;:&#160;<a class="el" href="struct_s_c_b___type.html#a9361cfd01123913b78dd5d0dc8301bfd">SCB_Type</a></li>
</ul>
<h3><a id="index_s" name="index_s"></a>- s -</h3><ul>
<li>SCR&#160;:&#160;<a class="el" href="struct_s_c_b___type.html#acac65f229cb3fcb5369a0a9e0393b8c0">SCB_Type</a></li>
<li>SHCSR&#160;:&#160;<a class="el" href="struct_s_c_b___type.html#a44ad5c292dbd77e72f310902375a8a06">SCB_Type</a></li>
<li>SHP&#160;:&#160;<a class="el" href="struct_s_c_b___type.html#a293826a2c44f754e80af03d62f62f9e6">SCB_Type</a></li>
</ul>
<h3><a id="index_t" name="index_t"></a>- t -</h3><ul>
<li>tInfo&#160;:&#160;<a class="el" href="struct____task__cycle__info__t.html#a8af024785267321e4ef544e7f25d80dc">__task_cycle_info_t</a></li>
<li>tList&#160;:&#160;<a class="el" href="struct____task__cycle__info__t.html#a7d50a2272c4a1b65f927e8c6d1242b33">__task_cycle_info_t</a></li>
</ul>
<h3><a id="index_u" name="index_u"></a>- u -</h3><ul>
<li>uxPriority&#160;:&#160;<a class="el" href="structtsk_task_control_block.html#a0befed3dd0fe55b4314158f4814f50ae">tskTaskControlBlock</a></li>
</ul>
<h3><a id="index_v" name="index_v"></a>- v -</h3><ul>
<li>VAL&#160;:&#160;<a class="el" href="struct_sys_tick___type.html#ae7a655a853654127f3dfb7fa32c3f457">SysTick_Type</a></li>
<li>VTOR&#160;:&#160;<a class="el" href="struct_s_c_b___type.html#ae457d2615e203c3d5904a43a1bc9df71">SCB_Type</a></li>
</ul>
<h3><a id="index_w" name="index_w"></a>- w -</h3><ul>
<li>wMagicWord&#160;:&#160;<a class="el" href="struct____task__cycle__info__t.html#a88c8aad5ae23ae04fa44b2892081561b">__task_cycle_info_t</a></li>
</ul>
<h3><a id="index_x" name="index_x"></a>- x -</h3><ul>
<li>xEventListItem&#160;:&#160;<a class="el" href="structtsk_task_control_block.html#a139605d93d834601f34be927ecba3a15">tskTaskControlBlock</a></li>
<li>xStateListItem&#160;:&#160;<a class="el" href="structtsk_task_control_block.html#a2575f6a579ef61db0db66d7b1b52ec48">tskTaskControlBlock</a></li>
</ul>
</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="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.4 </li>
</ul>
</div>
</body>
</html>

285
documents/html/globals.html Normal file
View File

@ -0,0 +1,285 @@
<!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=11"/>
<meta name="generator" content="Doxygen 1.9.4"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>perf_counter: Globals</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 id="projectrow">
<td id="projectalign">
<div id="projectname">perf_counter
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.4 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @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:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(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:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('globals.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="contents">
<div class="textblock">Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:</div>
<h3><a id="index__5F" name="index__5F"></a>- _ -</h3><ul>
<li>__CONNECT2&#160;:&#160;<a class="el" href="perf__counter_8h.html#ae490fc8ce9ed8d7853ab956e76ebf1b8">perf_counter.h</a></li>
<li>__CONNECT3&#160;:&#160;<a class="el" href="perf__counter_8h.html#af40f44eb68f59549a3e5d6c91429c3c9">perf_counter.h</a></li>
<li>__CONNECT4&#160;:&#160;<a class="el" href="perf__counter_8h.html#ade59615465df27344e32b05c3629ef03">perf_counter.h</a></li>
<li>__CONNECT5&#160;:&#160;<a class="el" href="perf__counter_8h.html#ab6fd44a39b7fdd5c8c3b7309992e1a00">perf_counter.h</a></li>
<li>__CONNECT6&#160;:&#160;<a class="el" href="perf__counter_8h.html#ae2d17b539ab98e8b0435fce5d8aff2b4">perf_counter.h</a></li>
<li>__CONNECT7&#160;:&#160;<a class="el" href="perf__counter_8h.html#a2b3247f9df3a6702c90468722994bf49">perf_counter.h</a></li>
<li>__CONNECT8&#160;:&#160;<a class="el" href="perf__counter_8h.html#a798b1c8c5d91763e99d63fc7c326dead">perf_counter.h</a></li>
<li>__CONNECT9&#160;:&#160;<a class="el" href="perf__counter_8h.html#a78dee228d830879c65edae8392fbf159">perf_counter.h</a></li>
<li>__cycleof__&#160;:&#160;<a class="el" href="perf__counter_8h.html#a147d3eb2e96136dc1758aa8d3e2a089c">perf_counter.h</a></li>
<li>__freertos_evr_on_task_switched_in()&#160;:&#160;<a class="el" href="perf__os__patch__freertos_8c.html#a411ff611b06926d6bcde27c0c621895c">perf_os_patch_freertos.c</a></li>
<li>__freertos_evr_on_task_switched_out()&#160;:&#160;<a class="el" href="perf__os__patch__freertos_8c.html#a5d7733a0a2eec8eb3c6782ddfd6bf44c">perf_os_patch_freertos.c</a></li>
<li>__I&#160;:&#160;<a class="el" href="perf__counter_8c.html#af63697ed9952cc71e1225efe205f6cd3">perf_counter.c</a></li>
<li>__IM&#160;:&#160;<a class="el" href="perf__counter_8c.html#a4cc1649793116d7c2d8afce7a4ffce43">perf_counter.c</a></li>
<li>__IMPLEMENT_PERF_COUNTER&#160;:&#160;<a class="el" href="perf__counter_8c.html#afedb615b5c48d33ad8523f92078bf66c">perf_counter.c</a></li>
<li>__IO&#160;:&#160;<a class="el" href="perf__counter_8c.html#aec43007d9998a0a0e01faede4133d6be">perf_counter.c</a></li>
<li>__IOM&#160;:&#160;<a class="el" href="perf__counter_8c.html#ab6caba5853a60a17e8e04499b52bf691">perf_counter.c</a></li>
<li>__IRQ_SAFE&#160;:&#160;<a class="el" href="perf__counter_8h.html#a966a3eb20671a2a8c44d63d459f5472e">perf_counter.h</a></li>
<li>__MACRO_EXPANDING&#160;:&#160;<a class="el" href="perf__counter_8h.html#a39273cdd59b6f17525f429d61f242a73">perf_counter.h</a></li>
<li>__O&#160;:&#160;<a class="el" href="perf__counter_8c.html#a7e25d9380f9ef903923964322e71f2f6">perf_counter.c</a></li>
<li>__OM&#160;:&#160;<a class="el" href="perf__counter_8c.html#a0ea2009ed8fd9ef35b48708280fdb758">perf_counter.c</a></li>
<li>__on_context_switch()&#160;:&#160;<a class="el" href="perf__os__patch__rtx5_8c.html#a3a82490931e58666b859d4f6d08cfb5d">perf_os_patch_rtx5.c</a></li>
<li>__on_context_switch_in()&#160;:&#160;<a class="el" href="perf__counter_8c.html#aded00de9fbde9be7f8872f85685b36a4">perf_counter.c</a>, <a class="el" href="perf__os__patch__freertos_8c.html#aded00de9fbde9be7f8872f85685b36a4">perf_os_patch_freertos.c</a>, <a class="el" href="perf__os__patch__rt__thread_8c.html#aded00de9fbde9be7f8872f85685b36a4">perf_os_patch_rt_thread.c</a>, <a class="el" href="perf__os__patch__rtx5_8c.html#aded00de9fbde9be7f8872f85685b36a4">perf_os_patch_rtx5.c</a>, <a class="el" href="perf__os__patch__threadx_8c.html#aded00de9fbde9be7f8872f85685b36a4">perf_os_patch_threadx.c</a></li>
<li>__on_context_switch_out()&#160;:&#160;<a class="el" href="perf__counter_8c.html#aee2926404ade74811fa658786035f745">perf_counter.c</a>, <a class="el" href="perf__os__patch__freertos_8c.html#aee2926404ade74811fa658786035f745">perf_os_patch_freertos.c</a>, <a class="el" href="perf__os__patch__rt__thread_8c.html#aee2926404ade74811fa658786035f745">perf_os_patch_rt_thread.c</a>, <a class="el" href="perf__os__patch__rtx5_8c.html#aee2926404ade74811fa658786035f745">perf_os_patch_rtx5.c</a>, <a class="el" href="perf__os__patch__threadx_8c.html#aee2926404ade74811fa658786035f745">perf_os_patch_threadx.c</a></li>
<li>__PER_COUNTER_VER__&#160;:&#160;<a class="el" href="perf__counter_8h.html#a41124119fd6c23775692729a2ec26d71">perf_counter.h</a></li>
<li>__PERF_COUNTER_VER_MAJOR__&#160;:&#160;<a class="el" href="perf__counter_8h.html#a2e49e3ac701e3e087719d74f2a4ef840">perf_counter.h</a></li>
<li>__PERF_COUNTER_VER_MINOR__&#160;:&#160;<a class="el" href="perf__counter_8h.html#adb870e7ae89ad2c5c7aeb70ba16eeaf6">perf_counter.h</a></li>
<li>__PERF_COUNTER_VER_REVISE__&#160;:&#160;<a class="el" href="perf__counter_8h.html#a62d05224187a7f224d1803a64951cf3f">perf_counter.h</a></li>
<li>__PERF_COUNTER_VER_STR__&#160;:&#160;<a class="el" href="perf__counter_8h.html#afc04dcb2bf83faaf5b14559d632c6b19">perf_counter.h</a></li>
<li>__perf_os_patch_init()&#160;:&#160;<a class="el" href="perf__counter_8c.html#a4781d1de67a0b4fd21656377d0a2a0bc">perf_counter.c</a>, <a class="el" href="perf__os__patch__rt__thread_8c.html#a6d5a15a297eb8d32f4d96b163bce36d9">perf_os_patch_rt_thread.c</a></li>
<li>__PLOOC_VA_NUM_ARGS&#160;:&#160;<a class="el" href="perf__counter_8h.html#a9d1c7b8467fca7e2fcf0426ef294a171">perf_counter.h</a></li>
<li>__PLOOC_VA_NUM_ARGS_IMPL&#160;:&#160;<a class="el" href="perf__counter_8h.html#adb244281cf7a9410d7dc12823e105d02">perf_counter.h</a></li>
<li>__rt_thread_scheduler_hook()&#160;:&#160;<a class="el" href="perf__os__patch__rt__thread_8c.html#abaf903de1b645f8ecdba87f4366322ec">perf_os_patch_rt_thread.c</a></li>
<li>__start_task_cycle_counter()&#160;:&#160;<a class="el" href="perf__counter_8c.html#ad17c3ab8fb4c68ebc676562ab00770a1">perf_counter.c</a></li>
<li>__stop_task_cycle_counter()&#160;:&#160;<a class="el" href="perf__counter_8c.html#a81a5dabf3ca19922587390de6c9f0ff5">perf_counter.c</a></li>
<li>__super_loop_monitor__&#160;:&#160;<a class="el" href="perf__counter_8h.html#acfa3bf174dd68eeca5c7e4a16cdc24ea">perf_counter.h</a></li>
<li>__using1&#160;:&#160;<a class="el" href="perf__counter_8h.html#ac489b777985cc6133a3658d95dd424e1">perf_counter.h</a></li>
<li>__using2&#160;:&#160;<a class="el" href="perf__counter_8h.html#af2456eddcc03ba108e670a583367342e">perf_counter.h</a></li>
<li>__using3&#160;:&#160;<a class="el" href="perf__counter_8h.html#a3447ab4da15b7a4e81830839202ee0be">perf_counter.h</a></li>
<li>__using4&#160;:&#160;<a class="el" href="perf__counter_8h.html#a1a10811d7e12a6be9be6ccdf1ef824e8">perf_counter.h</a></li>
<li>__with2&#160;:&#160;<a class="el" href="perf__counter_8h.html#a7e7af9eb2708d17ce5ec5ea01cb914f1">perf_counter.h</a></li>
<li>__with3&#160;:&#160;<a class="el" href="perf__counter_8h.html#aafef7ac0d7697d31814ff152d9eae0cc">perf_counter.h</a></li>
<li>_tx_execution_isr_enter()&#160;:&#160;<a class="el" href="perf__os__patch__threadx_8c.html#af4e84b75796479b38375b2097a5a7673">perf_os_patch_threadx.c</a></li>
<li>_tx_execution_isr_exit()&#160;:&#160;<a class="el" href="perf__os__patch__threadx_8c.html#ad24217ee7fe98a52f4bfd3c1bedbd3b5">perf_os_patch_threadx.c</a></li>
<li>_tx_execution_thread_enter()&#160;:&#160;<a class="el" href="perf__os__patch__threadx_8c.html#a72166391ae25f12a0741f945ba30e422">perf_os_patch_threadx.c</a></li>
<li>_tx_execution_thread_exit()&#160;:&#160;<a class="el" href="perf__os__patch__threadx_8c.html#a85297ebd81eb8d1ed014ea7b55323ac2">perf_os_patch_threadx.c</a></li>
</ul>
<h3><a id="index_a" name="index_a"></a>- a -</h3><ul>
<li>ALT_CONNECT2&#160;:&#160;<a class="el" href="perf__counter_8h.html#ac8f325950e08c3662d3c94233cf40e13">perf_counter.h</a></li>
</ul>
<h3><a id="index_c" name="index_c"></a>- c -</h3><ul>
<li>check_systick()&#160;:&#160;<a class="el" href="perf__counter_8c.html#a21ccde78f8ad778f05be60855c5a8283">perf_counter.c</a></li>
<li>CONNECT&#160;:&#160;<a class="el" href="perf__counter_8h.html#a1409defa6d3e973b7efee74d2de7386d">perf_counter.h</a></li>
<li>CONNECT2&#160;:&#160;<a class="el" href="perf__counter_8h.html#ae0db1f91522f0c020e1068d8bb2034cb">perf_counter.h</a></li>
<li>CONNECT3&#160;:&#160;<a class="el" href="perf__counter_8h.html#a3994906c1038cf4f04e9578079429555">perf_counter.h</a></li>
<li>CONNECT4&#160;:&#160;<a class="el" href="perf__counter_8h.html#a4be8346e8c8e544e3dc4da819f03d636">perf_counter.h</a></li>
<li>CONNECT5&#160;:&#160;<a class="el" href="perf__counter_8h.html#a397bd70fecd355461d99b228d02d01f8">perf_counter.h</a></li>
<li>CONNECT6&#160;:&#160;<a class="el" href="perf__counter_8h.html#a3bbbfb88c43244289b9a4e4521caf7cb">perf_counter.h</a></li>
<li>CONNECT7&#160;:&#160;<a class="el" href="perf__counter_8h.html#a8deb36935d07c69646a26993ab15328a">perf_counter.h</a></li>
<li>CONNECT8&#160;:&#160;<a class="el" href="perf__counter_8h.html#a9ce80b30ee8f4bb424c23f785b3481b8">perf_counter.h</a></li>
<li>CONNECT9&#160;:&#160;<a class="el" href="perf__counter_8h.html#a67d6d69c5ea260de9bdf81edf9672af3">perf_counter.h</a></li>
</ul>
<h3><a id="index_d" name="index_d"></a>- d -</h3><ul>
<li>delay_ms()&#160;:&#160;<a class="el" href="perf__counter_8c.html#a2add8ab5b23b568bba6d46f9c977dbce">perf_counter.c</a>, <a class="el" href="perf__counter_8h.html#a2add8ab5b23b568bba6d46f9c977dbce">perf_counter.h</a></li>
<li>delay_us()&#160;:&#160;<a class="el" href="perf__counter_8c.html#a9776dfed871d0e0775c876f16e7618f7">perf_counter.c</a>, <a class="el" href="perf__counter_8h.html#a9776dfed871d0e0775c876f16e7618f7">perf_counter.h</a></li>
<li>dimof&#160;:&#160;<a class="el" href="perf__counter_8h.html#a7b6c484887a402bba1af11b457264553">perf_counter.h</a></li>
<li>disable_task_cycle_info&#160;:&#160;<a class="el" href="perf__counter_8h.html#af3fceb4da6cc89dd20a874bd147c2414">perf_counter.h</a>, <a class="el" href="perf__counter_8c.html#a01d6cd52b6c48c1e0c8a68b48ad87b0c">perf_counter.c</a></li>
</ul>
<h3><a id="index_e" name="index_e"></a>- e -</h3><ul>
<li>enable_task_cycle_info&#160;:&#160;<a class="el" href="perf__counter_8h.html#a96f0ed25511e535714003ec4ca738415">perf_counter.h</a>, <a class="el" href="perf__counter_8c.html#ae2c015694f2e89240466e9b1d423c6ec">perf_counter.c</a></li>
<li>EvtFreeRTOSTasks_TaskSwitchedIn&#160;:&#160;<a class="el" href="perf__os__patch__freertos_8c.html#aea3ef800c9428b732ffbe8445eefee66">perf_os_patch_freertos.c</a></li>
<li>EvtFreeRTOSTasks_TaskSwitchedOut&#160;:&#160;<a class="el" href="perf__os__patch__freertos_8c.html#a324f9bb05f8ce010d19ec560b4e1da95">perf_os_patch_freertos.c</a></li>
<li>EvtFreeRTOSTasksNo&#160;:&#160;<a class="el" href="perf__os__patch__freertos_8c.html#af1545bfa164313b88b851eb84f466541">perf_os_patch_freertos.c</a></li>
</ul>
<h3><a id="index_f" name="index_f"></a>- f -</h3><ul>
<li>foreach&#160;:&#160;<a class="el" href="perf__counter_8h.html#a623a729e6571efedb0c5528689d6120d">perf_counter.h</a></li>
<li>foreach2&#160;:&#160;<a class="el" href="perf__counter_8h.html#ac4e7ceea5fc047d059b6b1898a697cb4">perf_counter.h</a></li>
<li>foreach3&#160;:&#160;<a class="el" href="perf__counter_8h.html#a2c93a7704596f19ff84cbfec513c3a5a">perf_counter.h</a></li>
</ul>
<h3><a id="index_g" name="index_g"></a>- g -</h3><ul>
<li>get_rtos_task_cycle_info()&#160;:&#160;<a class="el" href="perf__counter_8c.html#a87abe08a2093c8c69e5f813f565a1d31">perf_counter.c</a>, <a class="el" href="perf__os__patch__freertos_8c.html#aafe74ae771ab855185531aae1e42657c">perf_os_patch_freertos.c</a>, <a class="el" href="perf__os__patch__rt__thread_8c.html#aafe74ae771ab855185531aae1e42657c">perf_os_patch_rt_thread.c</a>, <a class="el" href="perf__os__patch__rtx5_8c.html#aafe74ae771ab855185531aae1e42657c">perf_os_patch_rtx5.c</a>, <a class="el" href="perf__os__patch__threadx_8c.html#aafe74ae771ab855185531aae1e42657c">perf_os_patch_threadx.c</a></li>
<li>get_system_ms()&#160;:&#160;<a class="el" href="perf__counter_8c.html#a98c51d83fdb448a2733d0a309366149c">perf_counter.c</a>, <a class="el" href="perf__counter_8h.html#a98c51d83fdb448a2733d0a309366149c">perf_counter.h</a></li>
<li>get_system_ticks()&#160;:&#160;<a class="el" href="perf__counter_8c.html#a32dabfe5b863f89f71735b20a0caf1ea">perf_counter.c</a>, <a class="el" href="perf__counter_8h.html#a32dabfe5b863f89f71735b20a0caf1ea">perf_counter.h</a></li>
</ul>
<h3><a id="index_i" name="index_i"></a>- i -</h3><ul>
<li>init_cycle_counter()&#160;:&#160;<a class="el" href="perf__counter_8c.html#a9097d62a30ad2b4f75462c78d7200fa8">perf_counter.c</a>, <a class="el" href="perf__counter_8h.html#a9097d62a30ad2b4f75462c78d7200fa8">perf_counter.h</a></li>
<li>init_task_cycle_counter&#160;:&#160;<a class="el" href="perf__counter_8h.html#a00278751616ee5d95ce4bea4ffb59ce7">perf_counter.h</a>, <a class="el" href="perf__counter_8c.html#a74d7160e4b3588456a85fcdce6cee6ab">perf_counter.c</a></li>
<li>init_task_cycle_info&#160;:&#160;<a class="el" href="perf__counter_8h.html#a607df0241b0f85868159e1e15f44acdc">perf_counter.h</a>, <a class="el" href="perf__counter_8c.html#af5404b4b72cfaf910fb2ebeb8d7a4448">perf_counter.c</a></li>
</ul>
<h3><a id="index_m" name="index_m"></a>- m -</h3><ul>
<li>MAGIC_WORD_AGENT_LIST_VALID&#160;:&#160;<a class="el" href="perf__counter_8c.html#a5ed2b69d382ff960de71b5aa2e0b0deb">perf_counter.c</a></li>
<li>MAGIC_WORD_CANARY&#160;:&#160;<a class="el" href="perf__counter_8c.html#acd6c9ac2bce565b27fef68a011411100">perf_counter.c</a></li>
<li>MPU_WRAPPERS_INCLUDED_FROM_API_FILE&#160;:&#160;<a class="el" href="perf__os__patch__freertos_8c.html#ab622d8c674f2a417a666a7ed89109e79">perf_os_patch_freertos.c</a></li>
</ul>
<h3><a id="index_o" name="index_o"></a>- o -</h3><ul>
<li>ORIG_FUNC&#160;:&#160;<a class="el" href="perf__os__patch__freertos_8c.html#aa7290a1d64a5cbe15d52fec89b35f1b9">perf_os_patch_freertos.c</a>, <a class="el" href="perf__os__patch__rt__thread_8c.html#aa7290a1d64a5cbe15d52fec89b35f1b9">perf_os_patch_rt_thread.c</a>, <a class="el" href="perf__os__patch__rtx5_8c.html#aa7290a1d64a5cbe15d52fec89b35f1b9">perf_os_patch_rtx5.c</a>, <a class="el" href="perf__os__patch__threadx_8c.html#aa7290a1d64a5cbe15d52fec89b35f1b9">perf_os_patch_threadx.c</a></li>
</ul>
<h3><a id="index_p" name="index_p"></a>- p -</h3><ul>
<li>PERF_CNT_COMPENSATION_THRESHOLD&#160;:&#160;<a class="el" href="perf__counter_8c.html#a0f17a2b1bde9a2632daa7ad0b96df9e5">perf_counter.c</a></li>
<li>PERF_CNT_DELAY_US_COMPENSATION&#160;:&#160;<a class="el" href="perf__counter_8c.html#ad7332da0831148c773a7c5211d5bfa1e">perf_counter.c</a></li>
<li>pxCurrentTCB&#160;:&#160;<a class="el" href="perf__os__patch__freertos_8c.html#acdecf2afe97343aba42b111bc6df9eea">perf_os_patch_freertos.c</a></li>
</ul>
<h3><a id="index_r" name="index_r"></a>- r -</h3><ul>
<li>register_task_cycle_agent&#160;:&#160;<a class="el" href="perf__counter_8h.html#a11d20291b945175264a568c4c9dcd9bd">perf_counter.h</a>, <a class="el" href="perf__counter_8c.html#a0df8fe57dbd607e1992149a890612476">perf_counter.c</a></li>
<li>resume_task_cycle_info&#160;:&#160;<a class="el" href="perf__counter_8h.html#a06e00a5b710c5144aa756c1905c12fcf">perf_counter.h</a>, <a class="el" href="perf__counter_8c.html#a79c2926ae10e2cc327faf58e6094866d">perf_counter.c</a></li>
<li>rt_current_thread&#160;:&#160;<a class="el" href="perf__os__patch__rt__thread_8c.html#a79f56a5699427ae8a615005dfbaf4325">perf_os_patch_rt_thread.c</a></li>
</ul>
<h3><a id="index_s" name="index_s"></a>- s -</h3><ul>
<li>safe_atom_code&#160;:&#160;<a class="el" href="perf__counter_8h.html#a1616b4eef4bbd94969a9010c4114b488">perf_counter.h</a></li>
<li>SAFE_NAME&#160;:&#160;<a class="el" href="perf__counter_8h.html#af2d5b85528ace8bbe8954d1ece9a3c51">perf_counter.h</a></li>
<li>SCB&#160;:&#160;<a class="el" href="perf__counter_8c.html#aaaf6477c2bde2f00f99e3c2fd1060b01">perf_counter.c</a></li>
<li>SCB_BASE&#160;:&#160;<a class="el" href="perf__counter_8c.html#ad55a7ddb8d4b2398b0c1cfec76c0d9fd">perf_counter.c</a></li>
<li>SCB_ICSR_PENDSTCLR_Msk&#160;:&#160;<a class="el" href="perf__counter_8c.html#ab241827d2a793269d8cd99b9b28c2157">perf_counter.c</a></li>
<li>SCB_ICSR_PENDSTCLR_Pos&#160;:&#160;<a class="el" href="perf__counter_8c.html#adbe25e4b333ece1341beb1a740168fdc">perf_counter.c</a></li>
<li>SCB_ICSR_PENDSTSET_Msk&#160;:&#160;<a class="el" href="perf__counter_8c.html#a7325b61ea0ec323ef2d5c893b112e546">perf_counter.c</a></li>
<li>SCB_ICSR_PENDSTSET_Pos&#160;:&#160;<a class="el" href="perf__counter_8c.html#a9dbb3358c6167c9c3f85661b90fb2794">perf_counter.c</a></li>
<li>SCS_BASE&#160;:&#160;<a class="el" href="perf__counter_8c.html#a3c14ed93192c8d9143322bbf77ebf770">perf_counter.c</a></li>
<li>start_cycle_counter()&#160;:&#160;<a class="el" href="perf__counter_8c.html#af33fd92801223d4befa49c610332ddd4">perf_counter.c</a>, <a class="el" href="perf__counter_8h.html#af33fd92801223d4befa49c610332ddd4">perf_counter.h</a></li>
<li>start_task_cycle_counter&#160;:&#160;<a class="el" href="perf__counter_8h.html#ab84fa299db0fc4c0a897eb0a3aab6233">perf_counter.h</a></li>
<li>stop_cycle_counter()&#160;:&#160;<a class="el" href="perf__counter_8c.html#a014af75d3945894c4740773e8a28d723">perf_counter.c</a>, <a class="el" href="perf__counter_8h.html#a014af75d3945894c4740773e8a28d723">perf_counter.h</a></li>
<li>stop_task_cycle_counter&#160;:&#160;<a class="el" href="perf__counter_8h.html#ad9e3470ff82262ac6daca041607c31da">perf_counter.h</a></li>
<li>SystemCoreClock&#160;:&#160;<a class="el" href="perf__counter_8c.html#aa3cd3e43291e81e795d642b79b6088e6">perf_counter.c</a></li>
<li>SysTick&#160;:&#160;<a class="el" href="perf__counter_8c.html#acd96c53beeaff8f603fcda425eb295de">perf_counter.c</a></li>
<li>SysTick_BASE&#160;:&#160;<a class="el" href="perf__counter_8c.html#a58effaac0b93006b756d33209e814646">perf_counter.c</a></li>
<li>SysTick_CALIB_NOREF_Msk&#160;:&#160;<a class="el" href="perf__counter_8c.html#a3af0d891fdd99bcc8d8912d37830edb6">perf_counter.c</a></li>
<li>SysTick_CALIB_NOREF_Pos&#160;:&#160;<a class="el" href="perf__counter_8c.html#a534dbe414e7a46a6ce4c1eca1fbff409">perf_counter.c</a></li>
<li>SysTick_CALIB_SKEW_Msk&#160;:&#160;<a class="el" href="perf__counter_8c.html#a8a6a85a87334776f33d77fd147587431">perf_counter.c</a></li>
<li>SysTick_CALIB_SKEW_Pos&#160;:&#160;<a class="el" href="perf__counter_8c.html#add0c9cd6641b9f6a0c618e7982954860">perf_counter.c</a></li>
<li>SysTick_CALIB_TENMS_Msk&#160;:&#160;<a class="el" href="perf__counter_8c.html#af1e68865c5aece2ad58971225bd3e95e">perf_counter.c</a></li>
<li>SysTick_CALIB_TENMS_Pos&#160;:&#160;<a class="el" href="perf__counter_8c.html#acae558f6e75a0bed5d826f606d8e695e">perf_counter.c</a></li>
<li>SysTick_Config()&#160;:&#160;<a class="el" href="perf__counter_8c.html#ae4e8f0238527c69f522029b93c8e5b78">perf_counter.c</a></li>
<li>SysTick_CTRL_CLKSOURCE_Msk&#160;:&#160;<a class="el" href="perf__counter_8c.html#aa41d06039797423a46596bd313d57373">perf_counter.c</a></li>
<li>SysTick_CTRL_CLKSOURCE_Pos&#160;:&#160;<a class="el" href="perf__counter_8c.html#a24fbc69a5f0b78d67fda2300257baff1">perf_counter.c</a></li>
<li>SysTick_CTRL_COUNTFLAG_Msk&#160;:&#160;<a class="el" href="perf__counter_8c.html#a1bf3033ecccf200f59baefe15dbb367c">perf_counter.c</a></li>
<li>SysTick_CTRL_COUNTFLAG_Pos&#160;:&#160;<a class="el" href="perf__counter_8c.html#adbb65d4a815759649db41df216ed4d60">perf_counter.c</a></li>
<li>SysTick_CTRL_ENABLE_Msk&#160;:&#160;<a class="el" href="perf__counter_8c.html#a16c9fee0ed0235524bdeb38af328fd1f">perf_counter.c</a></li>
<li>SysTick_CTRL_ENABLE_Pos&#160;:&#160;<a class="el" href="perf__counter_8c.html#a0b48cc1e36d92a92e4bf632890314810">perf_counter.c</a></li>
<li>SysTick_CTRL_TICKINT_Msk&#160;:&#160;<a class="el" href="perf__counter_8c.html#a95bb984266ca764024836a870238a027">perf_counter.c</a></li>
<li>SysTick_CTRL_TICKINT_Pos&#160;:&#160;<a class="el" href="perf__counter_8c.html#a88f45bbb89ce8df3cd2b2613c7b48214">perf_counter.c</a></li>
<li>SysTick_LOAD_RELOAD_Msk&#160;:&#160;<a class="el" href="perf__counter_8c.html#a265912a7962f0e1abd170336e579b1b1">perf_counter.c</a></li>
<li>SysTick_LOAD_RELOAD_Pos&#160;:&#160;<a class="el" href="perf__counter_8c.html#af44d10df359dc5bf5752b0894ae3bad2">perf_counter.c</a></li>
<li>SysTick_VAL_CURRENT_Msk&#160;:&#160;<a class="el" href="perf__counter_8c.html#afc77b56d568930b49a2474debc75ab45">perf_counter.c</a></li>
<li>SysTick_VAL_CURRENT_Pos&#160;:&#160;<a class="el" href="perf__counter_8c.html#a3208104c3b019b5de35ae8c21d5c34dd">perf_counter.c</a></li>
</ul>
<h3><a id="index_t" name="index_t"></a>- t -</h3><ul>
<li>task_cycle_info_agent_t&#160;:&#160;<a class="el" href="perf__counter_8h.html#ac118677bc3eb6a806eb1381d656b6c25">perf_counter.h</a></li>
<li>TCB_t&#160;:&#160;<a class="el" href="perf__os__patch__freertos_8c.html#aa3c2dda92a6dc22860bbdb36e42a0453">perf_os_patch_freertos.c</a></li>
<li>tskTCB&#160;:&#160;<a class="el" href="perf__os__patch__freertos_8c.html#a67b1ddede4e49c946dd720d83c5838a5">perf_os_patch_freertos.c</a></li>
</ul>
<h3><a id="index_u" name="index_u"></a>- u -</h3><ul>
<li>unregister_task_cycle_agent&#160;:&#160;<a class="el" href="perf__counter_8h.html#afdd7c2e511c981ad62525076f53a762e">perf_counter.h</a>, <a class="el" href="perf__counter_8c.html#ae8c905d7221a7299fba5edbbfe1f449f">perf_counter.c</a></li>
<li>UNUSED_PARAM&#160;:&#160;<a class="el" href="perf__counter_8h.html#a4e95e8dc0d6a7f273a26c9e4bc239f83">perf_counter.h</a></li>
<li>user_code_insert_to_systick_handler()&#160;:&#160;<a class="el" href="perf__counter_8c.html#a0a6e5160f19f152b0b9a502e5e24adb7">perf_counter.c</a>, <a class="el" href="perf__counter_8h.html#a0a6e5160f19f152b0b9a502e5e24adb7">perf_counter.h</a></li>
<li>using&#160;:&#160;<a class="el" href="perf__counter_8h.html#ad90955bd356a41041a7dcb112a450766">perf_counter.h</a></li>
</ul>
<h3><a id="index_w" name="index_w"></a>- w -</h3><ul>
<li>with&#160;:&#160;<a class="el" href="perf__counter_8h.html#afc5b077f9764ca6f11075ce72357dd65">perf_counter.h</a></li>
<li>WRAP_FUNC&#160;:&#160;<a class="el" href="perf__os__patch__freertos_8c.html#a34b5fd2f760a3a19875464d26bdb71df">perf_os_patch_freertos.c</a>, <a class="el" href="perf__os__patch__rt__thread_8c.html#a34b5fd2f760a3a19875464d26bdb71df">perf_os_patch_rt_thread.c</a>, <a class="el" href="perf__os__patch__rtx5_8c.html#a34b5fd2f760a3a19875464d26bdb71df">perf_os_patch_rtx5.c</a>, <a class="el" href="perf__os__patch__threadx_8c.html#a34b5fd2f760a3a19875464d26bdb71df">perf_os_patch_threadx.c</a></li>
</ul>
</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="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.4 </li>
</ul>
</div>
</body>
</html>

View File

@ -0,0 +1,247 @@
<!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=11"/>
<meta name="generator" content="Doxygen 1.9.4"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>perf_counter: Globals</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 id="projectrow">
<td id="projectalign">
<div id="projectname">perf_counter
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.4 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @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:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(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:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('globals_defs.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="contents">
&#160;
<h3><a id="index__5F" name="index__5F"></a>- _ -</h3><ul>
<li>__CONNECT2&#160;:&#160;<a class="el" href="perf__counter_8h.html#ae490fc8ce9ed8d7853ab956e76ebf1b8">perf_counter.h</a></li>
<li>__CONNECT3&#160;:&#160;<a class="el" href="perf__counter_8h.html#af40f44eb68f59549a3e5d6c91429c3c9">perf_counter.h</a></li>
<li>__CONNECT4&#160;:&#160;<a class="el" href="perf__counter_8h.html#ade59615465df27344e32b05c3629ef03">perf_counter.h</a></li>
<li>__CONNECT5&#160;:&#160;<a class="el" href="perf__counter_8h.html#ab6fd44a39b7fdd5c8c3b7309992e1a00">perf_counter.h</a></li>
<li>__CONNECT6&#160;:&#160;<a class="el" href="perf__counter_8h.html#ae2d17b539ab98e8b0435fce5d8aff2b4">perf_counter.h</a></li>
<li>__CONNECT7&#160;:&#160;<a class="el" href="perf__counter_8h.html#a2b3247f9df3a6702c90468722994bf49">perf_counter.h</a></li>
<li>__CONNECT8&#160;:&#160;<a class="el" href="perf__counter_8h.html#a798b1c8c5d91763e99d63fc7c326dead">perf_counter.h</a></li>
<li>__CONNECT9&#160;:&#160;<a class="el" href="perf__counter_8h.html#a78dee228d830879c65edae8392fbf159">perf_counter.h</a></li>
<li>__cycleof__&#160;:&#160;<a class="el" href="perf__counter_8h.html#a147d3eb2e96136dc1758aa8d3e2a089c">perf_counter.h</a></li>
<li>__I&#160;:&#160;<a class="el" href="perf__counter_8c.html#af63697ed9952cc71e1225efe205f6cd3">perf_counter.c</a></li>
<li>__IM&#160;:&#160;<a class="el" href="perf__counter_8c.html#a4cc1649793116d7c2d8afce7a4ffce43">perf_counter.c</a></li>
<li>__IMPLEMENT_PERF_COUNTER&#160;:&#160;<a class="el" href="perf__counter_8c.html#afedb615b5c48d33ad8523f92078bf66c">perf_counter.c</a></li>
<li>__IO&#160;:&#160;<a class="el" href="perf__counter_8c.html#aec43007d9998a0a0e01faede4133d6be">perf_counter.c</a></li>
<li>__IOM&#160;:&#160;<a class="el" href="perf__counter_8c.html#ab6caba5853a60a17e8e04499b52bf691">perf_counter.c</a></li>
<li>__IRQ_SAFE&#160;:&#160;<a class="el" href="perf__counter_8h.html#a966a3eb20671a2a8c44d63d459f5472e">perf_counter.h</a></li>
<li>__MACRO_EXPANDING&#160;:&#160;<a class="el" href="perf__counter_8h.html#a39273cdd59b6f17525f429d61f242a73">perf_counter.h</a></li>
<li>__O&#160;:&#160;<a class="el" href="perf__counter_8c.html#a7e25d9380f9ef903923964322e71f2f6">perf_counter.c</a></li>
<li>__OM&#160;:&#160;<a class="el" href="perf__counter_8c.html#a0ea2009ed8fd9ef35b48708280fdb758">perf_counter.c</a></li>
<li>__PER_COUNTER_VER__&#160;:&#160;<a class="el" href="perf__counter_8h.html#a41124119fd6c23775692729a2ec26d71">perf_counter.h</a></li>
<li>__PERF_COUNTER_VER_MAJOR__&#160;:&#160;<a class="el" href="perf__counter_8h.html#a2e49e3ac701e3e087719d74f2a4ef840">perf_counter.h</a></li>
<li>__PERF_COUNTER_VER_MINOR__&#160;:&#160;<a class="el" href="perf__counter_8h.html#adb870e7ae89ad2c5c7aeb70ba16eeaf6">perf_counter.h</a></li>
<li>__PERF_COUNTER_VER_REVISE__&#160;:&#160;<a class="el" href="perf__counter_8h.html#a62d05224187a7f224d1803a64951cf3f">perf_counter.h</a></li>
<li>__PERF_COUNTER_VER_STR__&#160;:&#160;<a class="el" href="perf__counter_8h.html#afc04dcb2bf83faaf5b14559d632c6b19">perf_counter.h</a></li>
<li>__PLOOC_VA_NUM_ARGS&#160;:&#160;<a class="el" href="perf__counter_8h.html#a9d1c7b8467fca7e2fcf0426ef294a171">perf_counter.h</a></li>
<li>__PLOOC_VA_NUM_ARGS_IMPL&#160;:&#160;<a class="el" href="perf__counter_8h.html#adb244281cf7a9410d7dc12823e105d02">perf_counter.h</a></li>
<li>__super_loop_monitor__&#160;:&#160;<a class="el" href="perf__counter_8h.html#acfa3bf174dd68eeca5c7e4a16cdc24ea">perf_counter.h</a></li>
<li>__using1&#160;:&#160;<a class="el" href="perf__counter_8h.html#ac489b777985cc6133a3658d95dd424e1">perf_counter.h</a></li>
<li>__using2&#160;:&#160;<a class="el" href="perf__counter_8h.html#af2456eddcc03ba108e670a583367342e">perf_counter.h</a></li>
<li>__using3&#160;:&#160;<a class="el" href="perf__counter_8h.html#a3447ab4da15b7a4e81830839202ee0be">perf_counter.h</a></li>
<li>__using4&#160;:&#160;<a class="el" href="perf__counter_8h.html#a1a10811d7e12a6be9be6ccdf1ef824e8">perf_counter.h</a></li>
<li>__with2&#160;:&#160;<a class="el" href="perf__counter_8h.html#a7e7af9eb2708d17ce5ec5ea01cb914f1">perf_counter.h</a></li>
<li>__with3&#160;:&#160;<a class="el" href="perf__counter_8h.html#aafef7ac0d7697d31814ff152d9eae0cc">perf_counter.h</a></li>
</ul>
<h3><a id="index_a" name="index_a"></a>- a -</h3><ul>
<li>ALT_CONNECT2&#160;:&#160;<a class="el" href="perf__counter_8h.html#ac8f325950e08c3662d3c94233cf40e13">perf_counter.h</a></li>
</ul>
<h3><a id="index_c" name="index_c"></a>- c -</h3><ul>
<li>CONNECT&#160;:&#160;<a class="el" href="perf__counter_8h.html#a1409defa6d3e973b7efee74d2de7386d">perf_counter.h</a></li>
<li>CONNECT2&#160;:&#160;<a class="el" href="perf__counter_8h.html#ae0db1f91522f0c020e1068d8bb2034cb">perf_counter.h</a></li>
<li>CONNECT3&#160;:&#160;<a class="el" href="perf__counter_8h.html#a3994906c1038cf4f04e9578079429555">perf_counter.h</a></li>
<li>CONNECT4&#160;:&#160;<a class="el" href="perf__counter_8h.html#a4be8346e8c8e544e3dc4da819f03d636">perf_counter.h</a></li>
<li>CONNECT5&#160;:&#160;<a class="el" href="perf__counter_8h.html#a397bd70fecd355461d99b228d02d01f8">perf_counter.h</a></li>
<li>CONNECT6&#160;:&#160;<a class="el" href="perf__counter_8h.html#a3bbbfb88c43244289b9a4e4521caf7cb">perf_counter.h</a></li>
<li>CONNECT7&#160;:&#160;<a class="el" href="perf__counter_8h.html#a8deb36935d07c69646a26993ab15328a">perf_counter.h</a></li>
<li>CONNECT8&#160;:&#160;<a class="el" href="perf__counter_8h.html#a9ce80b30ee8f4bb424c23f785b3481b8">perf_counter.h</a></li>
<li>CONNECT9&#160;:&#160;<a class="el" href="perf__counter_8h.html#a67d6d69c5ea260de9bdf81edf9672af3">perf_counter.h</a></li>
</ul>
<h3><a id="index_d" name="index_d"></a>- d -</h3><ul>
<li>dimof&#160;:&#160;<a class="el" href="perf__counter_8h.html#a7b6c484887a402bba1af11b457264553">perf_counter.h</a></li>
<li>disable_task_cycle_info&#160;:&#160;<a class="el" href="perf__counter_8h.html#af3fceb4da6cc89dd20a874bd147c2414">perf_counter.h</a></li>
</ul>
<h3><a id="index_e" name="index_e"></a>- e -</h3><ul>
<li>enable_task_cycle_info&#160;:&#160;<a class="el" href="perf__counter_8h.html#a96f0ed25511e535714003ec4ca738415">perf_counter.h</a></li>
<li>EvtFreeRTOSTasks_TaskSwitchedIn&#160;:&#160;<a class="el" href="perf__os__patch__freertos_8c.html#aea3ef800c9428b732ffbe8445eefee66">perf_os_patch_freertos.c</a></li>
<li>EvtFreeRTOSTasks_TaskSwitchedOut&#160;:&#160;<a class="el" href="perf__os__patch__freertos_8c.html#a324f9bb05f8ce010d19ec560b4e1da95">perf_os_patch_freertos.c</a></li>
<li>EvtFreeRTOSTasksNo&#160;:&#160;<a class="el" href="perf__os__patch__freertos_8c.html#af1545bfa164313b88b851eb84f466541">perf_os_patch_freertos.c</a></li>
</ul>
<h3><a id="index_f" name="index_f"></a>- f -</h3><ul>
<li>foreach&#160;:&#160;<a class="el" href="perf__counter_8h.html#a623a729e6571efedb0c5528689d6120d">perf_counter.h</a></li>
<li>foreach2&#160;:&#160;<a class="el" href="perf__counter_8h.html#ac4e7ceea5fc047d059b6b1898a697cb4">perf_counter.h</a></li>
<li>foreach3&#160;:&#160;<a class="el" href="perf__counter_8h.html#a2c93a7704596f19ff84cbfec513c3a5a">perf_counter.h</a></li>
</ul>
<h3><a id="index_i" name="index_i"></a>- i -</h3><ul>
<li>init_task_cycle_counter&#160;:&#160;<a class="el" href="perf__counter_8h.html#a00278751616ee5d95ce4bea4ffb59ce7">perf_counter.h</a></li>
<li>init_task_cycle_info&#160;:&#160;<a class="el" href="perf__counter_8h.html#a607df0241b0f85868159e1e15f44acdc">perf_counter.h</a></li>
</ul>
<h3><a id="index_m" name="index_m"></a>- m -</h3><ul>
<li>MAGIC_WORD_AGENT_LIST_VALID&#160;:&#160;<a class="el" href="perf__counter_8c.html#a5ed2b69d382ff960de71b5aa2e0b0deb">perf_counter.c</a></li>
<li>MAGIC_WORD_CANARY&#160;:&#160;<a class="el" href="perf__counter_8c.html#acd6c9ac2bce565b27fef68a011411100">perf_counter.c</a></li>
<li>MPU_WRAPPERS_INCLUDED_FROM_API_FILE&#160;:&#160;<a class="el" href="perf__os__patch__freertos_8c.html#ab622d8c674f2a417a666a7ed89109e79">perf_os_patch_freertos.c</a></li>
</ul>
<h3><a id="index_o" name="index_o"></a>- o -</h3><ul>
<li>ORIG_FUNC&#160;:&#160;<a class="el" href="perf__os__patch__freertos_8c.html#aa7290a1d64a5cbe15d52fec89b35f1b9">perf_os_patch_freertos.c</a>, <a class="el" href="perf__os__patch__rt__thread_8c.html#aa7290a1d64a5cbe15d52fec89b35f1b9">perf_os_patch_rt_thread.c</a>, <a class="el" href="perf__os__patch__rtx5_8c.html#aa7290a1d64a5cbe15d52fec89b35f1b9">perf_os_patch_rtx5.c</a>, <a class="el" href="perf__os__patch__threadx_8c.html#aa7290a1d64a5cbe15d52fec89b35f1b9">perf_os_patch_threadx.c</a></li>
</ul>
<h3><a id="index_p" name="index_p"></a>- p -</h3><ul>
<li>PERF_CNT_COMPENSATION_THRESHOLD&#160;:&#160;<a class="el" href="perf__counter_8c.html#a0f17a2b1bde9a2632daa7ad0b96df9e5">perf_counter.c</a></li>
<li>PERF_CNT_DELAY_US_COMPENSATION&#160;:&#160;<a class="el" href="perf__counter_8c.html#ad7332da0831148c773a7c5211d5bfa1e">perf_counter.c</a></li>
</ul>
<h3><a id="index_r" name="index_r"></a>- r -</h3><ul>
<li>register_task_cycle_agent&#160;:&#160;<a class="el" href="perf__counter_8h.html#a11d20291b945175264a568c4c9dcd9bd">perf_counter.h</a></li>
<li>resume_task_cycle_info&#160;:&#160;<a class="el" href="perf__counter_8h.html#a06e00a5b710c5144aa756c1905c12fcf">perf_counter.h</a></li>
</ul>
<h3><a id="index_s" name="index_s"></a>- s -</h3><ul>
<li>safe_atom_code&#160;:&#160;<a class="el" href="perf__counter_8h.html#a1616b4eef4bbd94969a9010c4114b488">perf_counter.h</a></li>
<li>SAFE_NAME&#160;:&#160;<a class="el" href="perf__counter_8h.html#af2d5b85528ace8bbe8954d1ece9a3c51">perf_counter.h</a></li>
<li>SCB&#160;:&#160;<a class="el" href="perf__counter_8c.html#aaaf6477c2bde2f00f99e3c2fd1060b01">perf_counter.c</a></li>
<li>SCB_BASE&#160;:&#160;<a class="el" href="perf__counter_8c.html#ad55a7ddb8d4b2398b0c1cfec76c0d9fd">perf_counter.c</a></li>
<li>SCB_ICSR_PENDSTCLR_Msk&#160;:&#160;<a class="el" href="perf__counter_8c.html#ab241827d2a793269d8cd99b9b28c2157">perf_counter.c</a></li>
<li>SCB_ICSR_PENDSTCLR_Pos&#160;:&#160;<a class="el" href="perf__counter_8c.html#adbe25e4b333ece1341beb1a740168fdc">perf_counter.c</a></li>
<li>SCB_ICSR_PENDSTSET_Msk&#160;:&#160;<a class="el" href="perf__counter_8c.html#a7325b61ea0ec323ef2d5c893b112e546">perf_counter.c</a></li>
<li>SCB_ICSR_PENDSTSET_Pos&#160;:&#160;<a class="el" href="perf__counter_8c.html#a9dbb3358c6167c9c3f85661b90fb2794">perf_counter.c</a></li>
<li>SCS_BASE&#160;:&#160;<a class="el" href="perf__counter_8c.html#a3c14ed93192c8d9143322bbf77ebf770">perf_counter.c</a></li>
<li>start_task_cycle_counter&#160;:&#160;<a class="el" href="perf__counter_8h.html#ab84fa299db0fc4c0a897eb0a3aab6233">perf_counter.h</a></li>
<li>stop_task_cycle_counter&#160;:&#160;<a class="el" href="perf__counter_8h.html#ad9e3470ff82262ac6daca041607c31da">perf_counter.h</a></li>
<li>SysTick&#160;:&#160;<a class="el" href="perf__counter_8c.html#acd96c53beeaff8f603fcda425eb295de">perf_counter.c</a></li>
<li>SysTick_BASE&#160;:&#160;<a class="el" href="perf__counter_8c.html#a58effaac0b93006b756d33209e814646">perf_counter.c</a></li>
<li>SysTick_CALIB_NOREF_Msk&#160;:&#160;<a class="el" href="perf__counter_8c.html#a3af0d891fdd99bcc8d8912d37830edb6">perf_counter.c</a></li>
<li>SysTick_CALIB_NOREF_Pos&#160;:&#160;<a class="el" href="perf__counter_8c.html#a534dbe414e7a46a6ce4c1eca1fbff409">perf_counter.c</a></li>
<li>SysTick_CALIB_SKEW_Msk&#160;:&#160;<a class="el" href="perf__counter_8c.html#a8a6a85a87334776f33d77fd147587431">perf_counter.c</a></li>
<li>SysTick_CALIB_SKEW_Pos&#160;:&#160;<a class="el" href="perf__counter_8c.html#add0c9cd6641b9f6a0c618e7982954860">perf_counter.c</a></li>
<li>SysTick_CALIB_TENMS_Msk&#160;:&#160;<a class="el" href="perf__counter_8c.html#af1e68865c5aece2ad58971225bd3e95e">perf_counter.c</a></li>
<li>SysTick_CALIB_TENMS_Pos&#160;:&#160;<a class="el" href="perf__counter_8c.html#acae558f6e75a0bed5d826f606d8e695e">perf_counter.c</a></li>
<li>SysTick_CTRL_CLKSOURCE_Msk&#160;:&#160;<a class="el" href="perf__counter_8c.html#aa41d06039797423a46596bd313d57373">perf_counter.c</a></li>
<li>SysTick_CTRL_CLKSOURCE_Pos&#160;:&#160;<a class="el" href="perf__counter_8c.html#a24fbc69a5f0b78d67fda2300257baff1">perf_counter.c</a></li>
<li>SysTick_CTRL_COUNTFLAG_Msk&#160;:&#160;<a class="el" href="perf__counter_8c.html#a1bf3033ecccf200f59baefe15dbb367c">perf_counter.c</a></li>
<li>SysTick_CTRL_COUNTFLAG_Pos&#160;:&#160;<a class="el" href="perf__counter_8c.html#adbb65d4a815759649db41df216ed4d60">perf_counter.c</a></li>
<li>SysTick_CTRL_ENABLE_Msk&#160;:&#160;<a class="el" href="perf__counter_8c.html#a16c9fee0ed0235524bdeb38af328fd1f">perf_counter.c</a></li>
<li>SysTick_CTRL_ENABLE_Pos&#160;:&#160;<a class="el" href="perf__counter_8c.html#a0b48cc1e36d92a92e4bf632890314810">perf_counter.c</a></li>
<li>SysTick_CTRL_TICKINT_Msk&#160;:&#160;<a class="el" href="perf__counter_8c.html#a95bb984266ca764024836a870238a027">perf_counter.c</a></li>
<li>SysTick_CTRL_TICKINT_Pos&#160;:&#160;<a class="el" href="perf__counter_8c.html#a88f45bbb89ce8df3cd2b2613c7b48214">perf_counter.c</a></li>
<li>SysTick_LOAD_RELOAD_Msk&#160;:&#160;<a class="el" href="perf__counter_8c.html#a265912a7962f0e1abd170336e579b1b1">perf_counter.c</a></li>
<li>SysTick_LOAD_RELOAD_Pos&#160;:&#160;<a class="el" href="perf__counter_8c.html#af44d10df359dc5bf5752b0894ae3bad2">perf_counter.c</a></li>
<li>SysTick_VAL_CURRENT_Msk&#160;:&#160;<a class="el" href="perf__counter_8c.html#afc77b56d568930b49a2474debc75ab45">perf_counter.c</a></li>
<li>SysTick_VAL_CURRENT_Pos&#160;:&#160;<a class="el" href="perf__counter_8c.html#a3208104c3b019b5de35ae8c21d5c34dd">perf_counter.c</a></li>
</ul>
<h3><a id="index_u" name="index_u"></a>- u -</h3><ul>
<li>unregister_task_cycle_agent&#160;:&#160;<a class="el" href="perf__counter_8h.html#afdd7c2e511c981ad62525076f53a762e">perf_counter.h</a></li>
<li>UNUSED_PARAM&#160;:&#160;<a class="el" href="perf__counter_8h.html#a4e95e8dc0d6a7f273a26c9e4bc239f83">perf_counter.h</a></li>
<li>using&#160;:&#160;<a class="el" href="perf__counter_8h.html#ad90955bd356a41041a7dcb112a450766">perf_counter.h</a></li>
</ul>
<h3><a id="index_w" name="index_w"></a>- w -</h3><ul>
<li>with&#160;:&#160;<a class="el" href="perf__counter_8h.html#afc5b077f9764ca6f11075ce72357dd65">perf_counter.h</a></li>
<li>WRAP_FUNC&#160;:&#160;<a class="el" href="perf__os__patch__freertos_8c.html#a34b5fd2f760a3a19875464d26bdb71df">perf_os_patch_freertos.c</a>, <a class="el" href="perf__os__patch__rt__thread_8c.html#a34b5fd2f760a3a19875464d26bdb71df">perf_os_patch_rt_thread.c</a>, <a class="el" href="perf__os__patch__rtx5_8c.html#a34b5fd2f760a3a19875464d26bdb71df">perf_os_patch_rtx5.c</a>, <a class="el" href="perf__os__patch__threadx_8c.html#a34b5fd2f760a3a19875464d26bdb71df">perf_os_patch_threadx.c</a></li>
</ul>
</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="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.4 </li>
</ul>
</div>
</body>
</html>

View File

@ -0,0 +1,161 @@
<!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=11"/>
<meta name="generator" content="Doxygen 1.9.4"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>perf_counter: Globals</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 id="projectrow">
<td id="projectalign">
<div id="projectname">perf_counter
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.4 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @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:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(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:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('globals_func.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="contents">
&#160;
<h3><a id="index__5F" name="index__5F"></a>- _ -</h3><ul>
<li>__freertos_evr_on_task_switched_in()&#160;:&#160;<a class="el" href="perf__os__patch__freertos_8c.html#a411ff611b06926d6bcde27c0c621895c">perf_os_patch_freertos.c</a></li>
<li>__freertos_evr_on_task_switched_out()&#160;:&#160;<a class="el" href="perf__os__patch__freertos_8c.html#a5d7733a0a2eec8eb3c6782ddfd6bf44c">perf_os_patch_freertos.c</a></li>
<li>__on_context_switch()&#160;:&#160;<a class="el" href="perf__os__patch__rtx5_8c.html#a3a82490931e58666b859d4f6d08cfb5d">perf_os_patch_rtx5.c</a></li>
<li>__on_context_switch_in()&#160;:&#160;<a class="el" href="perf__counter_8c.html#aded00de9fbde9be7f8872f85685b36a4">perf_counter.c</a>, <a class="el" href="perf__os__patch__freertos_8c.html#aded00de9fbde9be7f8872f85685b36a4">perf_os_patch_freertos.c</a>, <a class="el" href="perf__os__patch__rt__thread_8c.html#aded00de9fbde9be7f8872f85685b36a4">perf_os_patch_rt_thread.c</a>, <a class="el" href="perf__os__patch__rtx5_8c.html#aded00de9fbde9be7f8872f85685b36a4">perf_os_patch_rtx5.c</a>, <a class="el" href="perf__os__patch__threadx_8c.html#aded00de9fbde9be7f8872f85685b36a4">perf_os_patch_threadx.c</a></li>
<li>__on_context_switch_out()&#160;:&#160;<a class="el" href="perf__counter_8c.html#aee2926404ade74811fa658786035f745">perf_counter.c</a>, <a class="el" href="perf__os__patch__freertos_8c.html#aee2926404ade74811fa658786035f745">perf_os_patch_freertos.c</a>, <a class="el" href="perf__os__patch__rt__thread_8c.html#aee2926404ade74811fa658786035f745">perf_os_patch_rt_thread.c</a>, <a class="el" href="perf__os__patch__rtx5_8c.html#aee2926404ade74811fa658786035f745">perf_os_patch_rtx5.c</a>, <a class="el" href="perf__os__patch__threadx_8c.html#aee2926404ade74811fa658786035f745">perf_os_patch_threadx.c</a></li>
<li>__perf_os_patch_init()&#160;:&#160;<a class="el" href="perf__counter_8c.html#a4781d1de67a0b4fd21656377d0a2a0bc">perf_counter.c</a>, <a class="el" href="perf__os__patch__rt__thread_8c.html#a6d5a15a297eb8d32f4d96b163bce36d9">perf_os_patch_rt_thread.c</a></li>
<li>__rt_thread_scheduler_hook()&#160;:&#160;<a class="el" href="perf__os__patch__rt__thread_8c.html#abaf903de1b645f8ecdba87f4366322ec">perf_os_patch_rt_thread.c</a></li>
<li>__start_task_cycle_counter()&#160;:&#160;<a class="el" href="perf__counter_8c.html#ad17c3ab8fb4c68ebc676562ab00770a1">perf_counter.c</a></li>
<li>__stop_task_cycle_counter()&#160;:&#160;<a class="el" href="perf__counter_8c.html#a81a5dabf3ca19922587390de6c9f0ff5">perf_counter.c</a></li>
<li>_tx_execution_isr_enter()&#160;:&#160;<a class="el" href="perf__os__patch__threadx_8c.html#af4e84b75796479b38375b2097a5a7673">perf_os_patch_threadx.c</a></li>
<li>_tx_execution_isr_exit()&#160;:&#160;<a class="el" href="perf__os__patch__threadx_8c.html#ad24217ee7fe98a52f4bfd3c1bedbd3b5">perf_os_patch_threadx.c</a></li>
<li>_tx_execution_thread_enter()&#160;:&#160;<a class="el" href="perf__os__patch__threadx_8c.html#a72166391ae25f12a0741f945ba30e422">perf_os_patch_threadx.c</a></li>
<li>_tx_execution_thread_exit()&#160;:&#160;<a class="el" href="perf__os__patch__threadx_8c.html#a85297ebd81eb8d1ed014ea7b55323ac2">perf_os_patch_threadx.c</a></li>
</ul>
<h3><a id="index_c" name="index_c"></a>- c -</h3><ul>
<li>check_systick()&#160;:&#160;<a class="el" href="perf__counter_8c.html#a21ccde78f8ad778f05be60855c5a8283">perf_counter.c</a></li>
</ul>
<h3><a id="index_d" name="index_d"></a>- d -</h3><ul>
<li>delay_ms()&#160;:&#160;<a class="el" href="perf__counter_8c.html#a2add8ab5b23b568bba6d46f9c977dbce">perf_counter.c</a>, <a class="el" href="perf__counter_8h.html#a2add8ab5b23b568bba6d46f9c977dbce">perf_counter.h</a></li>
<li>delay_us()&#160;:&#160;<a class="el" href="perf__counter_8c.html#a9776dfed871d0e0775c876f16e7618f7">perf_counter.c</a>, <a class="el" href="perf__counter_8h.html#a9776dfed871d0e0775c876f16e7618f7">perf_counter.h</a></li>
<li>disable_task_cycle_info()&#160;:&#160;<a class="el" href="perf__counter_8c.html#a01d6cd52b6c48c1e0c8a68b48ad87b0c">perf_counter.c</a></li>
</ul>
<h3><a id="index_e" name="index_e"></a>- e -</h3><ul>
<li>enable_task_cycle_info()&#160;:&#160;<a class="el" href="perf__counter_8c.html#ae2c015694f2e89240466e9b1d423c6ec">perf_counter.c</a></li>
</ul>
<h3><a id="index_g" name="index_g"></a>- g -</h3><ul>
<li>get_rtos_task_cycle_info()&#160;:&#160;<a class="el" href="perf__counter_8c.html#a87abe08a2093c8c69e5f813f565a1d31">perf_counter.c</a>, <a class="el" href="perf__os__patch__freertos_8c.html#aafe74ae771ab855185531aae1e42657c">perf_os_patch_freertos.c</a>, <a class="el" href="perf__os__patch__rt__thread_8c.html#aafe74ae771ab855185531aae1e42657c">perf_os_patch_rt_thread.c</a>, <a class="el" href="perf__os__patch__rtx5_8c.html#aafe74ae771ab855185531aae1e42657c">perf_os_patch_rtx5.c</a>, <a class="el" href="perf__os__patch__threadx_8c.html#aafe74ae771ab855185531aae1e42657c">perf_os_patch_threadx.c</a></li>
<li>get_system_ms()&#160;:&#160;<a class="el" href="perf__counter_8c.html#a98c51d83fdb448a2733d0a309366149c">perf_counter.c</a>, <a class="el" href="perf__counter_8h.html#a98c51d83fdb448a2733d0a309366149c">perf_counter.h</a></li>
<li>get_system_ticks()&#160;:&#160;<a class="el" href="perf__counter_8c.html#a32dabfe5b863f89f71735b20a0caf1ea">perf_counter.c</a>, <a class="el" href="perf__counter_8h.html#a32dabfe5b863f89f71735b20a0caf1ea">perf_counter.h</a></li>
</ul>
<h3><a id="index_i" name="index_i"></a>- i -</h3><ul>
<li>init_cycle_counter()&#160;:&#160;<a class="el" href="perf__counter_8c.html#a9097d62a30ad2b4f75462c78d7200fa8">perf_counter.c</a>, <a class="el" href="perf__counter_8h.html#a9097d62a30ad2b4f75462c78d7200fa8">perf_counter.h</a></li>
<li>init_task_cycle_counter()&#160;:&#160;<a class="el" href="perf__counter_8c.html#a74d7160e4b3588456a85fcdce6cee6ab">perf_counter.c</a></li>
<li>init_task_cycle_info()&#160;:&#160;<a class="el" href="perf__counter_8c.html#af5404b4b72cfaf910fb2ebeb8d7a4448">perf_counter.c</a></li>
</ul>
<h3><a id="index_r" name="index_r"></a>- r -</h3><ul>
<li>register_task_cycle_agent()&#160;:&#160;<a class="el" href="perf__counter_8c.html#a0df8fe57dbd607e1992149a890612476">perf_counter.c</a></li>
<li>resume_task_cycle_info()&#160;:&#160;<a class="el" href="perf__counter_8c.html#a79c2926ae10e2cc327faf58e6094866d">perf_counter.c</a></li>
</ul>
<h3><a id="index_s" name="index_s"></a>- s -</h3><ul>
<li>start_cycle_counter()&#160;:&#160;<a class="el" href="perf__counter_8c.html#af33fd92801223d4befa49c610332ddd4">perf_counter.c</a>, <a class="el" href="perf__counter_8h.html#af33fd92801223d4befa49c610332ddd4">perf_counter.h</a></li>
<li>stop_cycle_counter()&#160;:&#160;<a class="el" href="perf__counter_8c.html#a014af75d3945894c4740773e8a28d723">perf_counter.c</a>, <a class="el" href="perf__counter_8h.html#a014af75d3945894c4740773e8a28d723">perf_counter.h</a></li>
<li>SysTick_Config()&#160;:&#160;<a class="el" href="perf__counter_8c.html#ae4e8f0238527c69f522029b93c8e5b78">perf_counter.c</a></li>
</ul>
<h3><a id="index_u" name="index_u"></a>- u -</h3><ul>
<li>unregister_task_cycle_agent()&#160;:&#160;<a class="el" href="perf__counter_8c.html#ae8c905d7221a7299fba5edbbfe1f449f">perf_counter.c</a></li>
<li>user_code_insert_to_systick_handler()&#160;:&#160;<a class="el" href="perf__counter_8c.html#a0a6e5160f19f152b0b9a502e5e24adb7">perf_counter.c</a>, <a class="el" href="perf__counter_8h.html#a0a6e5160f19f152b0b9a502e5e24adb7">perf_counter.h</a></li>
</ul>
</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="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.4 </li>
</ul>
</div>
</body>
</html>

View File

@ -0,0 +1,99 @@
<!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=11"/>
<meta name="generator" content="Doxygen 1.9.4"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>perf_counter: Globals</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 id="projectrow">
<td id="projectalign">
<div id="projectname">perf_counter
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.4 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @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:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(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:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('globals_type.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="contents">
&#160;<ul>
<li>task_cycle_info_agent_t&#160;:&#160;<a class="el" href="perf__counter_8h.html#ac118677bc3eb6a806eb1381d656b6c25">perf_counter.h</a></li>
<li>TCB_t&#160;:&#160;<a class="el" href="perf__os__patch__freertos_8c.html#aa3c2dda92a6dc22860bbdb36e42a0453">perf_os_patch_freertos.c</a></li>
<li>tskTCB&#160;:&#160;<a class="el" href="perf__os__patch__freertos_8c.html#a67b1ddede4e49c946dd720d83c5838a5">perf_os_patch_freertos.c</a></li>
</ul>
</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="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.4 </li>
</ul>
</div>
</body>
</html>

View File

@ -0,0 +1,99 @@
<!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=11"/>
<meta name="generator" content="Doxygen 1.9.4"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>perf_counter: Globals</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 id="projectrow">
<td id="projectalign">
<div id="projectname">perf_counter
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.4 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @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:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(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:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('globals_vars.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="contents">
&#160;<ul>
<li>pxCurrentTCB&#160;:&#160;<a class="el" href="perf__os__patch__freertos_8c.html#acdecf2afe97343aba42b111bc6df9eea">perf_os_patch_freertos.c</a></li>
<li>rt_current_thread&#160;:&#160;<a class="el" href="perf__os__patch__rt__thread_8c.html#a79f56a5699427ae8a615005dfbaf4325">perf_os_patch_rt_thread.c</a></li>
<li>SystemCoreClock&#160;:&#160;<a class="el" href="perf__counter_8c.html#aa3cd3e43291e81e795d642b79b6088e6">perf_counter.c</a></li>
</ul>
</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="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.4 </li>
</ul>
</div>
</body>
</html>

View File

@ -0,0 +1,101 @@
<!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=11"/>
<meta name="generator" content="Doxygen 1.9.4"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>perf_counter: CMSIS Global Defines</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 id="projectrow">
<td id="projectalign">
<div id="projectname">perf_counter
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.4 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @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:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(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:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('group___c_m_s_i_s__glob__defs.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">CMSIS Global Defines</div></div>
</div><!--header-->
<div class="contents">
<p ><b>IO Type Qualifiers</b> are used </p><ul>
<li>to specify the access to peripheral variables. </li>
<li>for automatic generation of peripheral register debug information. </li>
</ul>
</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="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.4 </li>
</ul>
</div>
</body>
</html>

97
documents/html/index.html Normal file
View File

@ -0,0 +1,97 @@
<!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=11"/>
<meta name="generator" content="Doxygen 1.9.4"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>perf_counter: Main Page</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 id="projectrow">
<td id="projectalign">
<div id="projectname">perf_counter
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.4 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @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:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(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:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('index.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">perf_counter Documentation</div></div>
</div><!--header-->
<div class="contents">
</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="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.4 </li>
</ul>
</div>
</body>
</html>

35
documents/html/jquery.js vendored Normal file

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,367 @@
<!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=11"/>
<meta name="generator" content="Doxygen 1.9.4"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>perf_counter: perf_counter (v1.9.5)</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 id="projectrow">
<td id="projectalign">
<div id="projectname">perf_counter
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.4 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @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:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(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:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('md__r_e_a_d_m_e.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><div class="header">
<div class="headertitle"><div class="title">perf_counter (v1.9.5) </div></div>
</div><!--header-->
<div class="contents">
<div class="textblock"><p >A dedicated performance counter for Cortex-M Systick. It shares the SysTick with users' original SysTick function(s) without interfering with it. This library will bring new functionalities, such as performance counter,<code>delay_us</code> and <code>clock()</code> service defined in <code>time.h</code>.</p>
<h2><a class="anchor" id="autotoc_md1"></a>
&lt;strong&gt;Features:&lt;/strong&gt;</h2>
<ul>
<li><b>Measure CPU cycles for specified code segment</b></li>
<li><b>[NEW] Enhanced measurement services for RTOS</b><ul>
<li>Measures <b>RAW / True</b> cycles used for specified code segment inside a thread, <b>i.e. scheduling cost are removed</b>.</li>
<li>Measure <b>RAW/True</b> cycles used for a data-process-path across multiple threads.</li>
</ul>
</li>
<li><b>Easy to use</b><ul>
<li>Helper macros: <code><a class="el" href="perf__counter_8h.html#a147d3eb2e96136dc1758aa8d3e2a089c">__cycleof__()</a></code> , <code><a class="el" href="perf__counter_8h.html#acfa3bf174dd68eeca5c7e4a16cdc24ea">__super_loop_monitor__()</a></code> etc.</li>
<li>Helper functions: <code><a class="el" href="perf__counter_8c.html#af33fd92801223d4befa49c610332ddd4" title="try to set a start pointer for the performance counter">start_cycle_counter()</a></code>, <code><a class="el" href="perf__counter_8c.html#a014af75d3945894c4740773e8a28d723" title="calculate the elapsed cycle count since the last start point">stop_cycle_counter()</a></code> etc.</li>
</ul>
</li>
<li><b>Support ALL Cortex-M processors</b><ul>
<li>Including <b>Cortex-M85</b> and Star-MC1</li>
</ul>
</li>
<li><b>Provide Free Services</b><ul>
<li>Do <b>NOT</b> interfering with existing SysTick based applications</li>
</ul>
</li>
<li><b>Support ALL arm compilers</b><ul>
<li>Arm Compiler 5 (armcc), Arm Compiler 6 (armclang)</li>
<li>arm gcc</li>
<li>LLVM</li>
<li>IAR</li>
</ul>
</li>
<li><b>Simplified Deployment</b><ul>
<li><b>Drag-and-Drop deployment for Arm Compiler 5 and Arm Compiler 6.</b></li>
<li><b>CMSIS-Pack is available</b></li>
</ul>
</li>
<li><b>Time based services</b><ul>
<li><code><a class="el" href="perf__counter_8c.html#a9776dfed871d0e0775c876f16e7618f7" title="delay specified time in microsecond">delay_us()</a></code> and <code><a class="el" href="perf__counter_8c.html#a2add8ab5b23b568bba6d46f9c977dbce" title="delay specified time in millisecond">delay_ms()</a></code></li>
<li>Provides Timestamp services via <em><b><a class="el" href="perf__counter_8c.html#a32dabfe5b863f89f71735b20a0caf1ea" title="get the elapsed cycles since perf_counter is initialised">get_system_ticks()</a></b></em> and <code><a class="el" href="perf__counter_8c.html#a98c51d83fdb448a2733d0a309366149c" title="get the elapsed milliseconds since perf_counter is initialised">get_system_ms()</a></code></li>
</ul>
</li>
<li><b>Support both RTOS and bare-metal environments</b></li>
<li><b>Utilities for C language enhancement</b><ul>
<li>Macros to detect compilers, e.g. <code>__IS_COMPILER_ARM_COMPILER_6__</code>, <code>__IS_COMPILER_LLVM__</code> etc.</li>
<li>Macro to create atomicity for specified code block, i.e. <code>__IRQ_SAFE{...}</code></li>
<li>Helper macros for C language extension:<ul>
<li>VB like <code><a class="el" href="perf__counter_8h.html#afc5b077f9764ca6f11075ce72357dd65">with()</a></code></li>
<li><code><a class="el" href="perf__counter_8h.html#a623a729e6571efedb0c5528689d6120d">foreach()</a></code>, <a class="el" href="perf__counter_8h.html#a7b6c484887a402bba1af11b457264553">dimof()</a>, <code><a class="el" href="perf__counter_8h.html#a1409defa6d3e973b7efee74d2de7386d">CONNECT()</a></code></li>
<li>C# like <code><a class="el" href="perf__counter_8h.html#ad90955bd356a41041a7dcb112a450766">using()</a></code></li>
<li>simple overload feature of OOPC made out of ANSI-C99, <code><a class="el" href="perf__counter_8h.html#a9d1c7b8467fca7e2fcf0426ef294a171">__PLOOC_VA_NUM_ARGS()</a></code></li>
<li>...</li>
</ul>
</li>
</ul>
</li>
</ul>
<h1><a class="anchor" id="autotoc_md2"></a>
1. How To Use</h1>
<h2><a class="anchor" id="autotoc_md3"></a>
1.1 Measure CPU cycles for specified code segment</h2>
<p >You can measure specified code segment with a macro helper <code><a class="el" href="perf__counter_8h.html#a147d3eb2e96136dc1758aa8d3e2a089c">__cycleof__()</a></code>, it is a wrapper of <code><a class="el" href="perf__counter_8c.html#a32dabfe5b863f89f71735b20a0caf1ea" title="get the elapsed cycles since perf_counter is initialised">get_system_ticks()</a></code>.</p>
<p ><b>Syntax:</b></p>
<div class="fragment"><div class="line"><a class="code hl_define" href="perf__counter_8h.html#a147d3eb2e96136dc1758aa8d3e2a089c">__cycleof__</a>(&lt;Description String <span class="keywordflow">for</span> the target&gt;, [User Code, see ref 1]) {</div>
<div class="line"> ...</div>
<div class="line">}</div>
<div class="ttc" id="aperf__counter_8h_html_a147d3eb2e96136dc1758aa8d3e2a089c"><div class="ttname"><a href="perf__counter_8h.html#a147d3eb2e96136dc1758aa8d3e2a089c">__cycleof__</a></div><div class="ttdeci">#define __cycleof__(__STR,...)</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8h_source.html#l00280">perf_counter.h:280</a></div></div>
</div><!-- fragment --><p >Here, [<b>ref 1</b>] is a small user code to read the measurement result via a local variable <code>__cycle_count__</code> for perl lovers, you can also use "`_`" to read the result. This User Code is optional. If you don't put anything here, the measured result will be shown with a <code>printf()</code>.</p>
<h3><a class="anchor" id="autotoc_md4"></a>
&lt;strong&gt;Example 1:&lt;/strong&gt; Simple measurement with printf</h3>
<div class="fragment"><div class="line"><a class="code hl_define" href="perf__counter_8h.html#a147d3eb2e96136dc1758aa8d3e2a089c">__cycleof__</a>() {</div>
<div class="line"> <span class="keywordflow">foreach</span>(example_lv0_t, s_tItem, ptItem) {</div>
<div class="line"> printf(<span class="stringliteral">&quot;Processing item with ID = %d\r\n&quot;</span>, _-&gt;chID);</div>
<div class="line"> }</div>
<div class="line">}</div>
</div><!-- fragment --><p >You will see the measured result in console:</p>
<p ><img src="./documents/pictures/__cycleof___output_simple" alt="image-20220509004258020" class="inline"/></p>
<h3><a class="anchor" id="autotoc_md5"></a>
&lt;strong&gt;Example 2:&lt;/strong&gt; Read measured result via &lt;tt&gt;__cycle_counter__&lt;/tt&gt;</h3>
<div class="fragment"><div class="line">int32_t iCycleResult = 0;</div>
<div class="line"> </div>
<div class="line"><span class="comment">/* measure cycles and store it in a dedicated variable without printf */</span></div>
<div class="line"><a class="code hl_define" href="perf__counter_8h.html#a147d3eb2e96136dc1758aa8d3e2a089c">__cycleof__</a>(<span class="stringliteral">&quot;delay_us(1000ul)&quot;</span>, </div>
<div class="line"> <span class="comment">/* insert code to __cycleof__ body, &quot;{}&quot; can be omitted */</span></div>
<div class="line"> {</div>
<div class="line"> iCycleResult = __cycle_count__; <span class="comment">/*&lt; &quot;__cycle_count__&quot; stores the result */</span></div>
<div class="line"> }) {</div>
<div class="line"> <a class="code hl_function" href="perf__counter_8c.html#a9776dfed871d0e0775c876f16e7618f7">delay_us</a>(1000ul);</div>
<div class="line">}</div>
<div class="line"> </div>
<div class="line">printf(<span class="stringliteral">&quot;\r\n delay_us(1000ul) takes %d cycles\r\n&quot;</span>, (<span class="keywordtype">int</span>)iCycleResult);</div>
<div class="ttc" id="aperf__counter_8c_html_a9776dfed871d0e0775c876f16e7618f7"><div class="ttname"><a href="perf__counter_8c.html#a9776dfed871d0e0775c876f16e7618f7">delay_us</a></div><div class="ttdeci">void delay_us(int32_t nUs)</div><div class="ttdoc">delay specified time in microsecond</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00398">perf_counter.c:398</a></div></div>
</div><!-- fragment --><p >The result is read out from <code>__cycle_count__</code>and used in other place:</p>
<p ><img src="./documents/pictures/__cycleof___output_non_printf" alt="image-20220509004714845" class="inline"/></p>
<h2><a class="anchor" id="autotoc_md6"></a>
1.2 Timestamp</h2>
<p >You can get the system timestamp (since the initialization of perf_counter service) via function <code><a class="el" href="perf__counter_8c.html#a32dabfe5b863f89f71735b20a0caf1ea" title="get the elapsed cycles since perf_counter is initialised">get_system_ticks()</a></code> and <code><a class="el" href="perf__counter_8c.html#a98c51d83fdb448a2733d0a309366149c" title="get the elapsed milliseconds since perf_counter is initialised">get_system_ms()</a></code>.</p>
<p ><b>NOTE</b>: The <code><a class="el" href="perf__counter_8c.html#a98c51d83fdb448a2733d0a309366149c" title="get the elapsed milliseconds since perf_counter is initialised">get_system_ms()</a></code> is <b>NOT</b> a wrapper of the function <code><a class="el" href="perf__counter_8c.html#a32dabfe5b863f89f71735b20a0caf1ea" title="get the elapsed cycles since perf_counter is initialised">get_system_ticks()</a></code>.</p>
<p >There are various way to take advantage of those functions.</p>
<h3><a class="anchor" id="autotoc_md7"></a>
Example 3: Use &lt;tt&gt;get_system_ms()&lt;/tt&gt; as random seed</h3>
<div class="fragment"><div class="line"><span class="preprocessor">#include &lt;stdio.h&gt;</span></div>
<div class="line"><span class="preprocessor">#include &lt;stdlib.h&gt;</span></div>
<div class="line"><span class="preprocessor">#include &quot;<a class="code" href="perf__counter_8h.html">perf_counter.h</a>&quot;</span></div>
<div class="line"> </div>
<div class="line"><span class="keywordtype">int</span> main (<span class="keywordtype">void</span>) </div>
<div class="line">{</div>
<div class="line"> <span class="keywordtype">int</span> i, n;</div>
<div class="line"> </div>
<div class="line"> n = 5;</div>
<div class="line"> </div>
<div class="line"> <span class="comment">/* Intializes random number generator */</span></div>
<div class="line"> srand((<span class="keywordtype">unsigned</span>) <a class="code hl_function" href="perf__counter_8c.html#a32dabfe5b863f89f71735b20a0caf1ea">get_system_ticks</a>());</div>
<div class="line"> </div>
<div class="line"> <span class="comment">/* Print 5 random numbers from 0 to 1024 */</span></div>
<div class="line"> <span class="keywordflow">for</span>( i = 0 ; i &lt; n ; i++ ) {</div>
<div class="line"> printf(<span class="stringliteral">&quot;%d\n&quot;</span>, rand() &amp; 0x3FF);</div>
<div class="line"> }</div>
<div class="line"> </div>
<div class="line"> <span class="keywordflow">return</span>(0);</div>
<div class="line">}</div>
<div class="ttc" id="aperf__counter_8c_html_a32dabfe5b863f89f71735b20a0caf1ea"><div class="ttname"><a href="perf__counter_8c.html#a32dabfe5b863f89f71735b20a0caf1ea">get_system_ticks</a></div><div class="ttdeci">int64_t get_system_ticks(void)</div><div class="ttdoc">get the elapsed cycles since perf_counter is initialised</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00472">perf_counter.c:472</a></div></div>
<div class="ttc" id="aperf__counter_8h_html"><div class="ttname"><a href="perf__counter_8h.html">perf_counter.h</a></div></div>
</div><!-- fragment --><h3><a class="anchor" id="autotoc_md8"></a>
Example 4: Measure CPU cycles</h3>
<div class="fragment"><div class="line"><span class="keywordflow">do</span> {</div>
<div class="line"> int64_t tStart = <a class="code hl_function" href="perf__counter_8c.html#a32dabfe5b863f89f71735b20a0caf1ea">get_system_ticks</a>();</div>
<div class="line"> <a class="code hl_define" href="perf__counter_8h.html#a966a3eb20671a2a8c44d63d459f5472e">__IRQ_SAFE</a> {</div>
<div class="line"> printf(<span class="stringliteral">&quot;no interrupt \r\n&quot;</span>);</div>
<div class="line"> }</div>
<div class="line"> printf(<span class="stringliteral">&quot;used clock cycle: %d&quot;</span>, (int32_t)(<a class="code hl_function" href="perf__counter_8c.html#a32dabfe5b863f89f71735b20a0caf1ea">get_system_ticks</a>() - tStart));</div>
<div class="line">} <span class="keywordflow">while</span>(0);</div>
<div class="ttc" id="aperf__counter_8h_html_a966a3eb20671a2a8c44d63d459f5472e"><div class="ttname"><a href="perf__counter_8h.html#a966a3eb20671a2a8c44d63d459f5472e">__IRQ_SAFE</a></div><div class="ttdeci">#define __IRQ_SAFE</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8h_source.html#l00264">perf_counter.h:264</a></div></div>
</div><!-- fragment --><p >This example shows how to use the delta value of <code><a class="el" href="perf__counter_8c.html#a32dabfe5b863f89f71735b20a0caf1ea" title="get the elapsed cycles since perf_counter is initialised">get_system_ticks()</a></code> to measure the CPU cycles used by specified code segment. In fact, the <code><a class="el" href="perf__counter_8h.html#a147d3eb2e96136dc1758aa8d3e2a089c">__cycleof__()</a></code> is implemented in the same way:</p>
<div class="fragment"><div class="line"><span class="preprocessor">#define __cycleof__(__STR, ...) \</span></div>
<div class="line"><span class="preprocessor"> using(int64_t _ = get_system_ticks(), __cycle_count__ = _, \</span></div>
<div class="line"><span class="preprocessor"> _=_, { \</span></div>
<div class="line"><span class="preprocessor"> _ = get_system_ticks() - _; \</span></div>
<div class="line"><span class="preprocessor"> __cycle_count__ = _; \</span></div>
<div class="line"><span class="preprocessor"> if (__PLOOC_VA_NUM_ARGS(__VA_ARGS__) == 0) { \</span></div>
<div class="line"><span class="preprocessor"> printf(&quot;\r\n&quot;</span>); \</div>
<div class="line"> printf(&quot;-[Cycle Report]&quot;); \</div>
<div class="line"> printf(&quot;--------------------------------------------\r\n&quot;); \</div>
<div class="line"> printf(__STR &quot; total cycle count: %d [%08x]\r\n&quot;, \</div>
<div class="line"> (int)_, (int)_); \</div>
<div class="line"> } else { \</div>
<div class="line"> __VA_ARGS__ \</div>
<div class="line"> }; \</div>
<div class="line"> })</div>
</div><!-- fragment --><h1><a class="anchor" id="autotoc_md9"></a>
2. How To Deploy</h1>
<h2><a class="anchor" id="autotoc_md10"></a>
2.1 Generic(Default) method for all compilers</h2>
<h3><a class="anchor" id="autotoc_md11"></a>
2.1.1 For Bare-metal:</h3>
<ol type="1">
<li>Clone the code to your local with following command lines:</li>
</ol>
<div class="fragment"><div class="line">git clone https://github.com/GorgonMeducer/perf_counter.git</div>
</div><!-- fragment --><ol type="1">
<li>Add including path for <code>perf_counter</code> folder</li>
<li>Add <code><a class="el" href="perf__counter_8c.html">perf_counter.c</a></code> to your compilation</li>
<li>Include <a class="el" href="perf__counter_8h.html">perf_counter.h</a> in corresponding c source file:</li>
</ol>
<div class="fragment"><div class="line"><span class="preprocessor">#include &quot;<a class="code" href="perf__counter_8h.html">perf_counter.h</a>&quot;</span></div>
</div><!-- fragment --><ol type="1">
<li>Make sure your system contains the CMSIS (with a version 5.7.0 or above) as <code><a class="el" href="perf__counter_8h.html">perf_counter.h</a></code> includes <code>cmsis_compiler.h</code>.</li>
<li>Call the function <code><a class="el" href="perf__counter_8c.html#a0a6e5160f19f152b0b9a502e5e24adb7">user_code_insert_to_systick_handler()</a></code> in your <code>SysTick_Handler()</code></li>
</ol>
<div class="fragment"><div class="line"><span class="keywordtype">void</span> SysTick_Handler(<span class="keywordtype">void</span>)</div>
<div class="line">{</div>
<div class="line"> ...</div>
<div class="line"> <a class="code hl_function" href="perf__counter_8c.html#a0a6e5160f19f152b0b9a502e5e24adb7">user_code_insert_to_systick_handler</a>();</div>
<div class="line"> ...</div>
<div class="line">}</div>
<div class="ttc" id="aperf__counter_8c_html_a0a6e5160f19f152b0b9a502e5e24adb7"><div class="ttname"><a href="perf__counter_8c.html#a0a6e5160f19f152b0b9a502e5e24adb7">user_code_insert_to_systick_handler</a></div><div class="ttdeci">void user_code_insert_to_systick_handler(void)</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00233">perf_counter.c:233</a></div></div>
</div><!-- fragment --><p> Implement an empty funciton <code>__ensure_systick_wrapper()</code> as there is no wrapper actually used in this deployment method:</p>
<div class="fragment"><div class="line"><span class="keywordtype">void</span> __ensure_systick_wrapper(<span class="keywordtype">void</span>)</div>
<div class="line">{</div>
<div class="line">}</div>
</div><!-- fragment --><ol type="1">
<li>Make sure the <code>SystemCoreClock</code> is updated with the same value as CPU frequency.</li>
<li><b>IMPORTANT</b>: Make sure the <code>SysTick_CTRL_CLKSOURCE_Msk</code> bit ( bit 2) of <code>SysTick-&gt;CTRL</code> register is <code>1</code> that means SysTick runs with the same clock source as the target Cortex-M processor.</li>
<li>Initialize the perf_counter with boolean value that indicates whether the user applications and/or RTOS have already occupied the SysTick.</li>
</ol>
<div class="fragment"><div class="line"><span class="keywordtype">void</span> main(<span class="keywordtype">void</span>)</div>
<div class="line">{</div>
<div class="line"> </div>
<div class="line"> SystemCoreClockUpdate();</div>
<div class="line"> </div>
<div class="line"> <a class="code hl_function" href="perf__counter_8c.html#a9097d62a30ad2b4f75462c78d7200fa8">init_cycle_counter</a>(<span class="keyword">true</span>);</div>
<div class="line"> </div>
<div class="line"> ...</div>
<div class="line"> <span class="keywordflow">while</span>(1) {</div>
<div class="line"> ...</div>
<div class="line"> }</div>
<div class="line">}</div>
<div class="ttc" id="aperf__counter_8c_html_a9097d62a30ad2b4f75462c78d7200fa8"><div class="ttname"><a href="perf__counter_8c.html#a9097d62a30ad2b4f75462c78d7200fa8">init_cycle_counter</a></div><div class="ttdeci">void init_cycle_counter(bool bIsSysTickOccupied)</div><div class="ttdoc">initialise cycle counter service</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00280">perf_counter.c:280</a></div></div>
</div><!-- fragment --><ol type="1">
<li><b>IMPORTANT</b>: Please enable GNU extension in your compiler. For <b>GCC</b> and <b>CLANG</b>, it is <code>--std=gnu99</code> or <code>--std=gnu11</code>, and for other compilers, please check the user manual first. Failed to do so, you will not only trigger the warning in <code><a class="el" href="perf__counter_8h.html">perf_counter.h</a></code>, but also lose the function correctness of <code><a class="el" href="perf__counter_8h.html#a147d3eb2e96136dc1758aa8d3e2a089c">__cycleof__()</a></code> and <code><a class="el" href="perf__counter_8h.html#acfa3bf174dd68eeca5c7e4a16cdc24ea">__super_loop_monitor__()</a></code>, because <code><a class="el" href="perf__counter_8h.html#a9d1c7b8467fca7e2fcf0426ef294a171">__PLOOC_VA_NUM_ARGS()</a></code> isn't report <code>0</code> when passed with no argument.</li>
</ol>
<div class="fragment"><div class="line"><span class="preprocessor">#if __PLOOC_VA_NUM_ARGS() != 0</span></div>
<div class="line"><span class="preprocessor">#warning Please enable GNC extensions, it is required by __cycleof__() and \</span></div>
<div class="line"><span class="preprocessor">__super_loop_monitor__()</span></div>
<div class="line"><span class="preprocessor">#endif</span></div>
</div><!-- fragment --><ol type="1">
<li>It is nice to add macro definition <code>__PERF_COUNTER__</code> to your project GLOBALLY. It helps other module to detect the existence of perf_counter. For Example, LVGL <a href="https://github.com/lvgl/lvgl/blob/d367bb7cf17dc34863f4439bba9b66a820088951/env_support/cmsis-pack/lv_conf_cmsis.h#L81-L99"><code>lv_conf_cmsis.h</code></a> use this macro to detect perf_counter and uses <code><a class="el" href="perf__counter_8c.html#a98c51d83fdb448a2733d0a309366149c" title="get the elapsed milliseconds since perf_counter is initialised">get_system_ms()</a></code> to implement <code>lv_tick_get()</code>.</li>
</ol>
<p ><b>Enjoy !</b></p>
<h2><a class="anchor" id="autotoc_md12"></a>
2.2 Use cmsis-pack in MDK</h2>
<ol type="1">
<li>Download the cmsis-pack from <code>cmsis-pack</code> folder. It is a file with name <code>GorgonMeducer.perf_counter.&lt;version&gt;.pack</code>, for example <code>GorgonMeducer.perf_counter.1.9.4.pack</code></li>
<li><p class="startli">Double click it to install this cmsis-pack. Once finished, you can find it in your Pack-Installer:</p>
<p class="startli"><img src="./documents/pictures/pack_installer" alt="" class="inline"/> In the future, you can pull the latest version of perf_counter from the menu <code>Packs-&gt;Check For Updates</code> as shown below:</p>
<p class="startli"><img src="./documents/pictures/check_for_updates" alt="image-20220509011327392" class="inline"/></p>
</li>
<li>Open the RTE management window, find the <b>Utilities</b> and select the <b>Core</b> inside perf_counter as shown below:</li>
</ol>
<p ><img src="./documents/pictures\RTE" alt="" class="inline"/></p>
<ol type="1">
<li>Include <code><a class="el" href="perf__counter_8h.html">perf_counter.h</a></code> in corresponding c source file:</li>
</ol>
<div class="fragment"><div class="line"><span class="preprocessor">#include &quot;<a class="code" href="perf__counter_8h.html">perf_counter.h</a>&quot;</span></div>
</div><!-- fragment --><ol type="1">
<li>Make sure your system contains the CMSIS (with a version 5.7.0 or above) as <code><a class="el" href="perf__counter_8h.html">perf_counter.h</a></code> includes <code>cmsis_compiler.h</code>. Usually, you should do this with RTE as shown below:</li>
</ol>
<p ><img src="./documents/pictures/RTE_cmsis_core" alt="image-20220509012432408" class="inline"/></p>
<ol type="1">
<li>Make sure the <code>SystemCoreClock</code> is updated with the same value as CPU frequency.</li>
<li><b>IMPORTANT</b>: Make sure the <code>SysTick_CTRL_CLKSOURCE_Msk</code> bit ( bit 2) of <code>SysTick-&gt;CTRL</code> register is <code>1</code> that means SysTick runs with the same clock source as the target Cortex-M processor.</li>
<li>Initialize the perf_counter with boolean value that indicates whether the user applications and/or RTOS have already occupied the SysTick.</li>
</ol>
<div class="fragment"><div class="line"><span class="keywordtype">void</span> main(<span class="keywordtype">void</span>)</div>
<div class="line">{</div>
<div class="line"> </div>
<div class="line"> SystemCoreClockUpdate();</div>
<div class="line"> </div>
<div class="line"> <a class="code hl_function" href="perf__counter_8c.html#a9097d62a30ad2b4f75462c78d7200fa8">init_cycle_counter</a>(<span class="keyword">true</span>);</div>
<div class="line"> </div>
<div class="line"> ...</div>
<div class="line"> <span class="keywordflow">while</span>(1) {</div>
<div class="line"> ...</div>
<div class="line"> }</div>
<div class="line">}</div>
</div><!-- fragment --><ol type="1">
<li><p class="startli"><b>IMPORTANT</b>: Please enable GNU extension in your compiler.</p>
<p class="startli">For Arm Compiler 5, please select both <b>C99 mode</b> and GNU extensions in the <b>Option for target dialog</b> as shown below:</p>
</li>
</ol>
<p ><img src="./documents/pictures/GNU_in_AC5" alt="image-20220509012752097" class="inline"/></p>
<p >For Arm Compiler 6, please select <b>gnu99</b> or <b>gnu11</b> in Language C drop-list as shown below:</p>
<p ><img src="./documents/pictures/gnu_in_ac6" alt="image-20220509012944724" class="inline"/></p>
<p >Failed to do so, you will not only trigger the warning in <code><a class="el" href="perf__counter_8h.html">perf_counter.h</a></code>, but also lose the function correctness of <code><a class="el" href="perf__counter_8h.html#a147d3eb2e96136dc1758aa8d3e2a089c">__cycleof__()</a></code> and <code><a class="el" href="perf__counter_8h.html#acfa3bf174dd68eeca5c7e4a16cdc24ea">__super_loop_monitor__()</a></code>, because <code><a class="el" href="perf__counter_8h.html#a9d1c7b8467fca7e2fcf0426ef294a171">__PLOOC_VA_NUM_ARGS()</a></code> isn't report <code>0</code> when passed with no argument.</p>
<div class="fragment"><div class="line"><span class="preprocessor">#if __PLOOC_VA_NUM_ARGS() != 0</span></div>
<div class="line"><span class="preprocessor">#warning Please enable GNC extensions, it is required by __cycleof__() and \</span></div>
<div class="line"><span class="preprocessor">__super_loop_monitor__()</span></div>
<div class="line"><span class="preprocessor">#endif</span></div>
</div><!-- fragment --><p ><b>Enjoy !</b></p>
<h1><a class="anchor" id="autotoc_md13"></a>
3. FAQ</h1>
<h2><a class="anchor" id="autotoc_md14"></a>
3.1 Why I see &lt;tt&gt;Undefined symbol $Super$$SysTick_Handler&lt;/tt&gt;</h2>
<p >This error usually pops-up in <b>Arm Compiler 5</b> and <b>Arm Compiler 6</b>, it is because you haven't implement any non-weak <code>Systick_Handler()</code>. Please provide an EMPTY one in any c source file to solve this problem:</p>
<div class="fragment"><div class="line"><span class="keywordtype">void</span> SysTick_Handler(<span class="keywordtype">void</span>)</div>
<div class="line">{</div>
<div class="line">}</div>
</div><!-- fragment --><p ><b>NOTE</b>: If you deploy perf_counter using cmsis-pack and encounter this issue, please <b>DO NOT</b> call function <code><a class="el" href="perf__counter_8c.html#a0a6e5160f19f152b0b9a502e5e24adb7">user_code_insert_to_systick_handler()</a></code> in this <b>should-be-empty</b> <code>SysTick_Handler()</code>.</p>
<h1><a class="anchor" id="autotoc_md15"></a>
4. License</h1>
<p ><b>Performance Counter for Cortex-M</b>, a.k.a. <em><b>perf_counter</b></em> is under Apache 2.0 license. </p>
</div></div><!-- contents -->
</div><!-- PageDoc -->
</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="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.4 </li>
</ul>
</div>
</body>
</html>

135
documents/html/menu.js Normal file
View File

@ -0,0 +1,135 @@
/*
@licstart The following is the entire license notice for the JavaScript code in this file.
The MIT License (MIT)
Copyright (C) 1997-2020 by Dimitri van Heesch
Permission is hereby granted, free of charge, to any person obtaining a copy of this software
and associated documentation files (the "Software"), to deal in the Software without restriction,
including without limitation the rights to use, copy, modify, merge, publish, distribute,
sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or
substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@licend The above is the entire license notice for the JavaScript code in this file
*/
function initMenu(relPath,searchEnabled,serverSide,searchPage,search) {
function makeTree(data,relPath) {
var result='';
if ('children' in data) {
result+='<ul>';
for (var i in data.children) {
var url;
var link;
link = data.children[i].url;
if (link.substring(0,1)=='^') {
url = link.substring(1);
} else {
url = relPath+link;
}
result+='<li><a href="'+url+'">'+
data.children[i].text+'</a>'+
makeTree(data.children[i],relPath)+'</li>';
}
result+='</ul>';
}
return result;
}
var searchBox;
if (searchEnabled) {
if (serverSide) {
searchBox='<div id="MSearchBox" class="MSearchBoxInactive">'+
'<div class="left">'+
'<form id="FSearchBox" action="'+relPath+searchPage+
'" method="get"><img id="MSearchSelect" src="'+
relPath+'search/mag.svg" alt=""/>'+
'<input type="text" id="MSearchField" name="query" value="'+search+
'" size="20" accesskey="S" onfocus="searchBox.OnSearchFieldFocus(true)"'+
' onblur="searchBox.OnSearchFieldFocus(false)">'+
'</form>'+
'</div>'+
'<div class="right"></div>'+
'</div>';
} else {
searchBox='<div id="MSearchBox" class="MSearchBoxInactive">'+
'<span class="left">'+
'<img id="MSearchSelect" src="'+relPath+
'search/mag_sel.svg" 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="'+relPath+
'search/close.svg" alt=""/></a>'
'</span>'
'</div>';
}
}
$('#main-nav').before('<div class="sm sm-dox"><input id="main-menu-state" type="checkbox"/>'+
'<label class="main-menu-btn" for="main-menu-state">'+
'<span class="main-menu-btn-icon"></span> '+
'Toggle main menu visibility</label>'+
'<span id="searchBoxPos1" style="position:absolute;right:8px;top:8px;height:36px;"></span>'+
'</div>');
$('#main-nav').append(makeTree(menudata,relPath));
$('#main-nav').children(':first').addClass('sm sm-dox').attr('id','main-menu');
if (searchBox) {
$('#main-menu').append('<li id="searchBoxPos2" style="float:right"></li>');
}
var $mainMenuState = $('#main-menu-state');
var prevWidth = 0;
if ($mainMenuState.length) {
function initResizableIfExists() {
if (typeof initResizable==='function') initResizable();
}
// animate mobile menu
$mainMenuState.change(function(e) {
var $menu = $('#main-menu');
var options = { duration: 250, step: initResizableIfExists };
if (this.checked) {
options['complete'] = function() { $menu.css('display', 'block') };
$menu.hide().slideDown(options);
} else {
options['complete'] = function() { $menu.css('display', 'none') };
$menu.show().slideUp(options);
}
});
// set default menu visibility
function resetState() {
var $menu = $('#main-menu');
var $mainMenuState = $('#main-menu-state');
var newWidth = $(window).outerWidth();
if (newWidth!=prevWidth) {
if ($(window).outerWidth()<768) {
$mainMenuState.prop('checked',false); $menu.hide();
$('#searchBoxPos1').html(searchBox);
$('#searchBoxPos2').hide();
} else {
$menu.show();
$('#searchBoxPos1').empty();
$('#searchBoxPos2').html(searchBox);
$('#searchBoxPos2').show();
}
prevWidth = newWidth;
}
}
$(window).ready(function() { resetState(); initResizableIfExists(); });
$(window).resize(resetState);
}
$('#main-menu').smartmenus();
}
/* @license-end */

117
documents/html/menudata.js Normal file
View File

@ -0,0 +1,117 @@
/*
@licstart The following is the entire license notice for the JavaScript code in this file.
The MIT License (MIT)
Copyright (C) 1997-2020 by Dimitri van Heesch
Permission is hereby granted, free of charge, to any person obtaining a copy of this software
and associated documentation files (the "Software"), to deal in the Software without restriction,
including without limitation the rights to use, copy, modify, merge, publish, distribute,
sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or
substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@licend The above is the entire license notice for the JavaScript code in this file
*/
var menudata={children:[
{text:"Main Page",url:"index.html"},
{text:"Related Pages",url:"pages.html"},
{text:"Modules",url:"modules.html"},
{text:"Data Structures",url:"annotated.html",children:[
{text:"Data Structures",url:"annotated.html"},
{text:"Data Structure Index",url:"classes.html"},
{text:"Data Fields",url:"functions.html",children:[
{text:"All",url:"functions.html",children:[
{text:"_",url:"functions.html#index__5F"},
{text:"a",url:"functions.html#index_a"},
{text:"b",url:"functions.html#index_b"},
{text:"c",url:"functions.html#index_c"},
{text:"d",url:"functions.html#index_d"},
{text:"h",url:"functions.html#index_h"},
{text:"i",url:"functions.html#index_i"},
{text:"l",url:"functions.html#index_l"},
{text:"m",url:"functions.html#index_m"},
{text:"n",url:"functions.html#index_n"},
{text:"p",url:"functions.html#index_p"},
{text:"r",url:"functions.html#index_r"},
{text:"s",url:"functions.html#index_s"},
{text:"t",url:"functions.html#index_t"},
{text:"u",url:"functions.html#index_u"},
{text:"v",url:"functions.html#index_v"},
{text:"w",url:"functions.html#index_w"},
{text:"x",url:"functions.html#index_x"}]},
{text:"Variables",url:"functions_vars.html",children:[
{text:"_",url:"functions_vars.html#index__5F"},
{text:"a",url:"functions_vars.html#index_a"},
{text:"b",url:"functions_vars.html#index_b"},
{text:"c",url:"functions_vars.html#index_c"},
{text:"d",url:"functions_vars.html#index_d"},
{text:"h",url:"functions_vars.html#index_h"},
{text:"i",url:"functions_vars.html#index_i"},
{text:"l",url:"functions_vars.html#index_l"},
{text:"m",url:"functions_vars.html#index_m"},
{text:"n",url:"functions_vars.html#index_n"},
{text:"p",url:"functions_vars.html#index_p"},
{text:"r",url:"functions_vars.html#index_r"},
{text:"s",url:"functions_vars.html#index_s"},
{text:"t",url:"functions_vars.html#index_t"},
{text:"u",url:"functions_vars.html#index_u"},
{text:"v",url:"functions_vars.html#index_v"},
{text:"w",url:"functions_vars.html#index_w"},
{text:"x",url:"functions_vars.html#index_x"}]}]}]},
{text:"Files",url:"files.html",children:[
{text:"File List",url:"files.html"},
{text:"Globals",url:"globals.html",children:[
{text:"All",url:"globals.html",children:[
{text:"_",url:"globals.html#index__5F"},
{text:"a",url:"globals.html#index_a"},
{text:"c",url:"globals.html#index_c"},
{text:"d",url:"globals.html#index_d"},
{text:"e",url:"globals.html#index_e"},
{text:"f",url:"globals.html#index_f"},
{text:"g",url:"globals.html#index_g"},
{text:"i",url:"globals.html#index_i"},
{text:"m",url:"globals.html#index_m"},
{text:"o",url:"globals.html#index_o"},
{text:"p",url:"globals.html#index_p"},
{text:"r",url:"globals.html#index_r"},
{text:"s",url:"globals.html#index_s"},
{text:"t",url:"globals.html#index_t"},
{text:"u",url:"globals.html#index_u"},
{text:"w",url:"globals.html#index_w"}]},
{text:"Functions",url:"globals_func.html",children:[
{text:"_",url:"globals_func.html#index__5F"},
{text:"c",url:"globals_func.html#index_c"},
{text:"d",url:"globals_func.html#index_d"},
{text:"e",url:"globals_func.html#index_e"},
{text:"g",url:"globals_func.html#index_g"},
{text:"i",url:"globals_func.html#index_i"},
{text:"r",url:"globals_func.html#index_r"},
{text:"s",url:"globals_func.html#index_s"},
{text:"u",url:"globals_func.html#index_u"}]},
{text:"Variables",url:"globals_vars.html"},
{text:"Typedefs",url:"globals_type.html"},
{text:"Macros",url:"globals_defs.html",children:[
{text:"_",url:"globals_defs.html#index__5F"},
{text:"a",url:"globals_defs.html#index_a"},
{text:"c",url:"globals_defs.html#index_c"},
{text:"d",url:"globals_defs.html#index_d"},
{text:"e",url:"globals_defs.html#index_e"},
{text:"f",url:"globals_defs.html#index_f"},
{text:"i",url:"globals_defs.html#index_i"},
{text:"m",url:"globals_defs.html#index_m"},
{text:"o",url:"globals_defs.html#index_o"},
{text:"p",url:"globals_defs.html#index_p"},
{text:"r",url:"globals_defs.html#index_r"},
{text:"s",url:"globals_defs.html#index_s"},
{text:"u",url:"globals_defs.html#index_u"},
{text:"w",url:"globals_defs.html#index_w"}]}]}]}]}

102
documents/html/modules.html Normal file
View File

@ -0,0 +1,102 @@
<!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=11"/>
<meta name="generator" content="Doxygen 1.9.4"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>perf_counter: Modules</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 id="projectrow">
<td id="projectalign">
<div id="projectname">perf_counter
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.4 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @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:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(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:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('modules.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">Modules</div></div>
</div><!--header-->
<div class="contents">
<div class="textblock">Here is a list of all modules:</div><div class="directory">
<table class="directory">
<tr id="row_0_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a class="el" href="group___c_m_s_i_s__glob__defs.html" target="_self">CMSIS Global Defines</a></td><td class="desc"></td></tr>
</table>
</div><!-- directory -->
</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="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.4 </li>
</ul>
</div>
</body>
</html>

View File

@ -0,0 +1,4 @@
var modules =
[
[ "CMSIS Global Defines", "group___c_m_s_i_s__glob__defs.html", null ]
];

BIN
documents/html/nav_f.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 153 B

BIN
documents/html/nav_g.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 95 B

BIN
documents/html/nav_h.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 98 B

147
documents/html/navtree.css Normal file
View File

@ -0,0 +1,147 @@
#nav-tree .children_ul {
margin:0;
padding:4px;
}
#nav-tree ul {
list-style:none outside none;
margin:0px;
padding:0px;
}
#nav-tree li {
white-space:nowrap;
margin:0px;
padding:0px;
}
#nav-tree .plus {
margin:0px;
}
#nav-tree .selected {
background-image: url('tab_a.png');
background-repeat:repeat-x;
color: #fff;
text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0);
}
#nav-tree img {
margin:0px;
padding:0px;
border:0px;
vertical-align: middle;
}
#nav-tree a {
text-decoration:none;
padding:0px;
margin:0px;
outline:none;
}
#nav-tree .label {
margin:0px;
padding:0px;
font: 12px 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif;
}
#nav-tree .label a {
padding:2px;
}
#nav-tree .selected a {
text-decoration:none;
color:#fff;
}
#nav-tree .children_ul {
margin:0px;
padding:0px;
}
#nav-tree .item {
margin:0px;
padding:0px;
}
#nav-tree {
padding: 0px 0px;
background-color: #FAFAFF;
font-size:14px;
overflow:auto;
}
#doc-content {
overflow:auto;
display:block;
padding:0px;
margin:0px;
-webkit-overflow-scrolling : touch; /* iOS 5+ */
}
#side-nav {
padding:0 6px 0 0;
margin: 0px;
display:block;
position: absolute;
left: 0px;
width: 250px;
overflow : hidden;
}
.ui-resizable .ui-resizable-handle {
display:block;
}
.ui-resizable-e {
background-image:url("splitbar.png");
background-size:100%;
background-repeat:repeat-y;
background-attachment: scroll;
cursor:ew-resize;
height:100%;
right:0;
top:0;
width:6px;
}
.ui-resizable-handle {
display:none;
font-size:0.1px;
position:absolute;
z-index:1;
}
#nav-tree-contents {
margin: 6px 0px 0px 0px;
}
#nav-tree {
background-image:url('nav_h.png');
background-repeat:repeat-x;
background-color: #F9FAFC;
-webkit-overflow-scrolling : touch; /* iOS 5+ */
}
#nav-sync {
position:absolute;
top:5px;
right:24px;
z-index:0;
}
#nav-sync img {
opacity:0.3;
}
#nav-sync img:hover {
opacity:0.9;
}
@media print
{
#nav-tree { display: none; }
div.ui-resizable-handle { display: none; position: relative; }
}

549
documents/html/navtree.js Normal file
View File

@ -0,0 +1,549 @@
/*
@licstart The following is the entire license notice for the JavaScript code in this file.
The MIT License (MIT)
Copyright (C) 1997-2020 by Dimitri van Heesch
Permission is hereby granted, free of charge, to any person obtaining a copy of this software
and associated documentation files (the "Software"), to deal in the Software without restriction,
including without limitation the rights to use, copy, modify, merge, publish, distribute,
sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or
substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@licend The above is the entire license notice for the JavaScript code in this file
*/
var navTreeSubIndices = new Array();
var arrowDown = '&#9660;';
var arrowRight = '&#9658;';
function getData(varName)
{
var i = varName.lastIndexOf('/');
var n = i>=0 ? varName.substring(i+1) : varName;
return eval(n.replace(/\-/g,'_'));
}
function stripPath(uri)
{
return uri.substring(uri.lastIndexOf('/')+1);
}
function stripPath2(uri)
{
var i = uri.lastIndexOf('/');
var s = uri.substring(i+1);
var m = uri.substring(0,i+1).match(/\/d\w\/d\w\w\/$/);
return m ? uri.substring(i-6) : s;
}
function hashValue()
{
return $(location).attr('hash').substring(1).replace(/[^\w\-]/g,'');
}
function hashUrl()
{
return '#'+hashValue();
}
function pathName()
{
return $(location).attr('pathname').replace(/[^-A-Za-z0-9+&@#/%?=~_|!:,.;\(\)]/g, '');
}
function localStorageSupported()
{
try {
return 'localStorage' in window && window['localStorage'] !== null && window.localStorage.getItem;
}
catch(e) {
return false;
}
}
function storeLink(link)
{
if (!$("#nav-sync").hasClass('sync') && localStorageSupported()) {
window.localStorage.setItem('navpath',link);
}
}
function deleteLink()
{
if (localStorageSupported()) {
window.localStorage.setItem('navpath','');
}
}
function cachedLink()
{
if (localStorageSupported()) {
return window.localStorage.getItem('navpath');
} else {
return '';
}
}
function getScript(scriptName,func,show)
{
var head = document.getElementsByTagName("head")[0];
var script = document.createElement('script');
script.id = scriptName;
script.type = 'text/javascript';
script.onload = func;
script.src = scriptName+'.js';
head.appendChild(script);
}
function createIndent(o,domNode,node,level)
{
var level=-1;
var n = node;
while (n.parentNode) { level++; n=n.parentNode; }
if (node.childrenData) {
var imgNode = document.createElement("span");
imgNode.className = 'arrow';
imgNode.style.paddingLeft=(16*level).toString()+'px';
imgNode.innerHTML=arrowRight;
node.plus_img = imgNode;
node.expandToggle = document.createElement("a");
node.expandToggle.href = "javascript:void(0)";
node.expandToggle.onclick = function() {
if (node.expanded) {
$(node.getChildrenUL()).slideUp("fast");
node.plus_img.innerHTML=arrowRight;
node.expanded = false;
} else {
expandNode(o, node, false, false);
}
}
node.expandToggle.appendChild(imgNode);
domNode.appendChild(node.expandToggle);
} else {
var span = document.createElement("span");
span.className = 'arrow';
span.style.width = 16*(level+1)+'px';
span.innerHTML = '&#160;';
domNode.appendChild(span);
}
}
var animationInProgress = false;
function gotoAnchor(anchor,aname,updateLocation)
{
var pos, docContent = $('#doc-content');
var ancParent = $(anchor.parent());
if (ancParent.hasClass('memItemLeft') ||
ancParent.hasClass('memtitle') ||
ancParent.hasClass('fieldname') ||
ancParent.hasClass('fieldtype') ||
ancParent.is(':header'))
{
pos = ancParent.position().top;
} else if (anchor.position()) {
pos = anchor.position().top;
}
if (pos) {
var dist = Math.abs(Math.min(
pos-docContent.offset().top,
docContent[0].scrollHeight-
docContent.height()-docContent.scrollTop()));
animationInProgress=true;
docContent.animate({
scrollTop: pos + docContent.scrollTop() - docContent.offset().top
},Math.max(50,Math.min(500,dist)),function(){
if (updateLocation) window.location.href=aname;
animationInProgress=false;
});
}
}
function newNode(o, po, text, link, childrenData, lastNode)
{
var node = new Object();
node.children = Array();
node.childrenData = childrenData;
node.depth = po.depth + 1;
node.relpath = po.relpath;
node.isLast = lastNode;
node.li = document.createElement("li");
po.getChildrenUL().appendChild(node.li);
node.parentNode = po;
node.itemDiv = document.createElement("div");
node.itemDiv.className = "item";
node.labelSpan = document.createElement("span");
node.labelSpan.className = "label";
createIndent(o,node.itemDiv,node,0);
node.itemDiv.appendChild(node.labelSpan);
node.li.appendChild(node.itemDiv);
var a = document.createElement("a");
node.labelSpan.appendChild(a);
node.label = document.createTextNode(text);
node.expanded = false;
a.appendChild(node.label);
if (link) {
var url;
if (link.substring(0,1)=='^') {
url = link.substring(1);
link = url;
} else {
url = node.relpath+link;
}
a.className = stripPath(link.replace('#',':'));
if (link.indexOf('#')!=-1) {
var aname = '#'+link.split('#')[1];
var srcPage = stripPath(pathName());
var targetPage = stripPath(link.split('#')[0]);
a.href = srcPage!=targetPage ? url : "javascript:void(0)";
a.onclick = function(){
storeLink(link);
if (!$(a).parent().parent().hasClass('selected'))
{
$('.item').removeClass('selected');
$('.item').removeAttr('id');
$(a).parent().parent().addClass('selected');
$(a).parent().parent().attr('id','selected');
}
var anchor = $(aname);
gotoAnchor(anchor,aname,true);
};
} else {
a.href = url;
a.onclick = function() { storeLink(link); }
}
} else {
if (childrenData != null)
{
a.className = "nolink";
a.href = "javascript:void(0)";
a.onclick = node.expandToggle.onclick;
}
}
node.childrenUL = null;
node.getChildrenUL = function() {
if (!node.childrenUL) {
node.childrenUL = document.createElement("ul");
node.childrenUL.className = "children_ul";
node.childrenUL.style.display = "none";
node.li.appendChild(node.childrenUL);
}
return node.childrenUL;
};
return node;
}
function showRoot()
{
var headerHeight = $("#top").height();
var footerHeight = $("#nav-path").height();
var windowHeight = $(window).height() - headerHeight - footerHeight;
(function (){ // retry until we can scroll to the selected item
try {
var navtree=$('#nav-tree');
navtree.scrollTo('#selected',100,{offset:-windowHeight/2});
} catch (err) {
setTimeout(arguments.callee, 0);
}
})();
}
function expandNode(o, node, imm, showRoot)
{
if (node.childrenData && !node.expanded) {
if (typeof(node.childrenData)==='string') {
var varName = node.childrenData;
getScript(node.relpath+varName,function(){
node.childrenData = getData(varName);
expandNode(o, node, imm, showRoot);
}, showRoot);
} else {
if (!node.childrenVisited) {
getNode(o, node);
}
$(node.getChildrenUL()).slideDown("fast");
node.plus_img.innerHTML = arrowDown;
node.expanded = true;
}
}
}
function glowEffect(n,duration)
{
n.addClass('glow').delay(duration).queue(function(next){
$(this).removeClass('glow');next();
});
}
function highlightAnchor()
{
var aname = hashUrl();
var anchor = $(aname);
if (anchor.parent().attr('class')=='memItemLeft'){
var rows = $('.memberdecls tr[class$="'+hashValue()+'"]');
glowEffect(rows.children(),300); // member without details
} else if (anchor.parent().attr('class')=='fieldname'){
glowEffect(anchor.parent().parent(),1000); // enum value
} else if (anchor.parent().attr('class')=='fieldtype'){
glowEffect(anchor.parent().parent(),1000); // struct field
} else if (anchor.parent().is(":header")) {
glowEffect(anchor.parent(),1000); // section header
} else {
glowEffect(anchor.next(),1000); // normal member
}
}
function selectAndHighlight(hash,n)
{
var a;
if (hash) {
var link=stripPath(pathName())+':'+hash.substring(1);
a=$('.item a[class$="'+link+'"]');
}
if (a && a.length) {
a.parent().parent().addClass('selected');
a.parent().parent().attr('id','selected');
highlightAnchor();
} else if (n) {
$(n.itemDiv).addClass('selected');
$(n.itemDiv).attr('id','selected');
}
var topOffset=5;
if (typeof page_layout!=='undefined' && page_layout==1) {
topOffset+=$('#top').outerHeight();
}
if ($('#nav-tree-contents .item:first').hasClass('selected')) {
topOffset+=25;
}
$('#nav-sync').css('top',topOffset+'px');
showRoot();
}
function showNode(o, node, index, hash)
{
if (node && node.childrenData) {
if (typeof(node.childrenData)==='string') {
var varName = node.childrenData;
getScript(node.relpath+varName,function(){
node.childrenData = getData(varName);
showNode(o,node,index,hash);
},true);
} else {
if (!node.childrenVisited) {
getNode(o, node);
}
$(node.getChildrenUL()).css({'display':'block'});
node.plus_img.innerHTML = arrowDown;
node.expanded = true;
var n = node.children[o.breadcrumbs[index]];
if (index+1<o.breadcrumbs.length) {
showNode(o,n,index+1,hash);
} else {
if (typeof(n.childrenData)==='string') {
var varName = n.childrenData;
getScript(n.relpath+varName,function(){
n.childrenData = getData(varName);
node.expanded=false;
showNode(o,node,index,hash); // retry with child node expanded
},true);
} else {
var rootBase = stripPath(o.toroot.replace(/\..+$/, ''));
if (rootBase=="index" || rootBase=="pages" || rootBase=="search") {
expandNode(o, n, true, true);
}
selectAndHighlight(hash,n);
}
}
}
} else {
selectAndHighlight(hash);
}
}
function removeToInsertLater(element) {
var parentNode = element.parentNode;
var nextSibling = element.nextSibling;
parentNode.removeChild(element);
return function() {
if (nextSibling) {
parentNode.insertBefore(element, nextSibling);
} else {
parentNode.appendChild(element);
}
};
}
function getNode(o, po)
{
var insertFunction = removeToInsertLater(po.li);
po.childrenVisited = true;
var l = po.childrenData.length-1;
for (var i in po.childrenData) {
var nodeData = po.childrenData[i];
po.children[i] = newNode(o, po, nodeData[0], nodeData[1], nodeData[2],
i==l);
}
insertFunction();
}
function gotoNode(o,subIndex,root,hash,relpath)
{
var nti = navTreeSubIndices[subIndex][root+hash];
o.breadcrumbs = $.extend(true, [], nti ? nti : navTreeSubIndices[subIndex][root]);
if (!o.breadcrumbs && root!=NAVTREE[0][1]) { // fallback: show index
navTo(o,NAVTREE[0][1],"",relpath);
$('.item').removeClass('selected');
$('.item').removeAttr('id');
}
if (o.breadcrumbs) {
o.breadcrumbs.unshift(0); // add 0 for root node
showNode(o, o.node, 0, hash);
}
}
function navTo(o,root,hash,relpath)
{
var link = cachedLink();
if (link) {
var parts = link.split('#');
root = parts[0];
if (parts.length>1) hash = '#'+parts[1].replace(/[^\w\-]/g,'');
else hash='';
}
if (hash.match(/^#l\d+$/)) {
var anchor=$('a[name='+hash.substring(1)+']');
glowEffect(anchor.parent(),1000); // line number
hash=''; // strip line number anchors
}
var url=root+hash;
var i=-1;
while (NAVTREEINDEX[i+1]<=url) i++;
if (i==-1) { i=0; root=NAVTREE[0][1]; } // fallback: show index
if (navTreeSubIndices[i]) {
gotoNode(o,i,root,hash,relpath)
} else {
getScript(relpath+'navtreeindex'+i,function(){
navTreeSubIndices[i] = eval('NAVTREEINDEX'+i);
if (navTreeSubIndices[i]) {
gotoNode(o,i,root,hash,relpath);
}
},true);
}
}
function showSyncOff(n,relpath)
{
n.html('<img src="'+relpath+'sync_off.png" title="'+SYNCOFFMSG+'"/>');
}
function showSyncOn(n,relpath)
{
n.html('<img src="'+relpath+'sync_on.png" title="'+SYNCONMSG+'"/>');
}
function toggleSyncButton(relpath)
{
var navSync = $('#nav-sync');
if (navSync.hasClass('sync')) {
navSync.removeClass('sync');
showSyncOff(navSync,relpath);
storeLink(stripPath2(pathName())+hashUrl());
} else {
navSync.addClass('sync');
showSyncOn(navSync,relpath);
deleteLink();
}
}
var loadTriggered = false;
var readyTriggered = false;
var loadObject,loadToRoot,loadUrl,loadRelPath;
$(window).on('load',function(){
if (readyTriggered) { // ready first
navTo(loadObject,loadToRoot,loadUrl,loadRelPath);
showRoot();
}
loadTriggered=true;
});
function initNavTree(toroot,relpath)
{
var o = new Object();
o.toroot = toroot;
o.node = new Object();
o.node.li = document.getElementById("nav-tree-contents");
o.node.childrenData = NAVTREE;
o.node.children = new Array();
o.node.childrenUL = document.createElement("ul");
o.node.getChildrenUL = function() { return o.node.childrenUL; };
o.node.li.appendChild(o.node.childrenUL);
o.node.depth = 0;
o.node.relpath = relpath;
o.node.expanded = false;
o.node.isLast = true;
o.node.plus_img = document.createElement("span");
o.node.plus_img.className = 'arrow';
o.node.plus_img.innerHTML = arrowRight;
if (localStorageSupported()) {
var navSync = $('#nav-sync');
if (cachedLink()) {
showSyncOff(navSync,relpath);
navSync.removeClass('sync');
} else {
showSyncOn(navSync,relpath);
}
navSync.click(function(){ toggleSyncButton(relpath); });
}
if (loadTriggered) { // load before ready
navTo(o,toroot,hashUrl(),relpath);
showRoot();
} else { // ready before load
loadObject = o;
loadToRoot = toroot;
loadUrl = hashUrl();
loadRelPath = relpath;
readyTriggered=true;
}
$(window).bind('hashchange', function(){
if (window.location.hash && window.location.hash.length>1){
var a;
if ($(location).attr('hash')){
var clslink=stripPath(pathName())+':'+hashValue();
a=$('.item a[class$="'+clslink.replace(/</g,'\\3c ')+'"]');
}
if (a==null || !$(a).parent().parent().hasClass('selected')){
$('.item').removeClass('selected');
$('.item').removeAttr('id');
}
var link=stripPath2(pathName());
navTo(o,link,hashUrl(),relpath);
} else if (!animationInProgress) {
$('#doc-content').scrollTop(0);
$('.item').removeClass('selected');
$('.item').removeAttr('id');
navTo(o,toroot,hashUrl(),relpath);
}
})
}
/* @license-end */

View File

@ -0,0 +1,80 @@
/*
@licstart The following is the entire license notice for the JavaScript code in this file.
The MIT License (MIT)
Copyright (C) 1997-2020 by Dimitri van Heesch
Permission is hereby granted, free of charge, to any person obtaining a copy of this software
and associated documentation files (the "Software"), to deal in the Software without restriction,
including without limitation the rights to use, copy, modify, merge, publish, distribute,
sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or
substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@licend The above is the entire license notice for the JavaScript code in this file
*/
var NAVTREE =
[
[ "perf_counter", "index.html", [
[ "perf_counter (v1.9.5)", "md__r_e_a_d_m_e.html", [
[ "1. How To Use", "md__r_e_a_d_m_e.html#autotoc_md2", [
[ "<strong>Features:</strong>", "md__r_e_a_d_m_e.html#autotoc_md1", null ],
[ "1.1 Measure CPU cycles for specified code segment", "md__r_e_a_d_m_e.html#autotoc_md3", [
[ "<strong>Example 1:</strong> Simple measurement with printf", "md__r_e_a_d_m_e.html#autotoc_md4", null ],
[ "<strong>Example 2:</strong> Read measured result via <tt>__cycle_counter__</tt>", "md__r_e_a_d_m_e.html#autotoc_md5", null ]
] ],
[ "1.2 Timestamp", "md__r_e_a_d_m_e.html#autotoc_md6", [
[ "Example 3: Use <tt>get_system_ms()</tt> as random seed", "md__r_e_a_d_m_e.html#autotoc_md7", null ],
[ "Example 4: Measure CPU cycles", "md__r_e_a_d_m_e.html#autotoc_md8", null ]
] ]
] ],
[ "2. How To Deploy", "md__r_e_a_d_m_e.html#autotoc_md9", [
[ "2.1 Generic(Default) method for all compilers", "md__r_e_a_d_m_e.html#autotoc_md10", [
[ "2.1.1 For Bare-metal:", "md__r_e_a_d_m_e.html#autotoc_md11", null ]
] ],
[ "2.2 Use cmsis-pack in MDK", "md__r_e_a_d_m_e.html#autotoc_md12", null ]
] ],
[ "3. FAQ", "md__r_e_a_d_m_e.html#autotoc_md13", [
[ "3.1 Why I see <tt>Undefined symbol $Super$$SysTick_Handler</tt>", "md__r_e_a_d_m_e.html#autotoc_md14", null ]
] ],
[ "4. License", "md__r_e_a_d_m_e.html#autotoc_md15", null ]
] ],
[ "Modules", "modules.html", "modules" ],
[ "Data Structures", "annotated.html", [
[ "Data Structures", "annotated.html", "annotated_dup" ],
[ "Data Structure Index", "classes.html", null ],
[ "Data Fields", "functions.html", [
[ "All", "functions.html", null ],
[ "Variables", "functions_vars.html", null ]
] ]
] ],
[ "Files", "files.html", [
[ "File List", "files.html", "files_dup" ],
[ "Globals", "globals.html", [
[ "All", "globals.html", null ],
[ "Functions", "globals_func.html", null ],
[ "Variables", "globals_vars.html", null ],
[ "Typedefs", "globals_type.html", null ],
[ "Macros", "globals_defs.html", null ]
] ]
] ]
] ]
];
var NAVTREEINDEX =
[
"annotated.html",
"structtsk_task_control_block.html#a41989bc39d576125f4492364592f9e1a"
];
var SYNCONMSG = 'click to disable panel synchronisation';
var SYNCOFFMSG = 'click to enable panel synchronisation';

View File

@ -0,0 +1,253 @@
var NAVTREEINDEX0 =
{
"annotated.html":[2,0],
"classes.html":[2,1],
"files.html":[3,0],
"functions.html":[2,2,0],
"functions_vars.html":[2,2,1],
"globals.html":[3,1,0],
"globals_defs.html":[3,1,4],
"globals_func.html":[3,1,1],
"globals_type.html":[3,1,3],
"globals_vars.html":[3,1,2],
"group___c_m_s_i_s__glob__defs.html":[1,0],
"index.html":[],
"md__r_e_a_d_m_e.html":[0],
"md__r_e_a_d_m_e.html#autotoc_md1":[0],
"md__r_e_a_d_m_e.html#autotoc_md10":[0,1,0],
"md__r_e_a_d_m_e.html#autotoc_md11":[0,1,0,0],
"md__r_e_a_d_m_e.html#autotoc_md12":[0,1,1],
"md__r_e_a_d_m_e.html#autotoc_md13":[0,2],
"md__r_e_a_d_m_e.html#autotoc_md14":[0,2,0],
"md__r_e_a_d_m_e.html#autotoc_md15":[0,3],
"md__r_e_a_d_m_e.html#autotoc_md2":[0,0],
"md__r_e_a_d_m_e.html#autotoc_md3":[0,0,1],
"md__r_e_a_d_m_e.html#autotoc_md4":[0,0,1,0],
"md__r_e_a_d_m_e.html#autotoc_md5":[0,0,1,1],
"md__r_e_a_d_m_e.html#autotoc_md6":[0,0,2],
"md__r_e_a_d_m_e.html#autotoc_md7":[0,0,2,0],
"md__r_e_a_d_m_e.html#autotoc_md8":[0,0,2,1],
"md__r_e_a_d_m_e.html#autotoc_md9":[0,1],
"modules.html":[1],
"pages.html":[],
"perf__counter_8c.html":[3,0,0],
"perf__counter_8c.html#a014af75d3945894c4740773e8a28d723":[3,0,0,60],
"perf__counter_8c.html#a01d6cd52b6c48c1e0c8a68b48ad87b0c":[3,0,0,49],
"perf__counter_8c.html#a0a6e5160f19f152b0b9a502e5e24adb7":[3,0,0,63],
"perf__counter_8c.html#a0b48cc1e36d92a92e4bf632890314810":[3,0,0,34],
"perf__counter_8c.html#a0df8fe57dbd607e1992149a890612476":[3,0,0,57],
"perf__counter_8c.html#a0ea2009ed8fd9ef35b48708280fdb758":[3,0,0,9],
"perf__counter_8c.html#a0f17a2b1bde9a2632daa7ad0b96df9e5":[3,0,0,12],
"perf__counter_8c.html#a16c9fee0ed0235524bdeb38af328fd1f":[3,0,0,33],
"perf__counter_8c.html#a1bf3033ecccf200f59baefe15dbb367c":[3,0,0,31],
"perf__counter_8c.html#a21ccde78f8ad778f05be60855c5a8283":[3,0,0,46],
"perf__counter_8c.html#a24fbc69a5f0b78d67fda2300257baff1":[3,0,0,30],
"perf__counter_8c.html#a265912a7962f0e1abd170336e579b1b1":[3,0,0,37],
"perf__counter_8c.html#a2add8ab5b23b568bba6d46f9c977dbce":[3,0,0,47],
"perf__counter_8c.html#a3208104c3b019b5de35ae8c21d5c34dd":[3,0,0,40],
"perf__counter_8c.html#a32dabfe5b863f89f71735b20a0caf1ea":[3,0,0,53],
"perf__counter_8c.html#a3af0d891fdd99bcc8d8912d37830edb6":[3,0,0,23],
"perf__counter_8c.html#a3c14ed93192c8d9143322bbf77ebf770":[3,0,0,20],
"perf__counter_8c.html#a4781d1de67a0b4fd21656377d0a2a0bc":[3,0,0,43],
"perf__counter_8c.html#a4cc1649793116d7c2d8afce7a4ffce43":[3,0,0,4],
"perf__counter_8c.html#a534dbe414e7a46a6ce4c1eca1fbff409":[3,0,0,24],
"perf__counter_8c.html#a58effaac0b93006b756d33209e814646":[3,0,0,22],
"perf__counter_8c.html#a5ed2b69d382ff960de71b5aa2e0b0deb":[3,0,0,10],
"perf__counter_8c.html#a7325b61ea0ec323ef2d5c893b112e546":[3,0,0,18],
"perf__counter_8c.html#a74d7160e4b3588456a85fcdce6cee6ab":[3,0,0,55],
"perf__counter_8c.html#a79c2926ae10e2cc327faf58e6094866d":[3,0,0,58],
"perf__counter_8c.html#a7e25d9380f9ef903923964322e71f2f6":[3,0,0,8],
"perf__counter_8c.html#a81a5dabf3ca19922587390de6c9f0ff5":[3,0,0,45],
"perf__counter_8c.html#a87abe08a2093c8c69e5f813f565a1d31":[3,0,0,51],
"perf__counter_8c.html#a88f45bbb89ce8df3cd2b2613c7b48214":[3,0,0,36],
"perf__counter_8c.html#a8a6a85a87334776f33d77fd147587431":[3,0,0,25],
"perf__counter_8c.html#a9097d62a30ad2b4f75462c78d7200fa8":[3,0,0,54],
"perf__counter_8c.html#a95bb984266ca764024836a870238a027":[3,0,0,35],
"perf__counter_8c.html#a9776dfed871d0e0775c876f16e7618f7":[3,0,0,48],
"perf__counter_8c.html#a98c51d83fdb448a2733d0a309366149c":[3,0,0,52],
"perf__counter_8c.html#a9dbb3358c6167c9c3f85661b90fb2794":[3,0,0,19],
"perf__counter_8c.html#aa3cd3e43291e81e795d642b79b6088e6":[3,0,0,64],
"perf__counter_8c.html#aa41d06039797423a46596bd313d57373":[3,0,0,29],
"perf__counter_8c.html#aaaf6477c2bde2f00f99e3c2fd1060b01":[3,0,0,14],
"perf__counter_8c.html#ab241827d2a793269d8cd99b9b28c2157":[3,0,0,16],
"perf__counter_8c.html#ab6caba5853a60a17e8e04499b52bf691":[3,0,0,7],
"perf__counter_8c.html#acae558f6e75a0bed5d826f606d8e695e":[3,0,0,28],
"perf__counter_8c.html#acd6c9ac2bce565b27fef68a011411100":[3,0,0,11],
"perf__counter_8c.html#acd96c53beeaff8f603fcda425eb295de":[3,0,0,21],
"perf__counter_8c.html#ad17c3ab8fb4c68ebc676562ab00770a1":[3,0,0,44],
"perf__counter_8c.html#ad55a7ddb8d4b2398b0c1cfec76c0d9fd":[3,0,0,15],
"perf__counter_8c.html#ad7332da0831148c773a7c5211d5bfa1e":[3,0,0,13],
"perf__counter_8c.html#adbb65d4a815759649db41df216ed4d60":[3,0,0,32],
"perf__counter_8c.html#adbe25e4b333ece1341beb1a740168fdc":[3,0,0,17],
"perf__counter_8c.html#add0c9cd6641b9f6a0c618e7982954860":[3,0,0,26],
"perf__counter_8c.html#aded00de9fbde9be7f8872f85685b36a4":[3,0,0,41],
"perf__counter_8c.html#ae2c015694f2e89240466e9b1d423c6ec":[3,0,0,50],
"perf__counter_8c.html#ae4e8f0238527c69f522029b93c8e5b78":[3,0,0,61],
"perf__counter_8c.html#ae8c905d7221a7299fba5edbbfe1f449f":[3,0,0,62],
"perf__counter_8c.html#aec43007d9998a0a0e01faede4133d6be":[3,0,0,6],
"perf__counter_8c.html#aee2926404ade74811fa658786035f745":[3,0,0,42],
"perf__counter_8c.html#af1e68865c5aece2ad58971225bd3e95e":[3,0,0,27],
"perf__counter_8c.html#af33fd92801223d4befa49c610332ddd4":[3,0,0,59],
"perf__counter_8c.html#af44d10df359dc5bf5752b0894ae3bad2":[3,0,0,38],
"perf__counter_8c.html#af5404b4b72cfaf910fb2ebeb8d7a4448":[3,0,0,56],
"perf__counter_8c.html#af63697ed9952cc71e1225efe205f6cd3":[3,0,0,3],
"perf__counter_8c.html#afc77b56d568930b49a2474debc75ab45":[3,0,0,39],
"perf__counter_8c.html#afedb615b5c48d33ad8523f92078bf66c":[3,0,0,5],
"perf__counter_8c_source.html":[3,0,0],
"perf__counter_8h.html":[3,0,1],
"perf__counter_8h.html#a00278751616ee5d95ce4bea4ffb59ce7":[3,0,1,43],
"perf__counter_8h.html#a014af75d3945894c4740773e8a28d723":[3,0,1,62],
"perf__counter_8h.html#a06e00a5b710c5144aa756c1905c12fcf":[3,0,1,46],
"perf__counter_8h.html#a0a6e5160f19f152b0b9a502e5e24adb7":[3,0,1,63],
"perf__counter_8h.html#a11d20291b945175264a568c4c9dcd9bd":[3,0,1,45],
"perf__counter_8h.html#a1409defa6d3e973b7efee74d2de7386d":[3,0,1,28],
"perf__counter_8h.html#a147d3eb2e96136dc1758aa8d3e2a089c":[3,0,1,10],
"perf__counter_8h.html#a1616b4eef4bbd94969a9010c4114b488":[3,0,1,47],
"perf__counter_8h.html#a1a10811d7e12a6be9be6ccdf1ef824e8":[3,0,1,24],
"perf__counter_8h.html#a2add8ab5b23b568bba6d46f9c977dbce":[3,0,1,56],
"perf__counter_8h.html#a2b3247f9df3a6702c90468722994bf49":[3,0,1,7],
"perf__counter_8h.html#a2c93a7704596f19ff84cbfec513c3a5a":[3,0,1,42],
"perf__counter_8h.html#a2e49e3ac701e3e087719d74f2a4ef840":[3,0,1,14],
"perf__counter_8h.html#a32dabfe5b863f89f71735b20a0caf1ea":[3,0,1,59],
"perf__counter_8h.html#a3447ab4da15b7a4e81830839202ee0be":[3,0,1,23],
"perf__counter_8h.html#a39273cdd59b6f17525f429d61f242a73":[3,0,1,12],
"perf__counter_8h.html#a397bd70fecd355461d99b228d02d01f8":[3,0,1,32],
"perf__counter_8h.html#a3994906c1038cf4f04e9578079429555":[3,0,1,30],
"perf__counter_8h.html#a3bbbfb88c43244289b9a4e4521caf7cb":[3,0,1,33],
"perf__counter_8h.html#a41124119fd6c23775692729a2ec26d71":[3,0,1,13],
"perf__counter_8h.html#a4be8346e8c8e544e3dc4da819f03d636":[3,0,1,31],
"perf__counter_8h.html#a4e95e8dc0d6a7f273a26c9e4bc239f83":[3,0,1,52],
"perf__counter_8h.html#a607df0241b0f85868159e1e15f44acdc":[3,0,1,44],
"perf__counter_8h.html#a623a729e6571efedb0c5528689d6120d":[3,0,1,40],
"perf__counter_8h.html#a62d05224187a7f224d1803a64951cf3f":[3,0,1,16],
"perf__counter_8h.html#a67d6d69c5ea260de9bdf81edf9672af3":[3,0,1,36],
"perf__counter_8h.html#a78dee228d830879c65edae8392fbf159":[3,0,1,9],
"perf__counter_8h.html#a798b1c8c5d91763e99d63fc7c326dead":[3,0,1,8],
"perf__counter_8h.html#a7b6c484887a402bba1af11b457264553":[3,0,1,37],
"perf__counter_8h.html#a7e7af9eb2708d17ce5ec5ea01cb914f1":[3,0,1,25],
"perf__counter_8h.html#a8deb36935d07c69646a26993ab15328a":[3,0,1,34],
"perf__counter_8h.html#a9097d62a30ad2b4f75462c78d7200fa8":[3,0,1,60],
"perf__counter_8h.html#a966a3eb20671a2a8c44d63d459f5472e":[3,0,1,11],
"perf__counter_8h.html#a96f0ed25511e535714003ec4ca738415":[3,0,1,39],
"perf__counter_8h.html#a9776dfed871d0e0775c876f16e7618f7":[3,0,1,57],
"perf__counter_8h.html#a98c51d83fdb448a2733d0a309366149c":[3,0,1,58],
"perf__counter_8h.html#a9ce80b30ee8f4bb424c23f785b3481b8":[3,0,1,35],
"perf__counter_8h.html#a9d1c7b8467fca7e2fcf0426ef294a171":[3,0,1,18],
"perf__counter_8h.html#aafef7ac0d7697d31814ff152d9eae0cc":[3,0,1,26],
"perf__counter_8h.html#ab6fd44a39b7fdd5c8c3b7309992e1a00":[3,0,1,5],
"perf__counter_8h.html#ab84fa299db0fc4c0a897eb0a3aab6233":[3,0,1,49],
"perf__counter_8h.html#ac118677bc3eb6a806eb1381d656b6c25":[3,0,1,55],
"perf__counter_8h.html#ac489b777985cc6133a3658d95dd424e1":[3,0,1,21],
"perf__counter_8h.html#ac4e7ceea5fc047d059b6b1898a697cb4":[3,0,1,41],
"perf__counter_8h.html#ac8f325950e08c3662d3c94233cf40e13":[3,0,1,27],
"perf__counter_8h.html#acfa3bf174dd68eeca5c7e4a16cdc24ea":[3,0,1,20],
"perf__counter_8h.html#ad90955bd356a41041a7dcb112a450766":[3,0,1,53],
"perf__counter_8h.html#ad9e3470ff82262ac6daca041607c31da":[3,0,1,50],
"perf__counter_8h.html#adb244281cf7a9410d7dc12823e105d02":[3,0,1,19],
"perf__counter_8h.html#adb870e7ae89ad2c5c7aeb70ba16eeaf6":[3,0,1,15],
"perf__counter_8h.html#ade59615465df27344e32b05c3629ef03":[3,0,1,4],
"perf__counter_8h.html#ae0db1f91522f0c020e1068d8bb2034cb":[3,0,1,29],
"perf__counter_8h.html#ae2d17b539ab98e8b0435fce5d8aff2b4":[3,0,1,6],
"perf__counter_8h.html#ae490fc8ce9ed8d7853ab956e76ebf1b8":[3,0,1,2],
"perf__counter_8h.html#af2456eddcc03ba108e670a583367342e":[3,0,1,22],
"perf__counter_8h.html#af2d5b85528ace8bbe8954d1ece9a3c51":[3,0,1,48],
"perf__counter_8h.html#af33fd92801223d4befa49c610332ddd4":[3,0,1,61],
"perf__counter_8h.html#af3fceb4da6cc89dd20a874bd147c2414":[3,0,1,38],
"perf__counter_8h.html#af40f44eb68f59549a3e5d6c91429c3c9":[3,0,1,3],
"perf__counter_8h.html#afc04dcb2bf83faaf5b14559d632c6b19":[3,0,1,17],
"perf__counter_8h.html#afc5b077f9764ca6f11075ce72357dd65":[3,0,1,54],
"perf__counter_8h.html#afdd7c2e511c981ad62525076f53a762e":[3,0,1,51],
"perf__counter_8h_source.html":[3,0,1],
"perf__os__patch__freertos_8c.html":[3,0,2],
"perf__os__patch__freertos_8c.html#a324f9bb05f8ce010d19ec560b4e1da95":[3,0,2,3],
"perf__os__patch__freertos_8c.html#a34b5fd2f760a3a19875464d26bdb71df":[3,0,2,7],
"perf__os__patch__freertos_8c.html#a411ff611b06926d6bcde27c0c621895c":[3,0,2,10],
"perf__os__patch__freertos_8c.html#a5d7733a0a2eec8eb3c6782ddfd6bf44c":[3,0,2,11],
"perf__os__patch__freertos_8c.html#a67b1ddede4e49c946dd720d83c5838a5":[3,0,2,9],
"perf__os__patch__freertos_8c.html#aa3c2dda92a6dc22860bbdb36e42a0453":[3,0,2,8],
"perf__os__patch__freertos_8c.html#aa7290a1d64a5cbe15d52fec89b35f1b9":[3,0,2,6],
"perf__os__patch__freertos_8c.html#aafe74ae771ab855185531aae1e42657c":[3,0,2,14],
"perf__os__patch__freertos_8c.html#ab622d8c674f2a417a666a7ed89109e79":[3,0,2,5],
"perf__os__patch__freertos_8c.html#acdecf2afe97343aba42b111bc6df9eea":[3,0,2,15],
"perf__os__patch__freertos_8c.html#aded00de9fbde9be7f8872f85685b36a4":[3,0,2,12],
"perf__os__patch__freertos_8c.html#aea3ef800c9428b732ffbe8445eefee66":[3,0,2,2],
"perf__os__patch__freertos_8c.html#aee2926404ade74811fa658786035f745":[3,0,2,13],
"perf__os__patch__freertos_8c.html#af1545bfa164313b88b851eb84f466541":[3,0,2,4],
"perf__os__patch__freertos_8c_source.html":[3,0,2],
"perf__os__patch__rt__thread_8c.html":[3,0,3],
"perf__os__patch__rt__thread_8c.html#a34b5fd2f760a3a19875464d26bdb71df":[3,0,3,2],
"perf__os__patch__rt__thread_8c.html#a6d5a15a297eb8d32f4d96b163bce36d9":[3,0,3,5],
"perf__os__patch__rt__thread_8c.html#a79f56a5699427ae8a615005dfbaf4325":[3,0,3,8],
"perf__os__patch__rt__thread_8c.html#aa7290a1d64a5cbe15d52fec89b35f1b9":[3,0,3,1],
"perf__os__patch__rt__thread_8c.html#aafe74ae771ab855185531aae1e42657c":[3,0,3,7],
"perf__os__patch__rt__thread_8c.html#abaf903de1b645f8ecdba87f4366322ec":[3,0,3,6],
"perf__os__patch__rt__thread_8c.html#aded00de9fbde9be7f8872f85685b36a4":[3,0,3,3],
"perf__os__patch__rt__thread_8c.html#aee2926404ade74811fa658786035f745":[3,0,3,4],
"perf__os__patch__rt__thread_8c_source.html":[3,0,3],
"perf__os__patch__rtx5_8c.html":[3,0,4],
"perf__os__patch__rtx5_8c.html#a34b5fd2f760a3a19875464d26bdb71df":[3,0,4,2],
"perf__os__patch__rtx5_8c.html#a3a82490931e58666b859d4f6d08cfb5d":[3,0,4,3],
"perf__os__patch__rtx5_8c.html#aa7290a1d64a5cbe15d52fec89b35f1b9":[3,0,4,1],
"perf__os__patch__rtx5_8c.html#aafe74ae771ab855185531aae1e42657c":[3,0,4,6],
"perf__os__patch__rtx5_8c.html#aded00de9fbde9be7f8872f85685b36a4":[3,0,4,4],
"perf__os__patch__rtx5_8c.html#aee2926404ade74811fa658786035f745":[3,0,4,5],
"perf__os__patch__rtx5_8c_source.html":[3,0,4],
"perf__os__patch__threadx_8c.html":[3,0,5],
"perf__os__patch__threadx_8c.html#a34b5fd2f760a3a19875464d26bdb71df":[3,0,5,2],
"perf__os__patch__threadx_8c.html#a72166391ae25f12a0741f945ba30e422":[3,0,5,7],
"perf__os__patch__threadx_8c.html#a85297ebd81eb8d1ed014ea7b55323ac2":[3,0,5,8],
"perf__os__patch__threadx_8c.html#aa7290a1d64a5cbe15d52fec89b35f1b9":[3,0,5,1],
"perf__os__patch__threadx_8c.html#aafe74ae771ab855185531aae1e42657c":[3,0,5,9],
"perf__os__patch__threadx_8c.html#ad24217ee7fe98a52f4bfd3c1bedbd3b5":[3,0,5,6],
"perf__os__patch__threadx_8c.html#aded00de9fbde9be7f8872f85685b36a4":[3,0,5,3],
"perf__os__patch__threadx_8c.html#aee2926404ade74811fa658786035f745":[3,0,5,4],
"perf__os__patch__threadx_8c.html#af4e84b75796479b38375b2097a5a7673":[3,0,5,5],
"perf__os__patch__threadx_8c_source.html":[3,0,5],
"struct____task__cycle__info__t.html":[2,0,0],
"struct____task__cycle__info__t.html#a7d50a2272c4a1b65f927e8c6d1242b33":[2,0,0,2],
"struct____task__cycle__info__t.html#a88c8aad5ae23ae04fa44b2892081561b":[2,0,0,3],
"struct____task__cycle__info__t.html#a8af024785267321e4ef544e7f25d80dc":[2,0,0,1],
"struct____task__cycle__info__t.html#ae2aae11f91e3eea654ceeac9b81706cb":[2,0,0,0],
"struct_s_c_b___type.html":[2,0,1],
"struct_s_c_b___type.html#a0f9e27357254e6e953a94f95bda040b1":[2,0,1,5],
"struct_s_c_b___type.html#a293826a2c44f754e80af03d62f62f9e6":[2,0,1,19],
"struct_s_c_b___type.html#a3b590075aa07880ce686d5cfb4e61c5c":[2,0,1,9],
"struct_s_c_b___type.html#a3ef0057e48fdef798f2ee12125a80d9f":[2,0,1,1],
"struct_s_c_b___type.html#a3fde073744418e2fe476333cb4d55d0d":[2,0,1,3],
"struct_s_c_b___type.html#a44ad5c292dbd77e72f310902375a8a06":[2,0,1,18],
"struct_s_c_b___type.html#a602fa5eae6a772dbb09970d304e75690":[2,0,1,15],
"struct_s_c_b___type.html#a72572af6d5dece4947453aeabd52575f":[2,0,1,0],
"struct_s_c_b___type.html#a9361cfd01123913b78dd5d0dc8301bfd":[2,0,1,16],
"struct_s_c_b___type.html#a9b6ccd9c0c0865f8facad77ea37240b0":[2,0,1,2],
"struct_s_c_b___type.html#ab6c914b579d22d7eb86d0e3d9a5fde71":[2,0,1,14],
"struct_s_c_b___type.html#ab8e9dd6ca5f31244ea352ed0c19155d8":[2,0,1,6],
"struct_s_c_b___type.html#ab974e7ceb2e52a3fbcaa84e06e52922d":[2,0,1,10],
"struct_s_c_b___type.html#acac65f229cb3fcb5369a0a9e0393b8c0":[2,0,1,17],
"struct_s_c_b___type.html#aced895d6aba03d72b0d865fcc5ce44ee":[2,0,1,11],
"struct_s_c_b___type.html#ad68b5c1f2d9845ef4247cf2d9b041336":[2,0,1,4],
"struct_s_c_b___type.html#adbf8292503748ba6421a523bdee6819d":[2,0,1,7],
"struct_s_c_b___type.html#ae2b3d4530d1b0c05593b634dc46348bd":[2,0,1,8],
"struct_s_c_b___type.html#ae457d2615e203c3d5904a43a1bc9df71":[2,0,1,20],
"struct_s_c_b___type.html#ae9d94d186615d57d38c9253cb842d244":[2,0,1,13],
"struct_s_c_b___type.html#af2950df748750d535d5d65ac1c209563":[2,0,1,12],
"struct_sys_tick___type.html":[2,0,2],
"struct_sys_tick___type.html#a0c1333686137b7e25a46bd548a5b5bc3":[2,0,2,2],
"struct_sys_tick___type.html#ac81efc171e9852a36caeb47122bfec5b":[2,0,2,1],
"struct_sys_tick___type.html#ae7a655a853654127f3dfb7fa32c3f457":[2,0,2,3],
"struct_sys_tick___type.html#aedf0dff29a9cacdaa2fb7eec6b116a13":[2,0,2,0],
"structtask__cycle__info__agent__t.html":[2,0,3],
"structtask__cycle__info__agent__t.html#a0ab0ef208ec46b60dce3d05a76754931":[2,0,3,2],
"structtask__cycle__info__agent__t.html#a26adda6b75d3722f450eb169546bd7e7":[2,0,3,0],
"structtask__cycle__info__agent__t.html#a3f049d289ce99f316894417016d60ca6":[2,0,3,1],
"structtask__cycle__info__t.html":[2,0,4],
"structtask__cycle__info__t.html#a0250b43cfb57ddf17f7f40c4cc587249":[2,0,4,5],
"structtask__cycle__info__t.html#a19a46cbd05039f568b01e326d65d6b80":[2,0,4,4],
"structtask__cycle__info__t.html#a3b941eea48497afb204462c694bc2d12":[2,0,4,3],
"structtask__cycle__info__t.html#a77132c2c26a75f5b8751b235cda23828":[2,0,4,0],
"structtask__cycle__info__t.html#a84d3729a2d49dd2e43ef8727fcd6f9b0":[2,0,4,2],
"structtask__cycle__info__t.html#a8a4c67264f8440bb83dec68c4312ff09":[2,0,4,1],
"structtsk_task_control_block.html":[2,0,5],
"structtsk_task_control_block.html#a0befed3dd0fe55b4314158f4814f50ae":[2,0,5,3],
"structtsk_task_control_block.html#a139605d93d834601f34be927ecba3a15":[2,0,5,4],
"structtsk_task_control_block.html#a2575f6a579ef61db0db66d7b1b52ec48":[2,0,5,5]
};

View File

@ -0,0 +1,6 @@
var NAVTREEINDEX1 =
{
"structtsk_task_control_block.html#a41989bc39d576125f4492364592f9e1a":[2,0,5,2],
"structtsk_task_control_block.html#aaecd48bdf732c1df94b258956ca85bd7":[2,0,5,1],
"structtsk_task_control_block.html#afa7d65deeca135b921eaa78fbbf52918":[2,0,5,0]
};

BIN
documents/html/open.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 123 B

102
documents/html/pages.html Normal file
View File

@ -0,0 +1,102 @@
<!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=11"/>
<meta name="generator" content="Doxygen 1.9.4"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>perf_counter: Related Pages</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 id="projectrow">
<td id="projectalign">
<div id="projectname">perf_counter
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.4 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @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:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(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:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('pages.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">Related Pages</div></div>
</div><!--header-->
<div class="contents">
<div class="textblock">Here is a list of all related documentation pages:</div><div class="directory">
<table class="directory">
<tr id="row_0_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a class="el" href="md__r_e_a_d_m_e.html" target="_self">perf_counter (v1.9.5)</a></td><td class="desc"></td></tr>
</table>
</div><!-- directory -->
</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="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.4 </li>
</ul>
</div>
</body>
</html>

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,68 @@
var perf__counter_8c =
[
[ "SysTick_Type", "struct_sys_tick___type.html", "struct_sys_tick___type" ],
[ "SCB_Type", "struct_s_c_b___type.html", "struct_s_c_b___type" ],
[ "__task_cycle_info_t", "struct____task__cycle__info__t.html", "struct____task__cycle__info__t" ],
[ "__I", "perf__counter_8c.html#af63697ed9952cc71e1225efe205f6cd3", null ],
[ "__IM", "perf__counter_8c.html#a4cc1649793116d7c2d8afce7a4ffce43", null ],
[ "__IMPLEMENT_PERF_COUNTER", "perf__counter_8c.html#afedb615b5c48d33ad8523f92078bf66c", null ],
[ "__IO", "perf__counter_8c.html#aec43007d9998a0a0e01faede4133d6be", null ],
[ "__IOM", "perf__counter_8c.html#ab6caba5853a60a17e8e04499b52bf691", null ],
[ "__O", "perf__counter_8c.html#a7e25d9380f9ef903923964322e71f2f6", null ],
[ "__OM", "perf__counter_8c.html#a0ea2009ed8fd9ef35b48708280fdb758", null ],
[ "MAGIC_WORD_AGENT_LIST_VALID", "perf__counter_8c.html#a5ed2b69d382ff960de71b5aa2e0b0deb", null ],
[ "MAGIC_WORD_CANARY", "perf__counter_8c.html#acd6c9ac2bce565b27fef68a011411100", null ],
[ "PERF_CNT_COMPENSATION_THRESHOLD", "perf__counter_8c.html#a0f17a2b1bde9a2632daa7ad0b96df9e5", null ],
[ "PERF_CNT_DELAY_US_COMPENSATION", "perf__counter_8c.html#ad7332da0831148c773a7c5211d5bfa1e", null ],
[ "SCB", "perf__counter_8c.html#aaaf6477c2bde2f00f99e3c2fd1060b01", null ],
[ "SCB_BASE", "perf__counter_8c.html#ad55a7ddb8d4b2398b0c1cfec76c0d9fd", null ],
[ "SCB_ICSR_PENDSTCLR_Msk", "perf__counter_8c.html#ab241827d2a793269d8cd99b9b28c2157", null ],
[ "SCB_ICSR_PENDSTCLR_Pos", "perf__counter_8c.html#adbe25e4b333ece1341beb1a740168fdc", null ],
[ "SCB_ICSR_PENDSTSET_Msk", "perf__counter_8c.html#a7325b61ea0ec323ef2d5c893b112e546", null ],
[ "SCB_ICSR_PENDSTSET_Pos", "perf__counter_8c.html#a9dbb3358c6167c9c3f85661b90fb2794", null ],
[ "SCS_BASE", "perf__counter_8c.html#a3c14ed93192c8d9143322bbf77ebf770", null ],
[ "SysTick", "perf__counter_8c.html#acd96c53beeaff8f603fcda425eb295de", null ],
[ "SysTick_BASE", "perf__counter_8c.html#a58effaac0b93006b756d33209e814646", null ],
[ "SysTick_CALIB_NOREF_Msk", "perf__counter_8c.html#a3af0d891fdd99bcc8d8912d37830edb6", null ],
[ "SysTick_CALIB_NOREF_Pos", "perf__counter_8c.html#a534dbe414e7a46a6ce4c1eca1fbff409", null ],
[ "SysTick_CALIB_SKEW_Msk", "perf__counter_8c.html#a8a6a85a87334776f33d77fd147587431", null ],
[ "SysTick_CALIB_SKEW_Pos", "perf__counter_8c.html#add0c9cd6641b9f6a0c618e7982954860", null ],
[ "SysTick_CALIB_TENMS_Msk", "perf__counter_8c.html#af1e68865c5aece2ad58971225bd3e95e", null ],
[ "SysTick_CALIB_TENMS_Pos", "perf__counter_8c.html#acae558f6e75a0bed5d826f606d8e695e", null ],
[ "SysTick_CTRL_CLKSOURCE_Msk", "perf__counter_8c.html#aa41d06039797423a46596bd313d57373", null ],
[ "SysTick_CTRL_CLKSOURCE_Pos", "perf__counter_8c.html#a24fbc69a5f0b78d67fda2300257baff1", null ],
[ "SysTick_CTRL_COUNTFLAG_Msk", "perf__counter_8c.html#a1bf3033ecccf200f59baefe15dbb367c", null ],
[ "SysTick_CTRL_COUNTFLAG_Pos", "perf__counter_8c.html#adbb65d4a815759649db41df216ed4d60", null ],
[ "SysTick_CTRL_ENABLE_Msk", "perf__counter_8c.html#a16c9fee0ed0235524bdeb38af328fd1f", null ],
[ "SysTick_CTRL_ENABLE_Pos", "perf__counter_8c.html#a0b48cc1e36d92a92e4bf632890314810", null ],
[ "SysTick_CTRL_TICKINT_Msk", "perf__counter_8c.html#a95bb984266ca764024836a870238a027", null ],
[ "SysTick_CTRL_TICKINT_Pos", "perf__counter_8c.html#a88f45bbb89ce8df3cd2b2613c7b48214", null ],
[ "SysTick_LOAD_RELOAD_Msk", "perf__counter_8c.html#a265912a7962f0e1abd170336e579b1b1", null ],
[ "SysTick_LOAD_RELOAD_Pos", "perf__counter_8c.html#af44d10df359dc5bf5752b0894ae3bad2", null ],
[ "SysTick_VAL_CURRENT_Msk", "perf__counter_8c.html#afc77b56d568930b49a2474debc75ab45", null ],
[ "SysTick_VAL_CURRENT_Pos", "perf__counter_8c.html#a3208104c3b019b5de35ae8c21d5c34dd", null ],
[ "__on_context_switch_in", "perf__counter_8c.html#aded00de9fbde9be7f8872f85685b36a4", null ],
[ "__on_context_switch_out", "perf__counter_8c.html#aee2926404ade74811fa658786035f745", null ],
[ "__perf_os_patch_init", "perf__counter_8c.html#a4781d1de67a0b4fd21656377d0a2a0bc", null ],
[ "__start_task_cycle_counter", "perf__counter_8c.html#ad17c3ab8fb4c68ebc676562ab00770a1", null ],
[ "__stop_task_cycle_counter", "perf__counter_8c.html#a81a5dabf3ca19922587390de6c9f0ff5", null ],
[ "check_systick", "perf__counter_8c.html#a21ccde78f8ad778f05be60855c5a8283", null ],
[ "delay_ms", "perf__counter_8c.html#a2add8ab5b23b568bba6d46f9c977dbce", null ],
[ "delay_us", "perf__counter_8c.html#a9776dfed871d0e0775c876f16e7618f7", null ],
[ "disable_task_cycle_info", "perf__counter_8c.html#a01d6cd52b6c48c1e0c8a68b48ad87b0c", null ],
[ "enable_task_cycle_info", "perf__counter_8c.html#ae2c015694f2e89240466e9b1d423c6ec", null ],
[ "get_rtos_task_cycle_info", "perf__counter_8c.html#a87abe08a2093c8c69e5f813f565a1d31", null ],
[ "get_system_ms", "perf__counter_8c.html#a98c51d83fdb448a2733d0a309366149c", null ],
[ "get_system_ticks", "perf__counter_8c.html#a32dabfe5b863f89f71735b20a0caf1ea", null ],
[ "init_cycle_counter", "perf__counter_8c.html#a9097d62a30ad2b4f75462c78d7200fa8", null ],
[ "init_task_cycle_counter", "perf__counter_8c.html#a74d7160e4b3588456a85fcdce6cee6ab", null ],
[ "init_task_cycle_info", "perf__counter_8c.html#af5404b4b72cfaf910fb2ebeb8d7a4448", null ],
[ "register_task_cycle_agent", "perf__counter_8c.html#a0df8fe57dbd607e1992149a890612476", null ],
[ "resume_task_cycle_info", "perf__counter_8c.html#a79c2926ae10e2cc327faf58e6094866d", null ],
[ "start_cycle_counter", "perf__counter_8c.html#af33fd92801223d4befa49c610332ddd4", null ],
[ "stop_cycle_counter", "perf__counter_8c.html#a014af75d3945894c4740773e8a28d723", null ],
[ "SysTick_Config", "perf__counter_8c.html#ae4e8f0238527c69f522029b93c8e5b78", null ],
[ "unregister_task_cycle_agent", "perf__counter_8c.html#ae8c905d7221a7299fba5edbbfe1f449f", null ],
[ "user_code_insert_to_systick_handler", "perf__counter_8c.html#a0a6e5160f19f152b0b9a502e5e24adb7", null ],
[ "SystemCoreClock", "perf__counter_8c.html#aa3cd3e43291e81e795d642b79b6088e6", null ]
];

View File

@ -0,0 +1,740 @@
<!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=11"/>
<meta name="generator" content="Doxygen 1.9.4"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>perf_counter: perf_counter.c 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 id="projectrow">
<td id="projectalign">
<div id="projectname">perf_counter
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.4 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @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:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(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:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('perf__counter_8c_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">perf_counter.c</div></div>
</div><!--header-->
<div class="contents">
<a href="perf__counter_8c.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="comment">/****************************************************************************</span></div>
<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span><span class="comment">* Copyright 2022 Gorgon Meducer (Email:embedded_zhuoran@hotmail.com) *</span></div>
<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span><span class="comment">* *</span></div>
<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span><span class="comment">* Licensed under the Apache License, Version 2.0 (the &quot;License&quot;); *</span></div>
<div class="line"><a id="l00005" name="l00005"></a><span class="lineno"> 5</span><span class="comment">* you may not use this file except in compliance with the License. *</span></div>
<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span><span class="comment">* You may obtain a copy of the License at *</span></div>
<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span><span class="comment">* *</span></div>
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span><span class="comment">* http://www.apache.org/licenses/LICENSE-2.0 *</span></div>
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span><span class="comment">* *</span></div>
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span><span class="comment">* Unless required by applicable law or agreed to in writing, software *</span></div>
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span><span class="comment">* distributed under the License is distributed on an &quot;AS IS&quot; BASIS, *</span></div>
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="comment">* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. *</span></div>
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="comment">* See the License for the specific language governing permissions and *</span></div>
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span><span class="comment">* limitations under the License. *</span></div>
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span><span class="comment">* *</span></div>
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span><span class="comment">****************************************************************************/</span></div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span> </div>
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span><span class="comment">/*============================ INCLUDES ======================================*/</span></div>
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span><span class="preprocessor">#include &lt;stdint.h&gt;</span></div>
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span><span class="preprocessor">#include &lt;stdbool.h&gt;</span></div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span><span class="preprocessor">#include &lt;string.h&gt;</span></div>
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span><span class="preprocessor">#include &quot;cmsis_compiler.h&quot;</span></div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span> </div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"><a class="line" href="perf__counter_8c.html#afedb615b5c48d33ad8523f92078bf66c"> 24</a></span><span class="preprocessor">#define __IMPLEMENT_PERF_COUNTER</span></div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span><span class="preprocessor">#include &quot;<a class="code" href="perf__counter_8h.html">perf_counter.h</a>&quot;</span></div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> </div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span><span class="preprocessor">#if defined(__IS_COMPILER_GCC__)</span></div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span><span class="preprocessor"># pragma GCC diagnostic ignored &quot;-Wattributes&quot;</span></div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span> </div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span> </div>
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span><span class="comment">/*============================ MACROS ========================================*/</span></div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span><span class="preprocessor">#ifndef PERF_CNT_COMPENSATION_THRESHOLD</span></div>
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"><a class="line" href="perf__counter_8c.html#a0f17a2b1bde9a2632daa7ad0b96df9e5"> 34</a></span><span class="preprocessor"># define PERF_CNT_COMPENSATION_THRESHOLD 16</span></div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> </div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span><span class="preprocessor">#ifndef PERF_CNT_DELAY_US_COMPENSATION</span></div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"><a class="line" href="perf__counter_8c.html#ad7332da0831148c773a7c5211d5bfa1e"> 38</a></span><span class="preprocessor"># define PERF_CNT_DELAY_US_COMPENSATION 90</span></div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span> </div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> </div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span><span class="comment">/* IO definitions (access restrictions to peripheral registers) */</span></div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span><span class="preprocessor">#ifdef __cplusplus</span></div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span><span class="preprocessor"> #define __I volatile </span></div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span><span class="preprocessor">#else</span></div>
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"><a class="line" href="perf__counter_8c.html#af63697ed9952cc71e1225efe205f6cd3"> 53</a></span><span class="preprocessor"> #define __I volatile const </span></div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"><a class="line" href="perf__counter_8c.html#a7e25d9380f9ef903923964322e71f2f6"> 55</a></span><span class="preprocessor">#define __O volatile </span></div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"><a class="line" href="perf__counter_8c.html#aec43007d9998a0a0e01faede4133d6be"> 56</a></span><span class="preprocessor">#define __IO volatile </span></div>
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span><span class="comment">/* following defines should be used for structure members */</span></div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"><a class="line" href="perf__counter_8c.html#a4cc1649793116d7c2d8afce7a4ffce43"> 59</a></span><span class="preprocessor">#define __IM volatile const </span></div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"><a class="line" href="perf__counter_8c.html#a0ea2009ed8fd9ef35b48708280fdb758"> 60</a></span><span class="preprocessor">#define __OM volatile </span></div>
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"><a class="line" href="perf__counter_8c.html#ab6caba5853a60a17e8e04499b52bf691"> 61</a></span><span class="preprocessor">#define __IOM volatile </span></div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span><span class="comment">/* Memory mapping of Core Hardware */</span></div>
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"><a class="line" href="perf__counter_8c.html#a3c14ed93192c8d9143322bbf77ebf770"> 64</a></span><span class="preprocessor">#define SCS_BASE (0xE000E000UL) </span></div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"><a class="line" href="perf__counter_8c.html#a58effaac0b93006b756d33209e814646"> 65</a></span><span class="preprocessor">#define SysTick_BASE (SCS_BASE + 0x0010UL) </span></div>
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"><a class="line" href="perf__counter_8c.html#ad55a7ddb8d4b2398b0c1cfec76c0d9fd"> 66</a></span><span class="preprocessor">#define SCB_BASE (SCS_BASE + 0x0D00UL) </span></div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"><a class="line" href="perf__counter_8c.html#acd96c53beeaff8f603fcda425eb295de"> 68</a></span><span class="preprocessor">#define SysTick ((SysTick_Type *) SysTick_BASE ) </span></div>
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"><a class="line" href="perf__counter_8c.html#aaaf6477c2bde2f00f99e3c2fd1060b01"> 69</a></span><span class="preprocessor">#define SCB ((SCB_Type *) SCB_BASE ) </span></div>
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span><span class="comment">/* SysTick Control / Status Register Definitions */</span></div>
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"><a class="line" href="perf__counter_8c.html#adbb65d4a815759649db41df216ed4d60"> 72</a></span><span class="preprocessor">#define SysTick_CTRL_COUNTFLAG_Pos 16U </span></div>
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"><a class="line" href="perf__counter_8c.html#a1bf3033ecccf200f59baefe15dbb367c"> 73</a></span><span class="preprocessor">#define SysTick_CTRL_COUNTFLAG_Msk (1UL &lt;&lt; SysTick_CTRL_COUNTFLAG_Pos) </span></div>
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"><a class="line" href="perf__counter_8c.html#a24fbc69a5f0b78d67fda2300257baff1"> 75</a></span><span class="preprocessor">#define SysTick_CTRL_CLKSOURCE_Pos 2U </span></div>
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"><a class="line" href="perf__counter_8c.html#aa41d06039797423a46596bd313d57373"> 76</a></span><span class="preprocessor">#define SysTick_CTRL_CLKSOURCE_Msk (1UL &lt;&lt; SysTick_CTRL_CLKSOURCE_Pos) </span></div>
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"><a class="line" href="perf__counter_8c.html#a88f45bbb89ce8df3cd2b2613c7b48214"> 78</a></span><span class="preprocessor">#define SysTick_CTRL_TICKINT_Pos 1U </span></div>
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"><a class="line" href="perf__counter_8c.html#a95bb984266ca764024836a870238a027"> 79</a></span><span class="preprocessor">#define SysTick_CTRL_TICKINT_Msk (1UL &lt;&lt; SysTick_CTRL_TICKINT_Pos) </span></div>
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"><a class="line" href="perf__counter_8c.html#a0b48cc1e36d92a92e4bf632890314810"> 81</a></span><span class="preprocessor">#define SysTick_CTRL_ENABLE_Pos 0U </span></div>
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"><a class="line" href="perf__counter_8c.html#a16c9fee0ed0235524bdeb38af328fd1f"> 82</a></span><span class="preprocessor">#define SysTick_CTRL_ENABLE_Msk (1UL </span><span class="comment">/*&lt;&lt; SysTick_CTRL_ENABLE_Pos*/</span><span class="preprocessor">) </span></div>
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span><span class="comment">/* SysTick Reload Register Definitions */</span></div>
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"><a class="line" href="perf__counter_8c.html#af44d10df359dc5bf5752b0894ae3bad2"> 85</a></span><span class="preprocessor">#define SysTick_LOAD_RELOAD_Pos 0U </span></div>
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"><a class="line" href="perf__counter_8c.html#a265912a7962f0e1abd170336e579b1b1"> 86</a></span><span class="preprocessor">#define SysTick_LOAD_RELOAD_Msk (0xFFFFFFUL </span><span class="comment">/*&lt;&lt; SysTick_LOAD_RELOAD_Pos*/</span><span class="preprocessor">) </span></div>
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span><span class="comment">/* SysTick Current Register Definitions */</span></div>
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"><a class="line" href="perf__counter_8c.html#a3208104c3b019b5de35ae8c21d5c34dd"> 89</a></span><span class="preprocessor">#define SysTick_VAL_CURRENT_Pos 0U </span></div>
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"><a class="line" href="perf__counter_8c.html#afc77b56d568930b49a2474debc75ab45"> 90</a></span><span class="preprocessor">#define SysTick_VAL_CURRENT_Msk (0xFFFFFFUL </span><span class="comment">/*&lt;&lt; SysTick_VAL_CURRENT_Pos*/</span><span class="preprocessor">) </span></div>
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span><span class="comment">/* SysTick Calibration Register Definitions */</span></div>
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"><a class="line" href="perf__counter_8c.html#a534dbe414e7a46a6ce4c1eca1fbff409"> 93</a></span><span class="preprocessor">#define SysTick_CALIB_NOREF_Pos 31U </span></div>
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"><a class="line" href="perf__counter_8c.html#a3af0d891fdd99bcc8d8912d37830edb6"> 94</a></span><span class="preprocessor">#define SysTick_CALIB_NOREF_Msk (1UL &lt;&lt; SysTick_CALIB_NOREF_Pos) </span></div>
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"><a class="line" href="perf__counter_8c.html#add0c9cd6641b9f6a0c618e7982954860"> 96</a></span><span class="preprocessor">#define SysTick_CALIB_SKEW_Pos 30U </span></div>
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"><a class="line" href="perf__counter_8c.html#a8a6a85a87334776f33d77fd147587431"> 97</a></span><span class="preprocessor">#define SysTick_CALIB_SKEW_Msk (1UL &lt;&lt; SysTick_CALIB_SKEW_Pos) </span></div>
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"><a class="line" href="perf__counter_8c.html#acae558f6e75a0bed5d826f606d8e695e"> 99</a></span><span class="preprocessor">#define SysTick_CALIB_TENMS_Pos 0U </span></div>
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"><a class="line" href="perf__counter_8c.html#af1e68865c5aece2ad58971225bd3e95e"> 100</a></span><span class="preprocessor">#define SysTick_CALIB_TENMS_Msk (0xFFFFFFUL </span><span class="comment">/*&lt;&lt; SysTick_CALIB_TENMS_Pos*/</span><span class="preprocessor">) </span></div>
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"><a class="line" href="perf__counter_8c.html#adbe25e4b333ece1341beb1a740168fdc"> 104</a></span><span class="preprocessor">#define SCB_ICSR_PENDSTCLR_Pos 25U </span></div>
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"><a class="line" href="perf__counter_8c.html#ab241827d2a793269d8cd99b9b28c2157"> 105</a></span><span class="preprocessor">#define SCB_ICSR_PENDSTCLR_Msk (1UL &lt;&lt; SCB_ICSR_PENDSTCLR_Pos) </span></div>
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"><a class="line" href="perf__counter_8c.html#a9dbb3358c6167c9c3f85661b90fb2794"> 107</a></span><span class="preprocessor">#define SCB_ICSR_PENDSTSET_Pos 26U </span></div>
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"><a class="line" href="perf__counter_8c.html#a7325b61ea0ec323ef2d5c893b112e546"> 108</a></span><span class="preprocessor">#define SCB_ICSR_PENDSTSET_Msk (1UL &lt;&lt; SCB_ICSR_PENDSTSET_Pos) </span></div>
<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"><a class="line" href="perf__counter_8c.html#a5ed2b69d382ff960de71b5aa2e0b0deb"> 111</a></span><span class="preprocessor">#define MAGIC_WORD_AGENT_LIST_VALID 0x8492A53C</span></div>
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"><a class="line" href="perf__counter_8c.html#acd6c9ac2bce565b27fef68a011411100"> 112</a></span><span class="preprocessor">#define MAGIC_WORD_CANARY 0xDEADBEEF</span></div>
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span> </div>
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span><span class="comment">/*============================ MACROFIED FUNCTIONS ===========================*/</span></div>
<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span><span class="comment">/*============================ TYPES =========================================*/</span></div>
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"> 116</span> </div>
<div class="line"><a id="l00120" name="l00120"></a><span class="lineno"><a class="line" href="struct_sys_tick___type.html"> 120</a></span><span class="keyword">typedef</span> <span class="keyword">struct</span></div>
<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</span>{</div>
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"><a class="line" href="struct_sys_tick___type.html#ac81efc171e9852a36caeb47122bfec5b"> 122</a></span> <a class="code hl_define" href="perf__counter_8c.html#ab6caba5853a60a17e8e04499b52bf691">__IOM</a> uint32_t <a class="code hl_variable" href="struct_sys_tick___type.html#ac81efc171e9852a36caeb47122bfec5b">CTRL</a>; </div>
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"><a class="line" href="struct_sys_tick___type.html#a0c1333686137b7e25a46bd548a5b5bc3"> 123</a></span> <a class="code hl_define" href="perf__counter_8c.html#ab6caba5853a60a17e8e04499b52bf691">__IOM</a> uint32_t <a class="code hl_variable" href="struct_sys_tick___type.html#a0c1333686137b7e25a46bd548a5b5bc3">LOAD</a>; </div>
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"><a class="line" href="struct_sys_tick___type.html#ae7a655a853654127f3dfb7fa32c3f457"> 124</a></span> <a class="code hl_define" href="perf__counter_8c.html#ab6caba5853a60a17e8e04499b52bf691">__IOM</a> uint32_t <a class="code hl_variable" href="struct_sys_tick___type.html#ae7a655a853654127f3dfb7fa32c3f457">VAL</a>; </div>
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"><a class="line" href="struct_sys_tick___type.html#aedf0dff29a9cacdaa2fb7eec6b116a13"> 125</a></span> <a class="code hl_define" href="perf__counter_8c.html#a4cc1649793116d7c2d8afce7a4ffce43">__IM</a> uint32_t <a class="code hl_variable" href="struct_sys_tick___type.html#aedf0dff29a9cacdaa2fb7eec6b116a13">CALIB</a>; </div>
<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span>} <a class="code hl_struct" href="struct_sys_tick___type.html">SysTick_Type</a>;</div>
<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"> 127</span> </div>
<div class="line"><a id="l00131" name="l00131"></a><span class="lineno"><a class="line" href="struct_s_c_b___type.html"> 131</a></span><span class="keyword">typedef</span> <span class="keyword">struct</span></div>
<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"> 132</span>{</div>
<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"><a class="line" href="struct_s_c_b___type.html#adbf8292503748ba6421a523bdee6819d"> 133</a></span> <a class="code hl_define" href="perf__counter_8c.html#a4cc1649793116d7c2d8afce7a4ffce43">__IM</a> uint32_t <a class="code hl_variable" href="struct_s_c_b___type.html#adbf8292503748ba6421a523bdee6819d">CPUID</a>; </div>
<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"><a class="line" href="struct_s_c_b___type.html#aced895d6aba03d72b0d865fcc5ce44ee"> 134</a></span> <a class="code hl_define" href="perf__counter_8c.html#ab6caba5853a60a17e8e04499b52bf691">__IOM</a> uint32_t <a class="code hl_variable" href="struct_s_c_b___type.html#aced895d6aba03d72b0d865fcc5ce44ee">ICSR</a>; </div>
<div class="line"><a id="l00135" name="l00135"></a><span class="lineno"><a class="line" href="struct_s_c_b___type.html#ae457d2615e203c3d5904a43a1bc9df71"> 135</a></span> <a class="code hl_define" href="perf__counter_8c.html#ab6caba5853a60a17e8e04499b52bf691">__IOM</a> uint32_t <a class="code hl_variable" href="struct_s_c_b___type.html#ae457d2615e203c3d5904a43a1bc9df71">VTOR</a>; </div>
<div class="line"><a id="l00136" name="l00136"></a><span class="lineno"><a class="line" href="struct_s_c_b___type.html#a9b6ccd9c0c0865f8facad77ea37240b0"> 136</a></span> <a class="code hl_define" href="perf__counter_8c.html#ab6caba5853a60a17e8e04499b52bf691">__IOM</a> uint32_t <a class="code hl_variable" href="struct_s_c_b___type.html#a9b6ccd9c0c0865f8facad77ea37240b0">AIRCR</a>; </div>
<div class="line"><a id="l00137" name="l00137"></a><span class="lineno"><a class="line" href="struct_s_c_b___type.html#acac65f229cb3fcb5369a0a9e0393b8c0"> 137</a></span> <a class="code hl_define" href="perf__counter_8c.html#ab6caba5853a60a17e8e04499b52bf691">__IOM</a> uint32_t <a class="code hl_variable" href="struct_s_c_b___type.html#acac65f229cb3fcb5369a0a9e0393b8c0">SCR</a>; </div>
<div class="line"><a id="l00138" name="l00138"></a><span class="lineno"><a class="line" href="struct_s_c_b___type.html#ad68b5c1f2d9845ef4247cf2d9b041336"> 138</a></span> <a class="code hl_define" href="perf__counter_8c.html#ab6caba5853a60a17e8e04499b52bf691">__IOM</a> uint32_t <a class="code hl_variable" href="struct_s_c_b___type.html#ad68b5c1f2d9845ef4247cf2d9b041336">CCR</a>; </div>
<div class="line"><a id="l00139" name="l00139"></a><span class="lineno"><a class="line" href="struct_s_c_b___type.html#a293826a2c44f754e80af03d62f62f9e6"> 139</a></span> <a class="code hl_define" href="perf__counter_8c.html#ab6caba5853a60a17e8e04499b52bf691">__IOM</a> uint8_t SHP[12U]; </div>
<div class="line"><a id="l00140" name="l00140"></a><span class="lineno"><a class="line" href="struct_s_c_b___type.html#a44ad5c292dbd77e72f310902375a8a06"> 140</a></span> <a class="code hl_define" href="perf__counter_8c.html#ab6caba5853a60a17e8e04499b52bf691">__IOM</a> uint32_t <a class="code hl_variable" href="struct_s_c_b___type.html#a44ad5c292dbd77e72f310902375a8a06">SHCSR</a>; </div>
<div class="line"><a id="l00141" name="l00141"></a><span class="lineno"><a class="line" href="struct_s_c_b___type.html#a0f9e27357254e6e953a94f95bda040b1"> 141</a></span> <a class="code hl_define" href="perf__counter_8c.html#ab6caba5853a60a17e8e04499b52bf691">__IOM</a> uint32_t <a class="code hl_variable" href="struct_s_c_b___type.html#a0f9e27357254e6e953a94f95bda040b1">CFSR</a>; </div>
<div class="line"><a id="l00142" name="l00142"></a><span class="lineno"><a class="line" href="struct_s_c_b___type.html#ab974e7ceb2e52a3fbcaa84e06e52922d"> 142</a></span> <a class="code hl_define" href="perf__counter_8c.html#ab6caba5853a60a17e8e04499b52bf691">__IOM</a> uint32_t <a class="code hl_variable" href="struct_s_c_b___type.html#ab974e7ceb2e52a3fbcaa84e06e52922d">HFSR</a>; </div>
<div class="line"><a id="l00143" name="l00143"></a><span class="lineno"><a class="line" href="struct_s_c_b___type.html#a3b590075aa07880ce686d5cfb4e61c5c"> 143</a></span> <a class="code hl_define" href="perf__counter_8c.html#ab6caba5853a60a17e8e04499b52bf691">__IOM</a> uint32_t <a class="code hl_variable" href="struct_s_c_b___type.html#a3b590075aa07880ce686d5cfb4e61c5c">DFSR</a>; </div>
<div class="line"><a id="l00144" name="l00144"></a><span class="lineno"><a class="line" href="struct_s_c_b___type.html#ae9d94d186615d57d38c9253cb842d244"> 144</a></span> <a class="code hl_define" href="perf__counter_8c.html#ab6caba5853a60a17e8e04499b52bf691">__IOM</a> uint32_t <a class="code hl_variable" href="struct_s_c_b___type.html#ae9d94d186615d57d38c9253cb842d244">MMFAR</a>; </div>
<div class="line"><a id="l00145" name="l00145"></a><span class="lineno"><a class="line" href="struct_s_c_b___type.html#a3fde073744418e2fe476333cb4d55d0d"> 145</a></span> <a class="code hl_define" href="perf__counter_8c.html#ab6caba5853a60a17e8e04499b52bf691">__IOM</a> uint32_t <a class="code hl_variable" href="struct_s_c_b___type.html#a3fde073744418e2fe476333cb4d55d0d">BFAR</a>; </div>
<div class="line"><a id="l00146" name="l00146"></a><span class="lineno"><a class="line" href="struct_s_c_b___type.html#a3ef0057e48fdef798f2ee12125a80d9f"> 146</a></span> <a class="code hl_define" href="perf__counter_8c.html#ab6caba5853a60a17e8e04499b52bf691">__IOM</a> uint32_t <a class="code hl_variable" href="struct_s_c_b___type.html#a3ef0057e48fdef798f2ee12125a80d9f">AFSR</a>; </div>
<div class="line"><a id="l00147" name="l00147"></a><span class="lineno"><a class="line" href="struct_s_c_b___type.html#a602fa5eae6a772dbb09970d304e75690"> 147</a></span> <a class="code hl_define" href="perf__counter_8c.html#a4cc1649793116d7c2d8afce7a4ffce43">__IM</a> uint32_t PFR[2U]; </div>
<div class="line"><a id="l00148" name="l00148"></a><span class="lineno"><a class="line" href="struct_s_c_b___type.html#ae2b3d4530d1b0c05593b634dc46348bd"> 148</a></span> <a class="code hl_define" href="perf__counter_8c.html#a4cc1649793116d7c2d8afce7a4ffce43">__IM</a> uint32_t <a class="code hl_variable" href="struct_s_c_b___type.html#ae2b3d4530d1b0c05593b634dc46348bd">DFR</a>; </div>
<div class="line"><a id="l00149" name="l00149"></a><span class="lineno"><a class="line" href="struct_s_c_b___type.html#a72572af6d5dece4947453aeabd52575f"> 149</a></span> <a class="code hl_define" href="perf__counter_8c.html#a4cc1649793116d7c2d8afce7a4ffce43">__IM</a> uint32_t <a class="code hl_variable" href="struct_s_c_b___type.html#a72572af6d5dece4947453aeabd52575f">ADR</a>; </div>
<div class="line"><a id="l00150" name="l00150"></a><span class="lineno"><a class="line" href="struct_s_c_b___type.html#ab6c914b579d22d7eb86d0e3d9a5fde71"> 150</a></span> <a class="code hl_define" href="perf__counter_8c.html#a4cc1649793116d7c2d8afce7a4ffce43">__IM</a> uint32_t MMFR[4U]; </div>
<div class="line"><a id="l00151" name="l00151"></a><span class="lineno"><a class="line" href="struct_s_c_b___type.html#af2950df748750d535d5d65ac1c209563"> 151</a></span> <a class="code hl_define" href="perf__counter_8c.html#a4cc1649793116d7c2d8afce7a4ffce43">__IM</a> uint32_t ISAR[5U]; </div>
<div class="line"><a id="l00152" name="l00152"></a><span class="lineno"><a class="line" href="struct_s_c_b___type.html#a9361cfd01123913b78dd5d0dc8301bfd"> 152</a></span> uint32_t RESERVED0[5U];</div>
<div class="line"><a id="l00153" name="l00153"></a><span class="lineno"><a class="line" href="struct_s_c_b___type.html#ab8e9dd6ca5f31244ea352ed0c19155d8"> 153</a></span> <a class="code hl_define" href="perf__counter_8c.html#ab6caba5853a60a17e8e04499b52bf691">__IOM</a> uint32_t <a class="code hl_variable" href="struct_s_c_b___type.html#ab8e9dd6ca5f31244ea352ed0c19155d8">CPACR</a>; </div>
<div class="line"><a id="l00154" name="l00154"></a><span class="lineno"> 154</span>} <a class="code hl_struct" href="struct_s_c_b___type.html">SCB_Type</a>;</div>
<div class="line"><a id="l00155" name="l00155"></a><span class="lineno"> 155</span> </div>
<div class="line"><a id="l00161" name="l00161"></a><span class="lineno"><a class="line" href="struct____task__cycle__info__t.html"> 161</a></span><span class="keyword">struct </span><a class="code hl_struct" href="struct____task__cycle__info__t.html">__task_cycle_info_t</a> {</div>
<div class="line"><a id="l00162" name="l00162"></a><span class="lineno"><a class="line" href="struct____task__cycle__info__t.html#a8af024785267321e4ef544e7f25d80dc"> 162</a></span> <a class="code hl_struct" href="structtask__cycle__info__t.html">task_cycle_info_t</a> <a class="code hl_variable" href="struct____task__cycle__info__t.html#a8af024785267321e4ef544e7f25d80dc">tInfo</a>; </div>
<div class="line"><a id="l00163" name="l00163"></a><span class="lineno"><a class="line" href="struct____task__cycle__info__t.html#ae2aae11f91e3eea654ceeac9b81706cb"> 163</a></span> int64_t <a class="code hl_variable" href="struct____task__cycle__info__t.html#ae2aae11f91e3eea654ceeac9b81706cb">lLastTimeStamp</a>; </div>
<div class="line"><a id="l00164" name="l00164"></a><span class="lineno"><a class="line" href="struct____task__cycle__info__t.html#a7d50a2272c4a1b65f927e8c6d1242b33"> 164</a></span> <a class="code hl_struct" href="structtask__cycle__info__agent__t.html">task_cycle_info_agent_t</a> <a class="code hl_variable" href="struct____task__cycle__info__t.html#a7d50a2272c4a1b65f927e8c6d1242b33">tList</a>; </div>
<div class="line"><a id="l00165" name="l00165"></a><span class="lineno"><a class="line" href="struct____task__cycle__info__t.html#a88c8aad5ae23ae04fa44b2892081561b"> 165</a></span> uint32_t <a class="code hl_variable" href="struct____task__cycle__info__t.html#a88c8aad5ae23ae04fa44b2892081561b">wMagicWord</a>; </div>
<div class="line"><a id="l00166" name="l00166"></a><span class="lineno"> 166</span>} ;</div>
<div class="line"><a id="l00168" name="l00168"></a><span class="lineno"> 168</span> </div>
<div class="line"><a id="l00169" name="l00169"></a><span class="lineno"> 169</span> </div>
<div class="line"><a id="l00170" name="l00170"></a><span class="lineno"> 170</span><span class="comment">/*============================ GLOBAL VARIABLES ==============================*/</span></div>
<div class="line"><a id="l00171" name="l00171"></a><span class="lineno"> 171</span><span class="keyword">extern</span> uint32_t <a class="code hl_variable" href="perf__counter_8c.html#aa3cd3e43291e81e795d642b79b6088e6">SystemCoreClock</a>;</div>
<div class="line"><a id="l00172" name="l00172"></a><span class="lineno"> 172</span> </div>
<div class="line"><a id="l00173" name="l00173"></a><span class="lineno"> 173</span><span class="comment">/*============================ LOCAL VARIABLES ===============================*/</span></div>
<div class="line"><a id="l00174" name="l00174"></a><span class="lineno"> 174</span><span class="keyword">volatile</span> <span class="keyword">static</span> int32_t s_nCycleCounts = 0;</div>
<div class="line"><a id="l00175" name="l00175"></a><span class="lineno"> 175</span><span class="keyword">volatile</span> <span class="keyword">static</span> int32_t s_nOffset = 0;</div>
<div class="line"><a id="l00176" name="l00176"></a><span class="lineno"> 176</span><span class="keyword">volatile</span> <span class="keyword">static</span> int32_t s_nUSUnit = 1;</div>
<div class="line"><a id="l00177" name="l00177"></a><span class="lineno"> 177</span><span class="keyword">volatile</span> <span class="keyword">static</span> int32_t s_nMSUnit = 1;</div>
<div class="line"><a id="l00178" name="l00178"></a><span class="lineno"> 178</span><span class="keyword">volatile</span> <span class="keyword">static</span> int32_t s_nMSResidule = 0;</div>
<div class="line"><a id="l00179" name="l00179"></a><span class="lineno"> 179</span><span class="keyword">volatile</span> <span class="keyword">static</span> int32_t s_nSystemMS = 0;</div>
<div class="line"><a id="l00180" name="l00180"></a><span class="lineno"> 180</span> </div>
<div class="line"><a id="l00181" name="l00181"></a><span class="lineno"> 181</span><span class="keyword">volatile</span> <span class="keyword">static</span> int64_t s_lSystemClockCounts = 0; </div>
<div class="line"><a id="l00182" name="l00182"></a><span class="lineno"> 182</span> </div>
<div class="line"><a id="l00183" name="l00183"></a><span class="lineno"> 183</span> </div>
<div class="line"><a id="l00184" name="l00184"></a><span class="lineno"> 184</span><span class="comment">/*============================ PROTOTYPES ====================================*/</span></div>
<div class="line"><a id="l00185" name="l00185"></a><span class="lineno"> 185</span><span class="comment">/*============================ IMPLEMENTATION ================================*/</span></div>
<div class="line"><a id="l00186" name="l00186"></a><span class="lineno"> 186</span><span class="comment">/*============================ INCLUDES ======================================*/</span></div>
<div class="line"><a id="l00187" name="l00187"></a><span class="lineno"> 187</span> </div>
<div class="line"><a id="l00188" name="l00188"></a><span class="lineno"> 188</span> </div>
<div class="line"><a id="l00200" name="l00200"></a><span class="lineno"><a class="line" href="perf__counter_8c.html#ae4e8f0238527c69f522029b93c8e5b78"> 200</a></span>__STATIC_INLINE uint32_t <a class="code hl_function" href="perf__counter_8c.html#ae4e8f0238527c69f522029b93c8e5b78">SysTick_Config</a>(uint32_t ticks)</div>
<div class="line"><a id="l00201" name="l00201"></a><span class="lineno"> 201</span>{</div>
<div class="line"><a id="l00202" name="l00202"></a><span class="lineno"> 202</span> <span class="keywordflow">if</span> ((ticks - 1UL) &gt; <a class="code hl_define" href="perf__counter_8c.html#a265912a7962f0e1abd170336e579b1b1">SysTick_LOAD_RELOAD_Msk</a>)</div>
<div class="line"><a id="l00203" name="l00203"></a><span class="lineno"> 203</span> {</div>
<div class="line"><a id="l00204" name="l00204"></a><span class="lineno"> 204</span> <span class="keywordflow">return</span> (1UL); <span class="comment">/* Reload value impossible */</span></div>
<div class="line"><a id="l00205" name="l00205"></a><span class="lineno"> 205</span> }</div>
<div class="line"><a id="l00206" name="l00206"></a><span class="lineno"> 206</span> </div>
<div class="line"><a id="l00207" name="l00207"></a><span class="lineno"> 207</span> <span class="comment">//__IRQ_SAFE {</span></div>
<div class="line"><a id="l00208" name="l00208"></a><span class="lineno"> 208</span> <a class="code hl_define" href="perf__counter_8c.html#acd96c53beeaff8f603fcda425eb295de">SysTick</a>-&gt;CTRL = 0;</div>
<div class="line"><a id="l00209" name="l00209"></a><span class="lineno"> 209</span> </div>
<div class="line"><a id="l00210" name="l00210"></a><span class="lineno"> 210</span> <a class="code hl_define" href="perf__counter_8c.html#acd96c53beeaff8f603fcda425eb295de">SysTick</a>-&gt;LOAD = (uint32_t)(ticks - 1UL); <span class="comment">/* set reload register */</span></div>
<div class="line"><a id="l00211" name="l00211"></a><span class="lineno"> 211</span> <span class="comment">//NVIC_SetPriority (SysTick_IRQn, (1UL &lt;&lt; __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */</span></div>
<div class="line"><a id="l00212" name="l00212"></a><span class="lineno"> 212</span> <a class="code hl_define" href="perf__counter_8c.html#acd96c53beeaff8f603fcda425eb295de">SysTick</a>-&gt;VAL = 0UL; <span class="comment">/* Load the SysTick Counter Value */</span></div>
<div class="line"><a id="l00213" name="l00213"></a><span class="lineno"> 213</span> <a class="code hl_define" href="perf__counter_8c.html#acd96c53beeaff8f603fcda425eb295de">SysTick</a>-&gt;CTRL = <a class="code hl_define" href="perf__counter_8c.html#aa41d06039797423a46596bd313d57373">SysTick_CTRL_CLKSOURCE_Msk</a> |</div>
<div class="line"><a id="l00214" name="l00214"></a><span class="lineno"> 214</span> <a class="code hl_define" href="perf__counter_8c.html#a95bb984266ca764024836a870238a027">SysTick_CTRL_TICKINT_Msk</a> |</div>
<div class="line"><a id="l00215" name="l00215"></a><span class="lineno"> 215</span> <a class="code hl_define" href="perf__counter_8c.html#a16c9fee0ed0235524bdeb38af328fd1f">SysTick_CTRL_ENABLE_Msk</a>; <span class="comment">/* Enable SysTick IRQ and SysTick Timer */</span></div>
<div class="line"><a id="l00216" name="l00216"></a><span class="lineno"> 216</span> <span class="comment">//SCB-&gt;ICSR = SCB_ICSR_PENDSTCLR_Msk;</span></div>
<div class="line"><a id="l00217" name="l00217"></a><span class="lineno"> 217</span> <span class="comment">//}</span></div>
<div class="line"><a id="l00218" name="l00218"></a><span class="lineno"> 218</span> <span class="keywordflow">return</span> (0UL); <span class="comment">/* Function successful */</span></div>
<div class="line"><a id="l00219" name="l00219"></a><span class="lineno"> 219</span>}</div>
<div class="line"><a id="l00220" name="l00220"></a><span class="lineno"> 220</span> </div>
<div class="line"><a id="l00233" name="l00233"></a><span class="lineno"><a class="line" href="perf__counter_8c.html#a0a6e5160f19f152b0b9a502e5e24adb7"> 233</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="perf__counter_8c.html#a0a6e5160f19f152b0b9a502e5e24adb7">user_code_insert_to_systick_handler</a>(<span class="keywordtype">void</span>)</div>
<div class="line"><a id="l00234" name="l00234"></a><span class="lineno"> 234</span>{</div>
<div class="line"><a id="l00235" name="l00235"></a><span class="lineno"> 235</span> uint32_t wLoad = <a class="code hl_define" href="perf__counter_8c.html#acd96c53beeaff8f603fcda425eb295de">SysTick</a>-&gt;LOAD + 1;</div>
<div class="line"><a id="l00236" name="l00236"></a><span class="lineno"> 236</span> s_nCycleCounts += wLoad;</div>
<div class="line"><a id="l00237" name="l00237"></a><span class="lineno"> 237</span> s_lSystemClockCounts += wLoad;</div>
<div class="line"><a id="l00238" name="l00238"></a><span class="lineno"> 238</span> </div>
<div class="line"><a id="l00240" name="l00240"></a><span class="lineno"> 240</span> s_nMSResidule += wLoad;</div>
<div class="line"><a id="l00241" name="l00241"></a><span class="lineno"> 241</span> int32_t nMS = s_nMSResidule / s_nMSUnit;</div>
<div class="line"><a id="l00242" name="l00242"></a><span class="lineno"> 242</span> s_nMSResidule -= nMS * s_nMSUnit;</div>
<div class="line"><a id="l00243" name="l00243"></a><span class="lineno"> 243</span> s_nSystemMS += nMS;</div>
<div class="line"><a id="l00244" name="l00244"></a><span class="lineno"> 244</span> </div>
<div class="line"><a id="l00245" name="l00245"></a><span class="lineno"> 245</span>}</div>
<div class="line"><a id="l00246" name="l00246"></a><span class="lineno"> 246</span> </div>
<div class="line"><a id="l00247" name="l00247"></a><span class="lineno"> 247</span>__WEAK </div>
<div class="line"><a id="l00248" name="l00248"></a><span class="lineno"><a class="line" href="perf__counter_8c.html#a4781d1de67a0b4fd21656377d0a2a0bc"> 248</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="perf__counter_8c.html#a4781d1de67a0b4fd21656377d0a2a0bc">__perf_os_patch_init</a>(<span class="keywordtype">void</span>)</div>
<div class="line"><a id="l00249" name="l00249"></a><span class="lineno"> 249</span>{</div>
<div class="line"><a id="l00250" name="l00250"></a><span class="lineno"> 250</span>}</div>
<div class="line"><a id="l00251" name="l00251"></a><span class="lineno"> 251</span> </div>
<div class="line"><a id="l00252" name="l00252"></a><span class="lineno"> 252</span> </div>
<div class="line"><a id="l00280" name="l00280"></a><span class="lineno"><a class="line" href="perf__counter_8c.html#a9097d62a30ad2b4f75462c78d7200fa8"> 280</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="perf__counter_8c.html#a9097d62a30ad2b4f75462c78d7200fa8">init_cycle_counter</a>(<span class="keywordtype">bool</span> bIsSysTickOccupied)</div>
<div class="line"><a id="l00281" name="l00281"></a><span class="lineno"> 281</span>{</div>
<div class="line"><a id="l00282" name="l00282"></a><span class="lineno"> 282</span> <a class="code hl_define" href="perf__counter_8h.html#a966a3eb20671a2a8c44d63d459f5472e">__IRQ_SAFE</a> {</div>
<div class="line"><a id="l00283" name="l00283"></a><span class="lineno"> 283</span> <span class="keywordflow">if</span> (!bIsSysTickOccupied) {</div>
<div class="line"><a id="l00284" name="l00284"></a><span class="lineno"> 284</span> <a class="code hl_function" href="perf__counter_8c.html#ae4e8f0238527c69f522029b93c8e5b78">SysTick_Config</a>(0x01000000); <span class="comment">// use the longest period</span></div>
<div class="line"><a id="l00285" name="l00285"></a><span class="lineno"> 285</span> }</div>
<div class="line"><a id="l00286" name="l00286"></a><span class="lineno"> 286</span> <a class="code hl_define" href="perf__counter_8c.html#aaaf6477c2bde2f00f99e3c2fd1060b01">SCB</a>-&gt;ICSR = <a class="code hl_define" href="perf__counter_8c.html#ab241827d2a793269d8cd99b9b28c2157">SCB_ICSR_PENDSTCLR_Msk</a>;</div>
<div class="line"><a id="l00287" name="l00287"></a><span class="lineno"> 287</span> }</div>
<div class="line"><a id="l00288" name="l00288"></a><span class="lineno"> 288</span> </div>
<div class="line"><a id="l00289" name="l00289"></a><span class="lineno"> 289</span> <a class="code hl_function" href="perf__counter_8c.html#af33fd92801223d4befa49c610332ddd4">start_cycle_counter</a>();</div>
<div class="line"><a id="l00290" name="l00290"></a><span class="lineno"> 290</span> <span class="comment">//s_nSystemClockCounts = s_nCycleCounts;</span></div>
<div class="line"><a id="l00291" name="l00291"></a><span class="lineno"> 291</span> s_nOffset = <a class="code hl_function" href="perf__counter_8c.html#a014af75d3945894c4740773e8a28d723">stop_cycle_counter</a>();</div>
<div class="line"><a id="l00292" name="l00292"></a><span class="lineno"> 292</span> </div>
<div class="line"><a id="l00293" name="l00293"></a><span class="lineno"> 293</span> s_nUSUnit = <a class="code hl_variable" href="perf__counter_8c.html#aa3cd3e43291e81e795d642b79b6088e6">SystemCoreClock</a> / 1000000ul;</div>
<div class="line"><a id="l00294" name="l00294"></a><span class="lineno"> 294</span> s_nMSUnit = <a class="code hl_variable" href="perf__counter_8c.html#aa3cd3e43291e81e795d642b79b6088e6">SystemCoreClock</a> / 1000ul;</div>
<div class="line"><a id="l00295" name="l00295"></a><span class="lineno"> 295</span> s_lSystemClockCounts = 0; <span class="comment">// reset system cycle counter</span></div>
<div class="line"><a id="l00296" name="l00296"></a><span class="lineno"> 296</span> s_nSystemMS = 0; <span class="comment">// reset system millisecond counter</span></div>
<div class="line"><a id="l00297" name="l00297"></a><span class="lineno"> 297</span> </div>
<div class="line"><a id="l00298" name="l00298"></a><span class="lineno"> 298</span><span class="preprocessor">#if defined(__IS_COMPILER_ARM_COMPILER_5__) \</span></div>
<div class="line"><a id="l00299" name="l00299"></a><span class="lineno"> 299</span><span class="preprocessor"> || defined(__IS_COMPILER_ARM_COMPILER_6__) \</span></div>
<div class="line"><a id="l00300" name="l00300"></a><span class="lineno"> 300</span><span class="preprocessor"> || defined(__IS_COMPILER_GCC__) \</span></div>
<div class="line"><a id="l00301" name="l00301"></a><span class="lineno"> 301</span><span class="preprocessor"> || defined(__IS_COMPILER_LLVM__)</span></div>
<div class="line"><a id="l00302" name="l00302"></a><span class="lineno"> 302</span> <span class="keyword">extern</span> <span class="keywordtype">void</span> __ensure_systick_wrapper(<span class="keywordtype">void</span>);</div>
<div class="line"><a id="l00303" name="l00303"></a><span class="lineno"> 303</span> __ensure_systick_wrapper();</div>
<div class="line"><a id="l00304" name="l00304"></a><span class="lineno"> 304</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00305" name="l00305"></a><span class="lineno"> 305</span> </div>
<div class="line"><a id="l00306" name="l00306"></a><span class="lineno"> 306</span> <a class="code hl_function" href="perf__counter_8c.html#a4781d1de67a0b4fd21656377d0a2a0bc">__perf_os_patch_init</a>();</div>
<div class="line"><a id="l00307" name="l00307"></a><span class="lineno"> 307</span>}</div>
<div class="line"><a id="l00308" name="l00308"></a><span class="lineno"> 308</span> </div>
<div class="line"><a id="l00316" name="l00316"></a><span class="lineno"><a class="line" href="perf__counter_8c.html#af33fd92801223d4befa49c610332ddd4"> 316</a></span><span class="keywordtype">bool</span> <a class="code hl_function" href="perf__counter_8c.html#af33fd92801223d4befa49c610332ddd4">start_cycle_counter</a>(<span class="keywordtype">void</span>)</div>
<div class="line"><a id="l00317" name="l00317"></a><span class="lineno"> 317</span>{</div>
<div class="line"><a id="l00318" name="l00318"></a><span class="lineno"> 318</span> <span class="keywordflow">if</span> (<a class="code hl_define" href="perf__counter_8c.html#acd96c53beeaff8f603fcda425eb295de">SysTick</a>-&gt;LOAD &lt; <a class="code hl_define" href="perf__counter_8c.html#a0f17a2b1bde9a2632daa7ad0b96df9e5">PERF_CNT_COMPENSATION_THRESHOLD</a>) {</div>
<div class="line"><a id="l00319" name="l00319"></a><span class="lineno"> 319</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a id="l00320" name="l00320"></a><span class="lineno"> 320</span> }</div>
<div class="line"><a id="l00321" name="l00321"></a><span class="lineno"> 321</span> </div>
<div class="line"><a id="l00322" name="l00322"></a><span class="lineno"> 322</span> <a class="code hl_define" href="perf__counter_8h.html#a966a3eb20671a2a8c44d63d459f5472e">__IRQ_SAFE</a> {</div>
<div class="line"><a id="l00323" name="l00323"></a><span class="lineno"> 323</span> s_nCycleCounts = (int32_t)<a class="code hl_define" href="perf__counter_8c.html#acd96c53beeaff8f603fcda425eb295de">SysTick</a>-&gt;VAL - (int32_t)<a class="code hl_define" href="perf__counter_8c.html#acd96c53beeaff8f603fcda425eb295de">SysTick</a>-&gt;LOAD;</div>
<div class="line"><a id="l00324" name="l00324"></a><span class="lineno"> 324</span> }</div>
<div class="line"><a id="l00325" name="l00325"></a><span class="lineno"> 325</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a id="l00326" name="l00326"></a><span class="lineno"> 326</span>}</div>
<div class="line"><a id="l00327" name="l00327"></a><span class="lineno"> 327</span> </div>
<div class="line"><a id="l00332" name="l00332"></a><span class="lineno"><a class="line" href="perf__counter_8c.html#a21ccde78f8ad778f05be60855c5a8283"> 332</a></span>__STATIC_INLINE int32_t <a class="code hl_function" href="perf__counter_8c.html#a21ccde78f8ad778f05be60855c5a8283">check_systick</a>(<span class="keywordtype">void</span>)</div>
<div class="line"><a id="l00333" name="l00333"></a><span class="lineno"> 333</span>{</div>
<div class="line"><a id="l00334" name="l00334"></a><span class="lineno"> 334</span> int32_t nTemp = (int32_t)<a class="code hl_define" href="perf__counter_8c.html#acd96c53beeaff8f603fcda425eb295de">SysTick</a>-&gt;LOAD - (int32_t)<a class="code hl_define" href="perf__counter_8c.html#acd96c53beeaff8f603fcda425eb295de">SysTick</a>-&gt;VAL;</div>
<div class="line"><a id="l00335" name="l00335"></a><span class="lineno"> 335</span> </div>
<div class="line"><a id="l00356" name="l00356"></a><span class="lineno"> 356</span> <span class="keywordflow">if</span> (<a class="code hl_define" href="perf__counter_8c.html#aaaf6477c2bde2f00f99e3c2fd1060b01">SCB</a>-&gt;ICSR &amp; <a class="code hl_define" href="perf__counter_8c.html#a7325b61ea0ec323ef2d5c893b112e546">SCB_ICSR_PENDSTSET_Msk</a>){</div>
<div class="line"><a id="l00357" name="l00357"></a><span class="lineno"> 357</span> <span class="keywordflow">if</span> (((int32_t)<a class="code hl_define" href="perf__counter_8c.html#acd96c53beeaff8f603fcda425eb295de">SysTick</a>-&gt;LOAD - nTemp) &gt;= <a class="code hl_define" href="perf__counter_8c.html#a0f17a2b1bde9a2632daa7ad0b96df9e5">PERF_CNT_COMPENSATION_THRESHOLD</a>) {</div>
<div class="line"><a id="l00358" name="l00358"></a><span class="lineno"> 358</span> nTemp += <a class="code hl_define" href="perf__counter_8c.html#acd96c53beeaff8f603fcda425eb295de">SysTick</a>-&gt;LOAD + 1;</div>
<div class="line"><a id="l00359" name="l00359"></a><span class="lineno"> 359</span> } </div>
<div class="line"><a id="l00360" name="l00360"></a><span class="lineno"> 360</span> }</div>
<div class="line"><a id="l00361" name="l00361"></a><span class="lineno"> 361</span> </div>
<div class="line"><a id="l00362" name="l00362"></a><span class="lineno"> 362</span> <span class="keywordflow">return</span> nTemp;</div>
<div class="line"><a id="l00363" name="l00363"></a><span class="lineno"> 363</span>}</div>
<div class="line"><a id="l00364" name="l00364"></a><span class="lineno"> 364</span> </div>
<div class="line"><a id="l00372" name="l00372"></a><span class="lineno"><a class="line" href="perf__counter_8c.html#a014af75d3945894c4740773e8a28d723"> 372</a></span>int32_t <a class="code hl_function" href="perf__counter_8c.html#a014af75d3945894c4740773e8a28d723">stop_cycle_counter</a>(<span class="keywordtype">void</span>)</div>
<div class="line"><a id="l00373" name="l00373"></a><span class="lineno"> 373</span>{</div>
<div class="line"><a id="l00374" name="l00374"></a><span class="lineno"> 374</span> int32_t nTemp = 0;</div>
<div class="line"><a id="l00375" name="l00375"></a><span class="lineno"> 375</span> </div>
<div class="line"><a id="l00376" name="l00376"></a><span class="lineno"> 376</span> <a class="code hl_define" href="perf__counter_8h.html#a966a3eb20671a2a8c44d63d459f5472e">__IRQ_SAFE</a> {</div>
<div class="line"><a id="l00377" name="l00377"></a><span class="lineno"> 377</span> nTemp = <a class="code hl_function" href="perf__counter_8c.html#a21ccde78f8ad778f05be60855c5a8283">check_systick</a>() + s_nCycleCounts;</div>
<div class="line"><a id="l00378" name="l00378"></a><span class="lineno"> 378</span> }</div>
<div class="line"><a id="l00379" name="l00379"></a><span class="lineno"> 379</span> </div>
<div class="line"><a id="l00380" name="l00380"></a><span class="lineno"> 380</span> <span class="keywordflow">return</span> nTemp - s_nOffset;</div>
<div class="line"><a id="l00381" name="l00381"></a><span class="lineno"> 381</span>}</div>
<div class="line"><a id="l00382" name="l00382"></a><span class="lineno"> 382</span> </div>
<div class="line"><a id="l00383" name="l00383"></a><span class="lineno"> 383</span><span class="preprocessor">#if defined(__IS_COMPILER_IAR__)</span></div>
<div class="line"><a id="l00384" name="l00384"></a><span class="lineno"> 384</span>__attribute__((constructor))</div>
<div class="line"><a id="l00385" name="l00385"></a><span class="lineno"> 385</span><span class="preprocessor">#else</span></div>
<div class="line"><a id="l00386" name="l00386"></a><span class="lineno"> 386</span>__attribute__((constructor(255)))</div>
<div class="line"><a id="l00387" name="l00387"></a><span class="lineno"> 387</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00388" name="l00388"></a><span class="lineno"> 388</span><span class="keywordtype">void</span> __perf_counter_init(<span class="keywordtype">void</span>)</div>
<div class="line"><a id="l00389" name="l00389"></a><span class="lineno"> 389</span>{</div>
<div class="line"><a id="l00390" name="l00390"></a><span class="lineno"> 390</span> <a class="code hl_function" href="perf__counter_8c.html#a9097d62a30ad2b4f75462c78d7200fa8">init_cycle_counter</a>(<span class="keyword">true</span>);</div>
<div class="line"><a id="l00391" name="l00391"></a><span class="lineno"> 391</span>}</div>
<div class="line"><a id="l00392" name="l00392"></a><span class="lineno"> 392</span> </div>
<div class="line"><a id="l00398" name="l00398"></a><span class="lineno"><a class="line" href="perf__counter_8c.html#a9776dfed871d0e0775c876f16e7618f7"> 398</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="perf__counter_8c.html#a9776dfed871d0e0775c876f16e7618f7">delay_us</a>(int32_t nUs)</div>
<div class="line"><a id="l00399" name="l00399"></a><span class="lineno"> 399</span>{</div>
<div class="line"><a id="l00400" name="l00400"></a><span class="lineno"> 400</span> int64_t lUs = nUs * s_nUSUnit;</div>
<div class="line"><a id="l00401" name="l00401"></a><span class="lineno"> 401</span> </div>
<div class="line"><a id="l00402" name="l00402"></a><span class="lineno"> 402</span> <span class="keywordflow">if</span> (lUs &lt;= <a class="code hl_define" href="perf__counter_8c.html#ad7332da0831148c773a7c5211d5bfa1e">PERF_CNT_DELAY_US_COMPENSATION</a>) {</div>
<div class="line"><a id="l00403" name="l00403"></a><span class="lineno"> 403</span> return ;</div>
<div class="line"><a id="l00404" name="l00404"></a><span class="lineno"> 404</span> } </div>
<div class="line"><a id="l00405" name="l00405"></a><span class="lineno"> 405</span> </div>
<div class="line"><a id="l00406" name="l00406"></a><span class="lineno"> 406</span> lUs -= <a class="code hl_define" href="perf__counter_8c.html#ad7332da0831148c773a7c5211d5bfa1e">PERF_CNT_DELAY_US_COMPENSATION</a>;</div>
<div class="line"><a id="l00407" name="l00407"></a><span class="lineno"> 407</span> </div>
<div class="line"><a id="l00408" name="l00408"></a><span class="lineno"> 408</span> lUs += <a class="code hl_function" href="perf__counter_8c.html#a32dabfe5b863f89f71735b20a0caf1ea">get_system_ticks</a>();</div>
<div class="line"><a id="l00409" name="l00409"></a><span class="lineno"> 409</span> <span class="keywordflow">while</span>(<a class="code hl_function" href="perf__counter_8c.html#a32dabfe5b863f89f71735b20a0caf1ea">get_system_ticks</a>() &lt; lUs);</div>
<div class="line"><a id="l00410" name="l00410"></a><span class="lineno"> 410</span>}</div>
<div class="line"><a id="l00411" name="l00411"></a><span class="lineno"> 411</span> </div>
<div class="line"><a id="l00417" name="l00417"></a><span class="lineno"><a class="line" href="perf__counter_8c.html#a2add8ab5b23b568bba6d46f9c977dbce"> 417</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="perf__counter_8c.html#a2add8ab5b23b568bba6d46f9c977dbce">delay_ms</a>(int32_t nMs)</div>
<div class="line"><a id="l00418" name="l00418"></a><span class="lineno"> 418</span>{</div>
<div class="line"><a id="l00419" name="l00419"></a><span class="lineno"> 419</span> int64_t lUs = nMs * s_nMSUnit;</div>
<div class="line"><a id="l00420" name="l00420"></a><span class="lineno"> 420</span> </div>
<div class="line"><a id="l00421" name="l00421"></a><span class="lineno"> 421</span> <span class="keywordflow">if</span> (lUs &lt;= <a class="code hl_define" href="perf__counter_8c.html#ad7332da0831148c773a7c5211d5bfa1e">PERF_CNT_DELAY_US_COMPENSATION</a>) {</div>
<div class="line"><a id="l00422" name="l00422"></a><span class="lineno"> 422</span> return ;</div>
<div class="line"><a id="l00423" name="l00423"></a><span class="lineno"> 423</span> } </div>
<div class="line"><a id="l00424" name="l00424"></a><span class="lineno"> 424</span> </div>
<div class="line"><a id="l00425" name="l00425"></a><span class="lineno"> 425</span> lUs -= <a class="code hl_define" href="perf__counter_8c.html#ad7332da0831148c773a7c5211d5bfa1e">PERF_CNT_DELAY_US_COMPENSATION</a>;</div>
<div class="line"><a id="l00426" name="l00426"></a><span class="lineno"> 426</span> </div>
<div class="line"><a id="l00427" name="l00427"></a><span class="lineno"> 427</span> lUs += <a class="code hl_function" href="perf__counter_8c.html#a32dabfe5b863f89f71735b20a0caf1ea">get_system_ticks</a>();</div>
<div class="line"><a id="l00428" name="l00428"></a><span class="lineno"> 428</span> <span class="keywordflow">while</span>(<a class="code hl_function" href="perf__counter_8c.html#a32dabfe5b863f89f71735b20a0caf1ea">get_system_ticks</a>() &lt; lUs);</div>
<div class="line"><a id="l00429" name="l00429"></a><span class="lineno"> 429</span>}</div>
<div class="line"><a id="l00430" name="l00430"></a><span class="lineno"> 430</span> </div>
<div class="line"><a id="l00452" name="l00452"></a><span class="lineno"> 452</span><span class="preprocessor">#if !defined(__IS_COMPILER_IAR__)</span></div>
<div class="line"><a id="l00453" name="l00453"></a><span class="lineno"> 453</span>__attribute__((nothrow)) </div>
<div class="line"><a id="l00454" name="l00454"></a><span class="lineno"> 454</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00455" name="l00455"></a><span class="lineno"> 455</span> </div>
<div class="line"><a id="l00456" name="l00456"></a><span class="lineno"> 456</span>int64_t clock(<span class="keywordtype">void</span>)</div>
<div class="line"><a id="l00457" name="l00457"></a><span class="lineno"> 457</span>{</div>
<div class="line"><a id="l00458" name="l00458"></a><span class="lineno"> 458</span> int64_t lTemp = 0;</div>
<div class="line"><a id="l00459" name="l00459"></a><span class="lineno"> 459</span> </div>
<div class="line"><a id="l00460" name="l00460"></a><span class="lineno"> 460</span> <a class="code hl_define" href="perf__counter_8h.html#a966a3eb20671a2a8c44d63d459f5472e">__IRQ_SAFE</a> {</div>
<div class="line"><a id="l00461" name="l00461"></a><span class="lineno"> 461</span> lTemp = <a class="code hl_function" href="perf__counter_8c.html#a21ccde78f8ad778f05be60855c5a8283">check_systick</a>() + s_lSystemClockCounts;</div>
<div class="line"><a id="l00462" name="l00462"></a><span class="lineno"> 462</span> }</div>
<div class="line"><a id="l00463" name="l00463"></a><span class="lineno"> 463</span> </div>
<div class="line"><a id="l00464" name="l00464"></a><span class="lineno"> 464</span> <span class="keywordflow">return</span> lTemp;</div>
<div class="line"><a id="l00465" name="l00465"></a><span class="lineno"> 465</span>}</div>
<div class="line"><a id="l00466" name="l00466"></a><span class="lineno"> 466</span> </div>
<div class="line"><a id="l00472" name="l00472"></a><span class="lineno"><a class="line" href="perf__counter_8c.html#a32dabfe5b863f89f71735b20a0caf1ea"> 472</a></span>int64_t <a class="code hl_function" href="perf__counter_8c.html#a32dabfe5b863f89f71735b20a0caf1ea">get_system_ticks</a>(<span class="keywordtype">void</span>)</div>
<div class="line"><a id="l00473" name="l00473"></a><span class="lineno"> 473</span>{</div>
<div class="line"><a id="l00474" name="l00474"></a><span class="lineno"> 474</span> int64_t lTemp = 0;</div>
<div class="line"><a id="l00475" name="l00475"></a><span class="lineno"> 475</span> </div>
<div class="line"><a id="l00476" name="l00476"></a><span class="lineno"> 476</span> <a class="code hl_define" href="perf__counter_8h.html#a966a3eb20671a2a8c44d63d459f5472e">__IRQ_SAFE</a> {</div>
<div class="line"><a id="l00477" name="l00477"></a><span class="lineno"> 477</span> lTemp = <a class="code hl_function" href="perf__counter_8c.html#a21ccde78f8ad778f05be60855c5a8283">check_systick</a>() + s_lSystemClockCounts;</div>
<div class="line"><a id="l00478" name="l00478"></a><span class="lineno"> 478</span> }</div>
<div class="line"><a id="l00479" name="l00479"></a><span class="lineno"> 479</span> </div>
<div class="line"><a id="l00480" name="l00480"></a><span class="lineno"> 480</span> <span class="keywordflow">return</span> lTemp;</div>
<div class="line"><a id="l00481" name="l00481"></a><span class="lineno"> 481</span>}</div>
<div class="line"><a id="l00482" name="l00482"></a><span class="lineno"> 482</span> </div>
<div class="line"><a id="l00488" name="l00488"></a><span class="lineno"><a class="line" href="perf__counter_8c.html#a98c51d83fdb448a2733d0a309366149c"> 488</a></span>int32_t <a class="code hl_function" href="perf__counter_8c.html#a98c51d83fdb448a2733d0a309366149c">get_system_ms</a>(<span class="keywordtype">void</span>)</div>
<div class="line"><a id="l00489" name="l00489"></a><span class="lineno"> 489</span>{</div>
<div class="line"><a id="l00490" name="l00490"></a><span class="lineno"> 490</span> int32_t nTemp = 0;</div>
<div class="line"><a id="l00491" name="l00491"></a><span class="lineno"> 491</span> </div>
<div class="line"><a id="l00492" name="l00492"></a><span class="lineno"> 492</span> <a class="code hl_define" href="perf__counter_8h.html#a966a3eb20671a2a8c44d63d459f5472e">__IRQ_SAFE</a> {</div>
<div class="line"><a id="l00493" name="l00493"></a><span class="lineno"> 493</span> nTemp = s_nSystemMS + (<a class="code hl_function" href="perf__counter_8c.html#a21ccde78f8ad778f05be60855c5a8283">check_systick</a>() + s_nMSResidule) / s_nMSUnit;</div>
<div class="line"><a id="l00494" name="l00494"></a><span class="lineno"> 494</span> }</div>
<div class="line"><a id="l00495" name="l00495"></a><span class="lineno"> 495</span> </div>
<div class="line"><a id="l00496" name="l00496"></a><span class="lineno"> 496</span> <span class="keywordflow">return</span> nTemp;</div>
<div class="line"><a id="l00497" name="l00497"></a><span class="lineno"> 497</span>}</div>
<div class="line"><a id="l00498" name="l00498"></a><span class="lineno"> 498</span> </div>
<div class="line"><a id="l00499" name="l00499"></a><span class="lineno"> 499</span> </div>
<div class="line"><a id="l00500" name="l00500"></a><span class="lineno"> 500</span>__WEAK </div>
<div class="line"><a id="l00501" name="l00501"></a><span class="lineno"><a class="line" href="perf__counter_8c.html#a87abe08a2093c8c69e5f813f565a1d31"> 501</a></span><a class="code hl_struct" href="structtask__cycle__info__t.html">task_cycle_info_t</a> * <a class="code hl_function" href="perf__counter_8c.html#a87abe08a2093c8c69e5f813f565a1d31">get_rtos_task_cycle_info</a>(<span class="keywordtype">void</span>)</div>
<div class="line"><a id="l00502" name="l00502"></a><span class="lineno"> 502</span>{</div>
<div class="line"><a id="l00503" name="l00503"></a><span class="lineno"> 503</span> <span class="keywordflow">return</span> NULL;</div>
<div class="line"><a id="l00504" name="l00504"></a><span class="lineno"> 504</span>}</div>
<div class="line"><a id="l00505" name="l00505"></a><span class="lineno"> 505</span> </div>
<div class="line"><a id="l00506" name="l00506"></a><span class="lineno"><a class="line" href="perf__counter_8c.html#a74d7160e4b3588456a85fcdce6cee6ab"> 506</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="perf__counter_8c.html#a74d7160e4b3588456a85fcdce6cee6ab">init_task_cycle_counter</a>(<span class="keywordtype">void</span>)</div>
<div class="line"><a id="l00507" name="l00507"></a><span class="lineno"> 507</span>{</div>
<div class="line"><a id="l00508" name="l00508"></a><span class="lineno"> 508</span> <span class="keyword">struct </span><a class="code hl_struct" href="struct____task__cycle__info__t.html">__task_cycle_info_t</a> * ptRootAgent = </div>
<div class="line"><a id="l00509" name="l00509"></a><span class="lineno"> 509</span> (<span class="keyword">struct </span><a class="code hl_struct" href="struct____task__cycle__info__t.html">__task_cycle_info_t</a> *)<a class="code hl_function" href="perf__counter_8c.html#a87abe08a2093c8c69e5f813f565a1d31">get_rtos_task_cycle_info</a>();</div>
<div class="line"><a id="l00510" name="l00510"></a><span class="lineno"> 510</span> <span class="keywordflow">if</span> (NULL == ptRootAgent) {</div>
<div class="line"><a id="l00511" name="l00511"></a><span class="lineno"> 511</span> return ;</div>
<div class="line"><a id="l00512" name="l00512"></a><span class="lineno"> 512</span> }</div>
<div class="line"><a id="l00513" name="l00513"></a><span class="lineno"> 513</span> </div>
<div class="line"><a id="l00514" name="l00514"></a><span class="lineno"> 514</span> memset(ptRootAgent, 0, <span class="keyword">sizeof</span>(<span class="keyword">struct</span> <a class="code hl_struct" href="struct____task__cycle__info__t.html">__task_cycle_info_t</a>));</div>
<div class="line"><a id="l00515" name="l00515"></a><span class="lineno"> 515</span> </div>
<div class="line"><a id="l00516" name="l00516"></a><span class="lineno"> 516</span> ptRootAgent-&gt;<a class="code hl_variable" href="struct____task__cycle__info__t.html#a7d50a2272c4a1b65f927e8c6d1242b33">tList</a>.<a class="code hl_variable" href="structtask__cycle__info__agent__t.html#a26adda6b75d3722f450eb169546bd7e7">ptInfo</a> = &amp;(ptRootAgent-&gt;<a class="code hl_variable" href="struct____task__cycle__info__t.html#a8af024785267321e4ef544e7f25d80dc">tInfo</a>);</div>
<div class="line"><a id="l00517" name="l00517"></a><span class="lineno"> 517</span> ptRootAgent-&gt;<a class="code hl_variable" href="struct____task__cycle__info__t.html#a8af024785267321e4ef544e7f25d80dc">tInfo</a>.<a class="code hl_variable" href="structtask__cycle__info__t.html#a3b941eea48497afb204462c694bc2d12">lStart</a> = <a class="code hl_function" href="perf__counter_8c.html#a32dabfe5b863f89f71735b20a0caf1ea">get_system_ticks</a>();</div>
<div class="line"><a id="l00518" name="l00518"></a><span class="lineno"> 518</span> ptRootAgent-&gt;<a class="code hl_variable" href="struct____task__cycle__info__t.html#a88c8aad5ae23ae04fa44b2892081561b">wMagicWord</a> = <a class="code hl_define" href="perf__counter_8c.html#acd6c9ac2bce565b27fef68a011411100">MAGIC_WORD_CANARY</a>;</div>
<div class="line"><a id="l00519" name="l00519"></a><span class="lineno"> 519</span>}</div>
<div class="line"><a id="l00520" name="l00520"></a><span class="lineno"> 520</span> </div>
<div class="line"><a id="l00521" name="l00521"></a><span class="lineno"><a class="line" href="perf__counter_8c.html#af5404b4b72cfaf910fb2ebeb8d7a4448"> 521</a></span><a class="code hl_struct" href="structtask__cycle__info__t.html">task_cycle_info_t</a> *<a class="code hl_function" href="perf__counter_8c.html#af5404b4b72cfaf910fb2ebeb8d7a4448">init_task_cycle_info</a>(<a class="code hl_struct" href="structtask__cycle__info__t.html">task_cycle_info_t</a> *ptInfo)</div>
<div class="line"><a id="l00522" name="l00522"></a><span class="lineno"> 522</span>{</div>
<div class="line"><a id="l00523" name="l00523"></a><span class="lineno"> 523</span> <span class="keywordflow">do</span> {</div>
<div class="line"><a id="l00524" name="l00524"></a><span class="lineno"> 524</span> <span class="keywordflow">if</span> (NULL == ptInfo) {</div>
<div class="line"><a id="l00525" name="l00525"></a><span class="lineno"> 525</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00526" name="l00526"></a><span class="lineno"> 526</span> }</div>
<div class="line"><a id="l00527" name="l00527"></a><span class="lineno"> 527</span> </div>
<div class="line"><a id="l00528" name="l00528"></a><span class="lineno"> 528</span> memset(ptInfo, 0, <span class="keyword">sizeof</span>(<a class="code hl_struct" href="structtask__cycle__info__t.html">task_cycle_info_t</a>));</div>
<div class="line"><a id="l00529" name="l00529"></a><span class="lineno"> 529</span> </div>
<div class="line"><a id="l00530" name="l00530"></a><span class="lineno"> 530</span> ptInfo-&gt;<a class="code hl_variable" href="structtask__cycle__info__t.html#a8a4c67264f8440bb83dec68c4312ff09">bEnabled</a> = <span class="keyword">true</span>;</div>
<div class="line"><a id="l00531" name="l00531"></a><span class="lineno"> 531</span> } <span class="keywordflow">while</span>(0);</div>
<div class="line"><a id="l00532" name="l00532"></a><span class="lineno"> 532</span> </div>
<div class="line"><a id="l00533" name="l00533"></a><span class="lineno"> 533</span> <span class="keywordflow">return</span> ptInfo;</div>
<div class="line"><a id="l00534" name="l00534"></a><span class="lineno"> 534</span>}</div>
<div class="line"><a id="l00535" name="l00535"></a><span class="lineno"> 535</span> </div>
<div class="line"><a id="l00536" name="l00536"></a><span class="lineno"><a class="line" href="perf__counter_8c.html#ae2c015694f2e89240466e9b1d423c6ec"> 536</a></span><span class="keywordtype">bool</span> <a class="code hl_function" href="perf__counter_8c.html#ae2c015694f2e89240466e9b1d423c6ec">enable_task_cycle_info</a>(<a class="code hl_struct" href="structtask__cycle__info__t.html">task_cycle_info_t</a> *ptInfo)</div>
<div class="line"><a id="l00537" name="l00537"></a><span class="lineno"> 537</span>{</div>
<div class="line"><a id="l00538" name="l00538"></a><span class="lineno"> 538</span> <span class="keywordflow">if</span> (NULL == ptInfo) {</div>
<div class="line"><a id="l00539" name="l00539"></a><span class="lineno"> 539</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a id="l00540" name="l00540"></a><span class="lineno"> 540</span> }</div>
<div class="line"><a id="l00541" name="l00541"></a><span class="lineno"> 541</span> <span class="keywordtype">bool</span> bOrig;</div>
<div class="line"><a id="l00542" name="l00542"></a><span class="lineno"> 542</span> <a class="code hl_define" href="perf__counter_8h.html#a966a3eb20671a2a8c44d63d459f5472e">__IRQ_SAFE</a> {</div>
<div class="line"><a id="l00543" name="l00543"></a><span class="lineno"> 543</span> bOrig = ptInfo-&gt;<a class="code hl_variable" href="structtask__cycle__info__t.html#a8a4c67264f8440bb83dec68c4312ff09">bEnabled</a>;</div>
<div class="line"><a id="l00544" name="l00544"></a><span class="lineno"> 544</span> ptInfo-&gt;<a class="code hl_variable" href="structtask__cycle__info__t.html#a8a4c67264f8440bb83dec68c4312ff09">bEnabled</a> = <span class="keyword">true</span>;</div>
<div class="line"><a id="l00545" name="l00545"></a><span class="lineno"> 545</span> }</div>
<div class="line"><a id="l00546" name="l00546"></a><span class="lineno"> 546</span> <span class="keywordflow">return</span> bOrig;</div>
<div class="line"><a id="l00547" name="l00547"></a><span class="lineno"> 547</span>}</div>
<div class="line"><a id="l00548" name="l00548"></a><span class="lineno"> 548</span> </div>
<div class="line"><a id="l00549" name="l00549"></a><span class="lineno"><a class="line" href="perf__counter_8c.html#a01d6cd52b6c48c1e0c8a68b48ad87b0c"> 549</a></span><span class="keywordtype">bool</span> <a class="code hl_function" href="perf__counter_8c.html#a01d6cd52b6c48c1e0c8a68b48ad87b0c">disable_task_cycle_info</a>(<a class="code hl_struct" href="structtask__cycle__info__t.html">task_cycle_info_t</a> *ptInfo)</div>
<div class="line"><a id="l00550" name="l00550"></a><span class="lineno"> 550</span>{</div>
<div class="line"><a id="l00551" name="l00551"></a><span class="lineno"> 551</span> <span class="keywordflow">if</span> (NULL == ptInfo) {</div>
<div class="line"><a id="l00552" name="l00552"></a><span class="lineno"> 552</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a id="l00553" name="l00553"></a><span class="lineno"> 553</span> }</div>
<div class="line"><a id="l00554" name="l00554"></a><span class="lineno"> 554</span> <span class="keywordtype">bool</span> bOrig;</div>
<div class="line"><a id="l00555" name="l00555"></a><span class="lineno"> 555</span> <a class="code hl_define" href="perf__counter_8h.html#a966a3eb20671a2a8c44d63d459f5472e">__IRQ_SAFE</a> {</div>
<div class="line"><a id="l00556" name="l00556"></a><span class="lineno"> 556</span> bOrig = ptInfo-&gt;<a class="code hl_variable" href="structtask__cycle__info__t.html#a8a4c67264f8440bb83dec68c4312ff09">bEnabled</a>;</div>
<div class="line"><a id="l00557" name="l00557"></a><span class="lineno"> 557</span> ptInfo-&gt;<a class="code hl_variable" href="structtask__cycle__info__t.html#a8a4c67264f8440bb83dec68c4312ff09">bEnabled</a> = <span class="keyword">false</span>;</div>
<div class="line"><a id="l00558" name="l00558"></a><span class="lineno"> 558</span> }</div>
<div class="line"><a id="l00559" name="l00559"></a><span class="lineno"> 559</span> <span class="keywordflow">return</span> bOrig;</div>
<div class="line"><a id="l00560" name="l00560"></a><span class="lineno"> 560</span>}</div>
<div class="line"><a id="l00561" name="l00561"></a><span class="lineno"> 561</span> </div>
<div class="line"><a id="l00562" name="l00562"></a><span class="lineno"><a class="line" href="perf__counter_8c.html#a79c2926ae10e2cc327faf58e6094866d"> 562</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="perf__counter_8c.html#a79c2926ae10e2cc327faf58e6094866d">resume_task_cycle_info</a>(<a class="code hl_struct" href="structtask__cycle__info__t.html">task_cycle_info_t</a> *ptInfo, <span class="keywordtype">bool</span> bEnabledStatus)</div>
<div class="line"><a id="l00563" name="l00563"></a><span class="lineno"> 563</span>{</div>
<div class="line"><a id="l00564" name="l00564"></a><span class="lineno"> 564</span> <span class="keywordflow">if</span> (NULL == ptInfo) {</div>
<div class="line"><a id="l00565" name="l00565"></a><span class="lineno"> 565</span> <span class="keywordflow">return</span>;</div>
<div class="line"><a id="l00566" name="l00566"></a><span class="lineno"> 566</span> }</div>
<div class="line"><a id="l00567" name="l00567"></a><span class="lineno"> 567</span> </div>
<div class="line"><a id="l00568" name="l00568"></a><span class="lineno"> 568</span> ptInfo-&gt;<a class="code hl_variable" href="structtask__cycle__info__t.html#a8a4c67264f8440bb83dec68c4312ff09">bEnabled</a> = bEnabledStatus;</div>
<div class="line"><a id="l00569" name="l00569"></a><span class="lineno"> 569</span>}</div>
<div class="line"><a id="l00570" name="l00570"></a><span class="lineno"> 570</span> </div>
<div class="line"><a id="l00571" name="l00571"></a><span class="lineno"> 571</span> </div>
<div class="line"><a id="l00572" name="l00572"></a><span class="lineno"><a class="line" href="perf__counter_8c.html#a0df8fe57dbd607e1992149a890612476"> 572</a></span><a class="code hl_struct" href="structtask__cycle__info__agent__t.html">task_cycle_info_agent_t</a> *<a class="code hl_function" href="perf__counter_8c.html#a0df8fe57dbd607e1992149a890612476">register_task_cycle_agent</a>(<a class="code hl_struct" href="structtask__cycle__info__t.html">task_cycle_info_t</a> *ptInfo,</div>
<div class="line"><a id="l00573" name="l00573"></a><span class="lineno"> 573</span> <a class="code hl_struct" href="structtask__cycle__info__agent__t.html">task_cycle_info_agent_t</a> *ptAgent)</div>
<div class="line"><a id="l00574" name="l00574"></a><span class="lineno"> 574</span>{</div>
<div class="line"><a id="l00575" name="l00575"></a><span class="lineno"> 575</span> <a class="code hl_define" href="perf__counter_8h.html#a966a3eb20671a2a8c44d63d459f5472e">__IRQ_SAFE</a> {</div>
<div class="line"><a id="l00576" name="l00576"></a><span class="lineno"> 576</span> <span class="keywordflow">do</span> {</div>
<div class="line"><a id="l00577" name="l00577"></a><span class="lineno"> 577</span> <span class="keywordflow">if</span> (NULL == ptAgent || NULL == ptInfo) {</div>
<div class="line"><a id="l00578" name="l00578"></a><span class="lineno"> 578</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00579" name="l00579"></a><span class="lineno"> 579</span> }</div>
<div class="line"><a id="l00580" name="l00580"></a><span class="lineno"> 580</span> </div>
<div class="line"><a id="l00581" name="l00581"></a><span class="lineno"> 581</span> <span class="keyword">struct </span><a class="code hl_struct" href="struct____task__cycle__info__t.html">__task_cycle_info_t</a> * ptRootAgent = </div>
<div class="line"><a id="l00582" name="l00582"></a><span class="lineno"> 582</span> (<span class="keyword">struct </span><a class="code hl_struct" href="struct____task__cycle__info__t.html">__task_cycle_info_t</a> *)<a class="code hl_function" href="perf__counter_8c.html#a87abe08a2093c8c69e5f813f565a1d31">get_rtos_task_cycle_info</a>();</div>
<div class="line"><a id="l00583" name="l00583"></a><span class="lineno"> 583</span> <span class="keywordflow">if</span> (NULL == ptRootAgent) {</div>
<div class="line"><a id="l00584" name="l00584"></a><span class="lineno"> 584</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00585" name="l00585"></a><span class="lineno"> 585</span> }</div>
<div class="line"><a id="l00586" name="l00586"></a><span class="lineno"> 586</span> </div>
<div class="line"><a id="l00587" name="l00587"></a><span class="lineno"> 587</span> ptRootAgent-&gt;<a class="code hl_variable" href="struct____task__cycle__info__t.html#a88c8aad5ae23ae04fa44b2892081561b">wMagicWord</a> = <a class="code hl_define" href="perf__counter_8c.html#a5ed2b69d382ff960de71b5aa2e0b0deb">MAGIC_WORD_AGENT_LIST_VALID</a>;</div>
<div class="line"><a id="l00588" name="l00588"></a><span class="lineno"> 588</span> </div>
<div class="line"><a id="l00589" name="l00589"></a><span class="lineno"> 589</span> ptAgent-&gt;<a class="code hl_variable" href="structtask__cycle__info__agent__t.html#a26adda6b75d3722f450eb169546bd7e7">ptInfo</a> = ptInfo;</div>
<div class="line"><a id="l00590" name="l00590"></a><span class="lineno"> 590</span> </div>
<div class="line"><a id="l00592" name="l00592"></a><span class="lineno"> 592</span> <span class="keywordflow">do</span> {</div>
<div class="line"><a id="l00594" name="l00594"></a><span class="lineno"> 594</span> ptAgent-&gt;<a class="code hl_variable" href="structtask__cycle__info__agent__t.html#a3f049d289ce99f316894417016d60ca6">ptNext</a> = ptRootAgent-&gt;<a class="code hl_variable" href="struct____task__cycle__info__t.html#a7d50a2272c4a1b65f927e8c6d1242b33">tList</a>.<a class="code hl_variable" href="structtask__cycle__info__agent__t.html#a3f049d289ce99f316894417016d60ca6">ptNext</a>;</div>
<div class="line"><a id="l00595" name="l00595"></a><span class="lineno"> 595</span> ptRootAgent-&gt;<a class="code hl_variable" href="struct____task__cycle__info__t.html#a7d50a2272c4a1b65f927e8c6d1242b33">tList</a>.<a class="code hl_variable" href="structtask__cycle__info__agent__t.html#a3f049d289ce99f316894417016d60ca6">ptNext</a> = ptAgent;</div>
<div class="line"><a id="l00596" name="l00596"></a><span class="lineno"> 596</span> </div>
<div class="line"><a id="l00598" name="l00598"></a><span class="lineno"> 598</span> ptAgent-&gt;<a class="code hl_variable" href="structtask__cycle__info__agent__t.html#a0ab0ef208ec46b60dce3d05a76754931">ptPrev</a> = &amp;(ptRootAgent-&gt;<a class="code hl_variable" href="struct____task__cycle__info__t.html#a7d50a2272c4a1b65f927e8c6d1242b33">tList</a>);</div>
<div class="line"><a id="l00599" name="l00599"></a><span class="lineno"> 599</span> <span class="keywordflow">if</span> (NULL != ptAgent-&gt;<a class="code hl_variable" href="structtask__cycle__info__agent__t.html#a3f049d289ce99f316894417016d60ca6">ptNext</a>) {</div>
<div class="line"><a id="l00600" name="l00600"></a><span class="lineno"> 600</span> ptAgent-&gt;<a class="code hl_variable" href="structtask__cycle__info__agent__t.html#a3f049d289ce99f316894417016d60ca6">ptNext</a>-&gt;<a class="code hl_variable" href="structtask__cycle__info__agent__t.html#a0ab0ef208ec46b60dce3d05a76754931">ptPrev</a> = ptAgent;</div>
<div class="line"><a id="l00601" name="l00601"></a><span class="lineno"> 601</span> }</div>
<div class="line"><a id="l00602" name="l00602"></a><span class="lineno"> 602</span> } <span class="keywordflow">while</span>(0);</div>
<div class="line"><a id="l00603" name="l00603"></a><span class="lineno"> 603</span> </div>
<div class="line"><a id="l00604" name="l00604"></a><span class="lineno"> 604</span> } <span class="keywordflow">while</span>(0);</div>
<div class="line"><a id="l00605" name="l00605"></a><span class="lineno"> 605</span> }</div>
<div class="line"><a id="l00606" name="l00606"></a><span class="lineno"> 606</span> </div>
<div class="line"><a id="l00607" name="l00607"></a><span class="lineno"> 607</span> <span class="keywordflow">return</span> ptAgent;</div>
<div class="line"><a id="l00608" name="l00608"></a><span class="lineno"> 608</span>}</div>
<div class="line"><a id="l00609" name="l00609"></a><span class="lineno"> 609</span> </div>
<div class="line"><a id="l00610" name="l00610"></a><span class="lineno"> 610</span><a class="code hl_struct" href="structtask__cycle__info__agent__t.html">task_cycle_info_agent_t</a> *</div>
<div class="line"><a id="l00611" name="l00611"></a><span class="lineno"><a class="line" href="perf__counter_8c.html#ae8c905d7221a7299fba5edbbfe1f449f"> 611</a></span><a class="code hl_function" href="perf__counter_8c.html#ae8c905d7221a7299fba5edbbfe1f449f">unregister_task_cycle_agent</a>(<a class="code hl_struct" href="structtask__cycle__info__agent__t.html">task_cycle_info_agent_t</a> *ptAgent)</div>
<div class="line"><a id="l00612" name="l00612"></a><span class="lineno"> 612</span>{</div>
<div class="line"><a id="l00613" name="l00613"></a><span class="lineno"> 613</span> <a class="code hl_define" href="perf__counter_8h.html#a966a3eb20671a2a8c44d63d459f5472e">__IRQ_SAFE</a> {</div>
<div class="line"><a id="l00614" name="l00614"></a><span class="lineno"> 614</span> <span class="keywordflow">do</span> {</div>
<div class="line"><a id="l00615" name="l00615"></a><span class="lineno"> 615</span> <span class="keywordflow">if</span> (NULL == ptAgent) {</div>
<div class="line"><a id="l00616" name="l00616"></a><span class="lineno"> 616</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00617" name="l00617"></a><span class="lineno"> 617</span> }</div>
<div class="line"><a id="l00618" name="l00618"></a><span class="lineno"> 618</span> </div>
<div class="line"><a id="l00619" name="l00619"></a><span class="lineno"> 619</span> <a class="code hl_struct" href="structtask__cycle__info__agent__t.html">task_cycle_info_agent_t</a> *ptPrev = ptAgent-&gt;<a class="code hl_variable" href="structtask__cycle__info__agent__t.html#a0ab0ef208ec46b60dce3d05a76754931">ptPrev</a>;</div>
<div class="line"><a id="l00620" name="l00620"></a><span class="lineno"> 620</span> <span class="keywordflow">if</span> (NULL == ptPrev) {</div>
<div class="line"><a id="l00621" name="l00621"></a><span class="lineno"> 621</span> <span class="keywordflow">break</span>; <span class="comment">/* this should not happen */</span></div>
<div class="line"><a id="l00622" name="l00622"></a><span class="lineno"> 622</span> }</div>
<div class="line"><a id="l00623" name="l00623"></a><span class="lineno"> 623</span> <span class="keywordflow">if</span> (ptPrev-&gt;<a class="code hl_variable" href="structtask__cycle__info__agent__t.html#a3f049d289ce99f316894417016d60ca6">ptNext</a> != ptAgent) {</div>
<div class="line"><a id="l00625" name="l00625"></a><span class="lineno"> 625</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00626" name="l00626"></a><span class="lineno"> 626</span> }</div>
<div class="line"><a id="l00627" name="l00627"></a><span class="lineno"> 627</span> </div>
<div class="line"><a id="l00629" name="l00629"></a><span class="lineno"> 629</span> ptPrev-&gt;<a class="code hl_variable" href="structtask__cycle__info__agent__t.html#a3f049d289ce99f316894417016d60ca6">ptNext</a> = ptAgent-&gt;<a class="code hl_variable" href="structtask__cycle__info__agent__t.html#a3f049d289ce99f316894417016d60ca6">ptNext</a>;</div>
<div class="line"><a id="l00630" name="l00630"></a><span class="lineno"> 630</span> </div>
<div class="line"><a id="l00631" name="l00631"></a><span class="lineno"> 631</span> <span class="keywordflow">if</span> (NULL != ptAgent-&gt;<a class="code hl_variable" href="structtask__cycle__info__agent__t.html#a3f049d289ce99f316894417016d60ca6">ptNext</a>) {</div>
<div class="line"><a id="l00633" name="l00633"></a><span class="lineno"> 633</span> ptAgent-&gt;<a class="code hl_variable" href="structtask__cycle__info__agent__t.html#a3f049d289ce99f316894417016d60ca6">ptNext</a>-&gt;<a class="code hl_variable" href="structtask__cycle__info__agent__t.html#a0ab0ef208ec46b60dce3d05a76754931">ptPrev</a> = ptPrev;</div>
<div class="line"><a id="l00634" name="l00634"></a><span class="lineno"> 634</span> }</div>
<div class="line"><a id="l00635" name="l00635"></a><span class="lineno"> 635</span> </div>
<div class="line"><a id="l00636" name="l00636"></a><span class="lineno"> 636</span> ptAgent-&gt;<a class="code hl_variable" href="structtask__cycle__info__agent__t.html#a3f049d289ce99f316894417016d60ca6">ptNext</a> = NULL;</div>
<div class="line"><a id="l00637" name="l00637"></a><span class="lineno"> 637</span> ptAgent-&gt;<a class="code hl_variable" href="structtask__cycle__info__agent__t.html#a0ab0ef208ec46b60dce3d05a76754931">ptPrev</a> = NULL;</div>
<div class="line"><a id="l00638" name="l00638"></a><span class="lineno"> 638</span> </div>
<div class="line"><a id="l00639" name="l00639"></a><span class="lineno"> 639</span> } <span class="keywordflow">while</span>(0);</div>
<div class="line"><a id="l00640" name="l00640"></a><span class="lineno"> 640</span> }</div>
<div class="line"><a id="l00641" name="l00641"></a><span class="lineno"> 641</span> </div>
<div class="line"><a id="l00642" name="l00642"></a><span class="lineno"> 642</span> <span class="keywordflow">return</span> ptAgent;</div>
<div class="line"><a id="l00643" name="l00643"></a><span class="lineno"> 643</span>}</div>
<div class="line"><a id="l00644" name="l00644"></a><span class="lineno"> 644</span> </div>
<div class="line"><a id="l00645" name="l00645"></a><span class="lineno"> 645</span> </div>
<div class="line"><a id="l00646" name="l00646"></a><span class="lineno"><a class="line" href="perf__counter_8c.html#aded00de9fbde9be7f8872f85685b36a4"> 646</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="perf__counter_8c.html#aded00de9fbde9be7f8872f85685b36a4">__on_context_switch_in</a>(uint32_t *pwStack)</div>
<div class="line"><a id="l00647" name="l00647"></a><span class="lineno"> 647</span>{</div>
<div class="line"><a id="l00648" name="l00648"></a><span class="lineno"> 648</span> <span class="keyword">struct </span><a class="code hl_struct" href="struct____task__cycle__info__t.html">__task_cycle_info_t</a> *ptRootAgent = (<span class="keyword">struct </span><a class="code hl_struct" href="struct____task__cycle__info__t.html">__task_cycle_info_t</a> *)pwStack;</div>
<div class="line"><a id="l00649" name="l00649"></a><span class="lineno"> 649</span> uint64_t dwTimeStamp = <a class="code hl_function" href="perf__counter_8c.html#a32dabfe5b863f89f71735b20a0caf1ea">get_system_ticks</a>();</div>
<div class="line"><a id="l00650" name="l00650"></a><span class="lineno"> 650</span> </div>
<div class="line"><a id="l00651" name="l00651"></a><span class="lineno"> 651</span> ptRootAgent-&gt;<a class="code hl_variable" href="struct____task__cycle__info__t.html#ae2aae11f91e3eea654ceeac9b81706cb">lLastTimeStamp</a> = dwTimeStamp;</div>
<div class="line"><a id="l00652" name="l00652"></a><span class="lineno"> 652</span> ptRootAgent-&gt;<a class="code hl_variable" href="struct____task__cycle__info__t.html#a8af024785267321e4ef544e7f25d80dc">tInfo</a>.<a class="code hl_variable" href="structtask__cycle__info__t.html#a84d3729a2d49dd2e43ef8727fcd6f9b0">hwActiveCount</a>++;</div>
<div class="line"><a id="l00653" name="l00653"></a><span class="lineno"> 653</span> </div>
<div class="line"><a id="l00654" name="l00654"></a><span class="lineno"> 654</span> <span class="keywordflow">if</span> (<a class="code hl_define" href="perf__counter_8c.html#a5ed2b69d382ff960de71b5aa2e0b0deb">MAGIC_WORD_AGENT_LIST_VALID</a> == ptRootAgent-&gt;<a class="code hl_variable" href="struct____task__cycle__info__t.html#a88c8aad5ae23ae04fa44b2892081561b">wMagicWord</a>) {</div>
<div class="line"><a id="l00656" name="l00656"></a><span class="lineno"> 656</span> <a class="code hl_struct" href="structtask__cycle__info__agent__t.html">task_cycle_info_agent_t</a> *ptAgent = ptRootAgent-&gt;<a class="code hl_variable" href="struct____task__cycle__info__t.html#a7d50a2272c4a1b65f927e8c6d1242b33">tList</a>.<a class="code hl_variable" href="structtask__cycle__info__agent__t.html#a3f049d289ce99f316894417016d60ca6">ptNext</a>;</div>
<div class="line"><a id="l00657" name="l00657"></a><span class="lineno"> 657</span> <span class="keywordflow">while</span>(NULL != ptAgent) {</div>
<div class="line"><a id="l00658" name="l00658"></a><span class="lineno"> 658</span> <span class="keywordflow">if</span> (NULL != ptAgent-&gt;<a class="code hl_variable" href="structtask__cycle__info__agent__t.html#a26adda6b75d3722f450eb169546bd7e7">ptInfo</a>) {</div>
<div class="line"><a id="l00659" name="l00659"></a><span class="lineno"> 659</span> <span class="keywordflow">if</span> (ptAgent-&gt;<a class="code hl_variable" href="structtask__cycle__info__agent__t.html#a26adda6b75d3722f450eb169546bd7e7">ptInfo</a>-&gt;<a class="code hl_variable" href="structtask__cycle__info__t.html#a8a4c67264f8440bb83dec68c4312ff09">bEnabled</a>) {</div>
<div class="line"><a id="l00660" name="l00660"></a><span class="lineno"> 660</span> ptAgent-&gt;<a class="code hl_variable" href="structtask__cycle__info__agent__t.html#a26adda6b75d3722f450eb169546bd7e7">ptInfo</a>-&gt;<a class="code hl_variable" href="structtask__cycle__info__t.html#a84d3729a2d49dd2e43ef8727fcd6f9b0">hwActiveCount</a>++;</div>
<div class="line"><a id="l00661" name="l00661"></a><span class="lineno"> 661</span> }</div>
<div class="line"><a id="l00662" name="l00662"></a><span class="lineno"> 662</span> }</div>
<div class="line"><a id="l00663" name="l00663"></a><span class="lineno"> 663</span> ptAgent = ptAgent-&gt;<a class="code hl_variable" href="structtask__cycle__info__agent__t.html#a3f049d289ce99f316894417016d60ca6">ptNext</a>;</div>
<div class="line"><a id="l00664" name="l00664"></a><span class="lineno"> 664</span> }</div>
<div class="line"><a id="l00665" name="l00665"></a><span class="lineno"> 665</span> }</div>
<div class="line"><a id="l00666" name="l00666"></a><span class="lineno"> 666</span>}</div>
<div class="line"><a id="l00667" name="l00667"></a><span class="lineno"> 667</span> </div>
<div class="line"><a id="l00668" name="l00668"></a><span class="lineno"><a class="line" href="perf__counter_8c.html#aee2926404ade74811fa658786035f745"> 668</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="perf__counter_8c.html#aee2926404ade74811fa658786035f745">__on_context_switch_out</a>(uint32_t *pwStack)</div>
<div class="line"><a id="l00669" name="l00669"></a><span class="lineno"> 669</span>{</div>
<div class="line"><a id="l00670" name="l00670"></a><span class="lineno"> 670</span> <span class="keyword">struct </span><a class="code hl_struct" href="struct____task__cycle__info__t.html">__task_cycle_info_t</a> *ptRootAgent = (<span class="keyword">struct </span><a class="code hl_struct" href="struct____task__cycle__info__t.html">__task_cycle_info_t</a> *)pwStack;</div>
<div class="line"><a id="l00671" name="l00671"></a><span class="lineno"> 671</span> int64_t lCycleUsed = <a class="code hl_function" href="perf__counter_8c.html#a32dabfe5b863f89f71735b20a0caf1ea">get_system_ticks</a>() - ptRootAgent-&gt;<a class="code hl_variable" href="struct____task__cycle__info__t.html#ae2aae11f91e3eea654ceeac9b81706cb">lLastTimeStamp</a>;</div>
<div class="line"><a id="l00672" name="l00672"></a><span class="lineno"> 672</span> </div>
<div class="line"><a id="l00673" name="l00673"></a><span class="lineno"> 673</span> ptRootAgent-&gt;<a class="code hl_variable" href="struct____task__cycle__info__t.html#a8af024785267321e4ef544e7f25d80dc">tInfo</a>.<a class="code hl_variable" href="structtask__cycle__info__t.html#a0250b43cfb57ddf17f7f40c4cc587249">nUsedRecent</a> = lCycleUsed;</div>
<div class="line"><a id="l00674" name="l00674"></a><span class="lineno"> 674</span> ptRootAgent-&gt;<a class="code hl_variable" href="struct____task__cycle__info__t.html#a8af024785267321e4ef544e7f25d80dc">tInfo</a>.<a class="code hl_variable" href="structtask__cycle__info__t.html#a19a46cbd05039f568b01e326d65d6b80">lUsedTotal</a> += lCycleUsed;</div>
<div class="line"><a id="l00675" name="l00675"></a><span class="lineno"> 675</span> </div>
<div class="line"><a id="l00676" name="l00676"></a><span class="lineno"> 676</span> <span class="keywordflow">if</span> (<a class="code hl_define" href="perf__counter_8c.html#a5ed2b69d382ff960de71b5aa2e0b0deb">MAGIC_WORD_AGENT_LIST_VALID</a> == ptRootAgent-&gt;<a class="code hl_variable" href="struct____task__cycle__info__t.html#a88c8aad5ae23ae04fa44b2892081561b">wMagicWord</a>) {</div>
<div class="line"><a id="l00678" name="l00678"></a><span class="lineno"> 678</span> <a class="code hl_struct" href="structtask__cycle__info__agent__t.html">task_cycle_info_agent_t</a> *ptAgent = ptRootAgent-&gt;<a class="code hl_variable" href="struct____task__cycle__info__t.html#a7d50a2272c4a1b65f927e8c6d1242b33">tList</a>.<a class="code hl_variable" href="structtask__cycle__info__agent__t.html#a3f049d289ce99f316894417016d60ca6">ptNext</a>;</div>
<div class="line"><a id="l00679" name="l00679"></a><span class="lineno"> 679</span> <span class="keywordflow">while</span>(NULL != ptAgent) {</div>
<div class="line"><a id="l00680" name="l00680"></a><span class="lineno"> 680</span> <span class="keywordflow">if</span> (NULL != ptAgent-&gt;<a class="code hl_variable" href="structtask__cycle__info__agent__t.html#a26adda6b75d3722f450eb169546bd7e7">ptInfo</a>) {</div>
<div class="line"><a id="l00681" name="l00681"></a><span class="lineno"> 681</span> <span class="keywordflow">if</span> (ptAgent-&gt;<a class="code hl_variable" href="structtask__cycle__info__agent__t.html#a26adda6b75d3722f450eb169546bd7e7">ptInfo</a>-&gt;<a class="code hl_variable" href="structtask__cycle__info__t.html#a8a4c67264f8440bb83dec68c4312ff09">bEnabled</a>) {</div>
<div class="line"><a id="l00682" name="l00682"></a><span class="lineno"> 682</span> ptAgent-&gt;<a class="code hl_variable" href="structtask__cycle__info__agent__t.html#a26adda6b75d3722f450eb169546bd7e7">ptInfo</a>-&gt;<a class="code hl_variable" href="structtask__cycle__info__t.html#a0250b43cfb57ddf17f7f40c4cc587249">nUsedRecent</a> = lCycleUsed;</div>
<div class="line"><a id="l00683" name="l00683"></a><span class="lineno"> 683</span> ptAgent-&gt;<a class="code hl_variable" href="structtask__cycle__info__agent__t.html#a26adda6b75d3722f450eb169546bd7e7">ptInfo</a>-&gt;<a class="code hl_variable" href="structtask__cycle__info__t.html#a19a46cbd05039f568b01e326d65d6b80">lUsedTotal</a> += lCycleUsed;</div>
<div class="line"><a id="l00684" name="l00684"></a><span class="lineno"> 684</span> }</div>
<div class="line"><a id="l00685" name="l00685"></a><span class="lineno"> 685</span> }</div>
<div class="line"><a id="l00686" name="l00686"></a><span class="lineno"> 686</span> ptAgent = ptAgent-&gt;<a class="code hl_variable" href="structtask__cycle__info__agent__t.html#a3f049d289ce99f316894417016d60ca6">ptNext</a>;</div>
<div class="line"><a id="l00687" name="l00687"></a><span class="lineno"> 687</span> }</div>
<div class="line"><a id="l00688" name="l00688"></a><span class="lineno"> 688</span> }</div>
<div class="line"><a id="l00689" name="l00689"></a><span class="lineno"> 689</span>}</div>
<div class="line"><a id="l00690" name="l00690"></a><span class="lineno"> 690</span> </div>
<div class="line"><a id="l00691" name="l00691"></a><span class="lineno"><a class="line" href="perf__counter_8c.html#ad17c3ab8fb4c68ebc676562ab00770a1"> 691</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="perf__counter_8c.html#ad17c3ab8fb4c68ebc676562ab00770a1">__start_task_cycle_counter</a>(<a class="code hl_struct" href="structtask__cycle__info__t.html">task_cycle_info_t</a> *ptInfo)</div>
<div class="line"><a id="l00692" name="l00692"></a><span class="lineno"> 692</span>{</div>
<div class="line"><a id="l00693" name="l00693"></a><span class="lineno"> 693</span> <span class="keyword">struct </span><a class="code hl_struct" href="struct____task__cycle__info__t.html">__task_cycle_info_t</a> * ptRootAgent = </div>
<div class="line"><a id="l00694" name="l00694"></a><span class="lineno"> 694</span> (<span class="keyword">struct </span><a class="code hl_struct" href="struct____task__cycle__info__t.html">__task_cycle_info_t</a> *)<a class="code hl_function" href="perf__counter_8c.html#a87abe08a2093c8c69e5f813f565a1d31">get_rtos_task_cycle_info</a>();</div>
<div class="line"><a id="l00695" name="l00695"></a><span class="lineno"> 695</span> <span class="keywordflow">if</span> (NULL == ptRootAgent) {</div>
<div class="line"><a id="l00696" name="l00696"></a><span class="lineno"> 696</span> return ;</div>
<div class="line"><a id="l00697" name="l00697"></a><span class="lineno"> 697</span> }</div>
<div class="line"><a id="l00698" name="l00698"></a><span class="lineno"> 698</span> </div>
<div class="line"><a id="l00699" name="l00699"></a><span class="lineno"> 699</span> <a class="code hl_define" href="perf__counter_8h.html#a966a3eb20671a2a8c44d63d459f5472e">__IRQ_SAFE</a> {</div>
<div class="line"><a id="l00700" name="l00700"></a><span class="lineno"> 700</span> ptRootAgent-&gt;<a class="code hl_variable" href="struct____task__cycle__info__t.html#ae2aae11f91e3eea654ceeac9b81706cb">lLastTimeStamp</a> = <a class="code hl_function" href="perf__counter_8c.html#a32dabfe5b863f89f71735b20a0caf1ea">get_system_ticks</a>();</div>
<div class="line"><a id="l00701" name="l00701"></a><span class="lineno"> 701</span> ptRootAgent-&gt;<a class="code hl_variable" href="struct____task__cycle__info__t.html#a8af024785267321e4ef544e7f25d80dc">tInfo</a>.<a class="code hl_variable" href="structtask__cycle__info__t.html#a19a46cbd05039f568b01e326d65d6b80">lUsedTotal</a> = 0;</div>
<div class="line"><a id="l00702" name="l00702"></a><span class="lineno"> 702</span> </div>
<div class="line"><a id="l00703" name="l00703"></a><span class="lineno"> 703</span> <span class="keywordflow">if</span> (NULL != ptInfo) {</div>
<div class="line"><a id="l00704" name="l00704"></a><span class="lineno"> 704</span> ptInfo-&gt;<a class="code hl_variable" href="structtask__cycle__info__t.html#a19a46cbd05039f568b01e326d65d6b80">lUsedTotal</a> = 0;</div>
<div class="line"><a id="l00705" name="l00705"></a><span class="lineno"> 705</span> ptInfo-&gt;<a class="code hl_variable" href="structtask__cycle__info__t.html#a8a4c67264f8440bb83dec68c4312ff09">bEnabled</a> = <span class="keyword">true</span>;</div>
<div class="line"><a id="l00706" name="l00706"></a><span class="lineno"> 706</span> }</div>
<div class="line"><a id="l00707" name="l00707"></a><span class="lineno"> 707</span> }</div>
<div class="line"><a id="l00708" name="l00708"></a><span class="lineno"> 708</span>}</div>
<div class="line"><a id="l00709" name="l00709"></a><span class="lineno"> 709</span> </div>
<div class="line"><a id="l00710" name="l00710"></a><span class="lineno"> 710</span> </div>
<div class="line"><a id="l00711" name="l00711"></a><span class="lineno"><a class="line" href="perf__counter_8c.html#a81a5dabf3ca19922587390de6c9f0ff5"> 711</a></span>int64_t <a class="code hl_function" href="perf__counter_8c.html#a81a5dabf3ca19922587390de6c9f0ff5">__stop_task_cycle_counter</a>(<a class="code hl_struct" href="structtask__cycle__info__t.html">task_cycle_info_t</a> *ptInfo)</div>
<div class="line"><a id="l00712" name="l00712"></a><span class="lineno"> 712</span>{</div>
<div class="line"><a id="l00713" name="l00713"></a><span class="lineno"> 713</span> <span class="keyword">struct </span><a class="code hl_struct" href="struct____task__cycle__info__t.html">__task_cycle_info_t</a> * ptRootAgent = </div>
<div class="line"><a id="l00714" name="l00714"></a><span class="lineno"> 714</span> (<span class="keyword">struct </span><a class="code hl_struct" href="struct____task__cycle__info__t.html">__task_cycle_info_t</a> *)<a class="code hl_function" href="perf__counter_8c.html#a87abe08a2093c8c69e5f813f565a1d31">get_rtos_task_cycle_info</a>();</div>
<div class="line"><a id="l00715" name="l00715"></a><span class="lineno"> 715</span> <span class="keywordflow">if</span> (NULL == ptRootAgent) {</div>
<div class="line"><a id="l00716" name="l00716"></a><span class="lineno"> 716</span> <span class="keywordflow">return</span> 0;</div>
<div class="line"><a id="l00717" name="l00717"></a><span class="lineno"> 717</span> }</div>
<div class="line"><a id="l00718" name="l00718"></a><span class="lineno"> 718</span> </div>
<div class="line"><a id="l00719" name="l00719"></a><span class="lineno"> 719</span> int64_t lCycles = 0;</div>
<div class="line"><a id="l00720" name="l00720"></a><span class="lineno"> 720</span> </div>
<div class="line"><a id="l00721" name="l00721"></a><span class="lineno"> 721</span> <a class="code hl_define" href="perf__counter_8h.html#a966a3eb20671a2a8c44d63d459f5472e">__IRQ_SAFE</a> {</div>
<div class="line"><a id="l00722" name="l00722"></a><span class="lineno"> 722</span> int64_t lCycleUsed = <a class="code hl_function" href="perf__counter_8c.html#a32dabfe5b863f89f71735b20a0caf1ea">get_system_ticks</a>() - ptRootAgent-&gt;<a class="code hl_variable" href="struct____task__cycle__info__t.html#ae2aae11f91e3eea654ceeac9b81706cb">lLastTimeStamp</a>;</div>
<div class="line"><a id="l00723" name="l00723"></a><span class="lineno"> 723</span> ptRootAgent-&gt;<a class="code hl_variable" href="struct____task__cycle__info__t.html#a8af024785267321e4ef544e7f25d80dc">tInfo</a>.<a class="code hl_variable" href="structtask__cycle__info__t.html#a19a46cbd05039f568b01e326d65d6b80">lUsedTotal</a> += lCycleUsed;</div>
<div class="line"><a id="l00724" name="l00724"></a><span class="lineno"> 724</span> </div>
<div class="line"><a id="l00725" name="l00725"></a><span class="lineno"> 725</span> <span class="keywordflow">if</span> (NULL != ptInfo) {</div>
<div class="line"><a id="l00726" name="l00726"></a><span class="lineno"> 726</span> <span class="keywordflow">if</span> (ptInfo-&gt;<a class="code hl_variable" href="structtask__cycle__info__t.html#a8a4c67264f8440bb83dec68c4312ff09">bEnabled</a>) {</div>
<div class="line"><a id="l00727" name="l00727"></a><span class="lineno"> 727</span> ptInfo-&gt;<a class="code hl_variable" href="structtask__cycle__info__t.html#a0250b43cfb57ddf17f7f40c4cc587249">nUsedRecent</a> = lCycleUsed;</div>
<div class="line"><a id="l00728" name="l00728"></a><span class="lineno"> 728</span> ptInfo-&gt;<a class="code hl_variable" href="structtask__cycle__info__t.html#a19a46cbd05039f568b01e326d65d6b80">lUsedTotal</a> += lCycleUsed;</div>
<div class="line"><a id="l00729" name="l00729"></a><span class="lineno"> 729</span> ptInfo-&gt;<a class="code hl_variable" href="structtask__cycle__info__t.html#a8a4c67264f8440bb83dec68c4312ff09">bEnabled</a> = <span class="keyword">false</span>;</div>
<div class="line"><a id="l00730" name="l00730"></a><span class="lineno"> 730</span> }</div>
<div class="line"><a id="l00731" name="l00731"></a><span class="lineno"> 731</span> </div>
<div class="line"><a id="l00732" name="l00732"></a><span class="lineno"> 732</span> lCycles = ptInfo-&gt;<a class="code hl_variable" href="structtask__cycle__info__t.html#a19a46cbd05039f568b01e326d65d6b80">lUsedTotal</a>;</div>
<div class="line"><a id="l00733" name="l00733"></a><span class="lineno"> 733</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><a id="l00734" name="l00734"></a><span class="lineno"> 734</span> lCycles = ptRootAgent-&gt;<a class="code hl_variable" href="struct____task__cycle__info__t.html#a8af024785267321e4ef544e7f25d80dc">tInfo</a>.<a class="code hl_variable" href="structtask__cycle__info__t.html#a19a46cbd05039f568b01e326d65d6b80">lUsedTotal</a>;</div>
<div class="line"><a id="l00735" name="l00735"></a><span class="lineno"> 735</span> }</div>
<div class="line"><a id="l00736" name="l00736"></a><span class="lineno"> 736</span> }</div>
<div class="line"><a id="l00737" name="l00737"></a><span class="lineno"> 737</span> </div>
<div class="line"><a id="l00738" name="l00738"></a><span class="lineno"> 738</span> <span class="keywordflow">return</span> lCycles;</div>
<div class="line"><a id="l00739" name="l00739"></a><span class="lineno"> 739</span>}</div>
<div class="line"><a id="l00740" name="l00740"></a><span class="lineno"> 740</span> </div>
<div class="ttc" id="aperf__counter_8c_html_a014af75d3945894c4740773e8a28d723"><div class="ttname"><a href="perf__counter_8c.html#a014af75d3945894c4740773e8a28d723">stop_cycle_counter</a></div><div class="ttdeci">int32_t stop_cycle_counter(void)</div><div class="ttdoc">calculate the elapsed cycle count since the last start point</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00372">perf_counter.c:372</a></div></div>
<div class="ttc" id="aperf__counter_8c_html_a01d6cd52b6c48c1e0c8a68b48ad87b0c"><div class="ttname"><a href="perf__counter_8c.html#a01d6cd52b6c48c1e0c8a68b48ad87b0c">disable_task_cycle_info</a></div><div class="ttdeci">bool disable_task_cycle_info(task_cycle_info_t *ptInfo)</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00549">perf_counter.c:549</a></div></div>
<div class="ttc" id="aperf__counter_8c_html_a0a6e5160f19f152b0b9a502e5e24adb7"><div class="ttname"><a href="perf__counter_8c.html#a0a6e5160f19f152b0b9a502e5e24adb7">user_code_insert_to_systick_handler</a></div><div class="ttdeci">void user_code_insert_to_systick_handler(void)</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00233">perf_counter.c:233</a></div></div>
<div class="ttc" id="aperf__counter_8c_html_a0df8fe57dbd607e1992149a890612476"><div class="ttname"><a href="perf__counter_8c.html#a0df8fe57dbd607e1992149a890612476">register_task_cycle_agent</a></div><div class="ttdeci">task_cycle_info_agent_t * register_task_cycle_agent(task_cycle_info_t *ptInfo, task_cycle_info_agent_t *ptAgent)</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00572">perf_counter.c:572</a></div></div>
<div class="ttc" id="aperf__counter_8c_html_a0f17a2b1bde9a2632daa7ad0b96df9e5"><div class="ttname"><a href="perf__counter_8c.html#a0f17a2b1bde9a2632daa7ad0b96df9e5">PERF_CNT_COMPENSATION_THRESHOLD</a></div><div class="ttdeci">#define PERF_CNT_COMPENSATION_THRESHOLD</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00034">perf_counter.c:34</a></div></div>
<div class="ttc" id="aperf__counter_8c_html_a16c9fee0ed0235524bdeb38af328fd1f"><div class="ttname"><a href="perf__counter_8c.html#a16c9fee0ed0235524bdeb38af328fd1f">SysTick_CTRL_ENABLE_Msk</a></div><div class="ttdeci">#define SysTick_CTRL_ENABLE_Msk</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00082">perf_counter.c:82</a></div></div>
<div class="ttc" id="aperf__counter_8c_html_a21ccde78f8ad778f05be60855c5a8283"><div class="ttname"><a href="perf__counter_8c.html#a21ccde78f8ad778f05be60855c5a8283">check_systick</a></div><div class="ttdeci">__STATIC_INLINE int32_t check_systick(void)</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00332">perf_counter.c:332</a></div></div>
<div class="ttc" id="aperf__counter_8c_html_a265912a7962f0e1abd170336e579b1b1"><div class="ttname"><a href="perf__counter_8c.html#a265912a7962f0e1abd170336e579b1b1">SysTick_LOAD_RELOAD_Msk</a></div><div class="ttdeci">#define SysTick_LOAD_RELOAD_Msk</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00086">perf_counter.c:86</a></div></div>
<div class="ttc" id="aperf__counter_8c_html_a2add8ab5b23b568bba6d46f9c977dbce"><div class="ttname"><a href="perf__counter_8c.html#a2add8ab5b23b568bba6d46f9c977dbce">delay_ms</a></div><div class="ttdeci">void delay_ms(int32_t nMs)</div><div class="ttdoc">delay specified time in millisecond</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00417">perf_counter.c:417</a></div></div>
<div class="ttc" id="aperf__counter_8c_html_a32dabfe5b863f89f71735b20a0caf1ea"><div class="ttname"><a href="perf__counter_8c.html#a32dabfe5b863f89f71735b20a0caf1ea">get_system_ticks</a></div><div class="ttdeci">int64_t get_system_ticks(void)</div><div class="ttdoc">get the elapsed cycles since perf_counter is initialised</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00472">perf_counter.c:472</a></div></div>
<div class="ttc" id="aperf__counter_8c_html_a4781d1de67a0b4fd21656377d0a2a0bc"><div class="ttname"><a href="perf__counter_8c.html#a4781d1de67a0b4fd21656377d0a2a0bc">__perf_os_patch_init</a></div><div class="ttdeci">__WEAK void __perf_os_patch_init(void)</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00248">perf_counter.c:248</a></div></div>
<div class="ttc" id="aperf__counter_8c_html_a4cc1649793116d7c2d8afce7a4ffce43"><div class="ttname"><a href="perf__counter_8c.html#a4cc1649793116d7c2d8afce7a4ffce43">__IM</a></div><div class="ttdeci">#define __IM</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00059">perf_counter.c:59</a></div></div>
<div class="ttc" id="aperf__counter_8c_html_a5ed2b69d382ff960de71b5aa2e0b0deb"><div class="ttname"><a href="perf__counter_8c.html#a5ed2b69d382ff960de71b5aa2e0b0deb">MAGIC_WORD_AGENT_LIST_VALID</a></div><div class="ttdeci">#define MAGIC_WORD_AGENT_LIST_VALID</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00111">perf_counter.c:111</a></div></div>
<div class="ttc" id="aperf__counter_8c_html_a7325b61ea0ec323ef2d5c893b112e546"><div class="ttname"><a href="perf__counter_8c.html#a7325b61ea0ec323ef2d5c893b112e546">SCB_ICSR_PENDSTSET_Msk</a></div><div class="ttdeci">#define SCB_ICSR_PENDSTSET_Msk</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00108">perf_counter.c:108</a></div></div>
<div class="ttc" id="aperf__counter_8c_html_a74d7160e4b3588456a85fcdce6cee6ab"><div class="ttname"><a href="perf__counter_8c.html#a74d7160e4b3588456a85fcdce6cee6ab">init_task_cycle_counter</a></div><div class="ttdeci">void init_task_cycle_counter(void)</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00506">perf_counter.c:506</a></div></div>
<div class="ttc" id="aperf__counter_8c_html_a79c2926ae10e2cc327faf58e6094866d"><div class="ttname"><a href="perf__counter_8c.html#a79c2926ae10e2cc327faf58e6094866d">resume_task_cycle_info</a></div><div class="ttdeci">void resume_task_cycle_info(task_cycle_info_t *ptInfo, bool bEnabledStatus)</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00562">perf_counter.c:562</a></div></div>
<div class="ttc" id="aperf__counter_8c_html_a81a5dabf3ca19922587390de6c9f0ff5"><div class="ttname"><a href="perf__counter_8c.html#a81a5dabf3ca19922587390de6c9f0ff5">__stop_task_cycle_counter</a></div><div class="ttdeci">int64_t __stop_task_cycle_counter(task_cycle_info_t *ptInfo)</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00711">perf_counter.c:711</a></div></div>
<div class="ttc" id="aperf__counter_8c_html_a87abe08a2093c8c69e5f813f565a1d31"><div class="ttname"><a href="perf__counter_8c.html#a87abe08a2093c8c69e5f813f565a1d31">get_rtos_task_cycle_info</a></div><div class="ttdeci">__WEAK task_cycle_info_t * get_rtos_task_cycle_info(void)</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00501">perf_counter.c:501</a></div></div>
<div class="ttc" id="aperf__counter_8c_html_a9097d62a30ad2b4f75462c78d7200fa8"><div class="ttname"><a href="perf__counter_8c.html#a9097d62a30ad2b4f75462c78d7200fa8">init_cycle_counter</a></div><div class="ttdeci">void init_cycle_counter(bool bIsSysTickOccupied)</div><div class="ttdoc">initialise cycle counter service</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00280">perf_counter.c:280</a></div></div>
<div class="ttc" id="aperf__counter_8c_html_a95bb984266ca764024836a870238a027"><div class="ttname"><a href="perf__counter_8c.html#a95bb984266ca764024836a870238a027">SysTick_CTRL_TICKINT_Msk</a></div><div class="ttdeci">#define SysTick_CTRL_TICKINT_Msk</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00079">perf_counter.c:79</a></div></div>
<div class="ttc" id="aperf__counter_8c_html_a9776dfed871d0e0775c876f16e7618f7"><div class="ttname"><a href="perf__counter_8c.html#a9776dfed871d0e0775c876f16e7618f7">delay_us</a></div><div class="ttdeci">void delay_us(int32_t nUs)</div><div class="ttdoc">delay specified time in microsecond</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00398">perf_counter.c:398</a></div></div>
<div class="ttc" id="aperf__counter_8c_html_a98c51d83fdb448a2733d0a309366149c"><div class="ttname"><a href="perf__counter_8c.html#a98c51d83fdb448a2733d0a309366149c">get_system_ms</a></div><div class="ttdeci">int32_t get_system_ms(void)</div><div class="ttdoc">get the elapsed milliseconds since perf_counter is initialised</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00488">perf_counter.c:488</a></div></div>
<div class="ttc" id="aperf__counter_8c_html_aa3cd3e43291e81e795d642b79b6088e6"><div class="ttname"><a href="perf__counter_8c.html#aa3cd3e43291e81e795d642b79b6088e6">SystemCoreClock</a></div><div class="ttdeci">uint32_t SystemCoreClock</div></div>
<div class="ttc" id="aperf__counter_8c_html_aa41d06039797423a46596bd313d57373"><div class="ttname"><a href="perf__counter_8c.html#aa41d06039797423a46596bd313d57373">SysTick_CTRL_CLKSOURCE_Msk</a></div><div class="ttdeci">#define SysTick_CTRL_CLKSOURCE_Msk</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00076">perf_counter.c:76</a></div></div>
<div class="ttc" id="aperf__counter_8c_html_aaaf6477c2bde2f00f99e3c2fd1060b01"><div class="ttname"><a href="perf__counter_8c.html#aaaf6477c2bde2f00f99e3c2fd1060b01">SCB</a></div><div class="ttdeci">#define SCB</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00069">perf_counter.c:69</a></div></div>
<div class="ttc" id="aperf__counter_8c_html_ab241827d2a793269d8cd99b9b28c2157"><div class="ttname"><a href="perf__counter_8c.html#ab241827d2a793269d8cd99b9b28c2157">SCB_ICSR_PENDSTCLR_Msk</a></div><div class="ttdeci">#define SCB_ICSR_PENDSTCLR_Msk</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00105">perf_counter.c:105</a></div></div>
<div class="ttc" id="aperf__counter_8c_html_ab6caba5853a60a17e8e04499b52bf691"><div class="ttname"><a href="perf__counter_8c.html#ab6caba5853a60a17e8e04499b52bf691">__IOM</a></div><div class="ttdeci">#define __IOM</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00061">perf_counter.c:61</a></div></div>
<div class="ttc" id="aperf__counter_8c_html_acd6c9ac2bce565b27fef68a011411100"><div class="ttname"><a href="perf__counter_8c.html#acd6c9ac2bce565b27fef68a011411100">MAGIC_WORD_CANARY</a></div><div class="ttdeci">#define MAGIC_WORD_CANARY</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00112">perf_counter.c:112</a></div></div>
<div class="ttc" id="aperf__counter_8c_html_acd96c53beeaff8f603fcda425eb295de"><div class="ttname"><a href="perf__counter_8c.html#acd96c53beeaff8f603fcda425eb295de">SysTick</a></div><div class="ttdeci">#define SysTick</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00068">perf_counter.c:68</a></div></div>
<div class="ttc" id="aperf__counter_8c_html_ad17c3ab8fb4c68ebc676562ab00770a1"><div class="ttname"><a href="perf__counter_8c.html#ad17c3ab8fb4c68ebc676562ab00770a1">__start_task_cycle_counter</a></div><div class="ttdeci">void __start_task_cycle_counter(task_cycle_info_t *ptInfo)</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00691">perf_counter.c:691</a></div></div>
<div class="ttc" id="aperf__counter_8c_html_ad7332da0831148c773a7c5211d5bfa1e"><div class="ttname"><a href="perf__counter_8c.html#ad7332da0831148c773a7c5211d5bfa1e">PERF_CNT_DELAY_US_COMPENSATION</a></div><div class="ttdeci">#define PERF_CNT_DELAY_US_COMPENSATION</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00038">perf_counter.c:38</a></div></div>
<div class="ttc" id="aperf__counter_8c_html_aded00de9fbde9be7f8872f85685b36a4"><div class="ttname"><a href="perf__counter_8c.html#aded00de9fbde9be7f8872f85685b36a4">__on_context_switch_in</a></div><div class="ttdeci">void __on_context_switch_in(uint32_t *pwStack)</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00646">perf_counter.c:646</a></div></div>
<div class="ttc" id="aperf__counter_8c_html_ae2c015694f2e89240466e9b1d423c6ec"><div class="ttname"><a href="perf__counter_8c.html#ae2c015694f2e89240466e9b1d423c6ec">enable_task_cycle_info</a></div><div class="ttdeci">bool enable_task_cycle_info(task_cycle_info_t *ptInfo)</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00536">perf_counter.c:536</a></div></div>
<div class="ttc" id="aperf__counter_8c_html_ae4e8f0238527c69f522029b93c8e5b78"><div class="ttname"><a href="perf__counter_8c.html#ae4e8f0238527c69f522029b93c8e5b78">SysTick_Config</a></div><div class="ttdeci">__STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks)</div><div class="ttdoc">System Tick Configuration.</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00200">perf_counter.c:200</a></div></div>
<div class="ttc" id="aperf__counter_8c_html_ae8c905d7221a7299fba5edbbfe1f449f"><div class="ttname"><a href="perf__counter_8c.html#ae8c905d7221a7299fba5edbbfe1f449f">unregister_task_cycle_agent</a></div><div class="ttdeci">task_cycle_info_agent_t * unregister_task_cycle_agent(task_cycle_info_agent_t *ptAgent)</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00611">perf_counter.c:611</a></div></div>
<div class="ttc" id="aperf__counter_8c_html_aee2926404ade74811fa658786035f745"><div class="ttname"><a href="perf__counter_8c.html#aee2926404ade74811fa658786035f745">__on_context_switch_out</a></div><div class="ttdeci">void __on_context_switch_out(uint32_t *pwStack)</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00668">perf_counter.c:668</a></div></div>
<div class="ttc" id="aperf__counter_8c_html_af33fd92801223d4befa49c610332ddd4"><div class="ttname"><a href="perf__counter_8c.html#af33fd92801223d4befa49c610332ddd4">start_cycle_counter</a></div><div class="ttdeci">bool start_cycle_counter(void)</div><div class="ttdoc">try to set a start pointer for the performance counter</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00316">perf_counter.c:316</a></div></div>
<div class="ttc" id="aperf__counter_8c_html_af5404b4b72cfaf910fb2ebeb8d7a4448"><div class="ttname"><a href="perf__counter_8c.html#af5404b4b72cfaf910fb2ebeb8d7a4448">init_task_cycle_info</a></div><div class="ttdeci">task_cycle_info_t * init_task_cycle_info(task_cycle_info_t *ptInfo)</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00521">perf_counter.c:521</a></div></div>
<div class="ttc" id="aperf__counter_8h_html"><div class="ttname"><a href="perf__counter_8h.html">perf_counter.h</a></div></div>
<div class="ttc" id="aperf__counter_8h_html_a966a3eb20671a2a8c44d63d459f5472e"><div class="ttname"><a href="perf__counter_8h.html#a966a3eb20671a2a8c44d63d459f5472e">__IRQ_SAFE</a></div><div class="ttdeci">#define __IRQ_SAFE</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8h_source.html#l00264">perf_counter.h:264</a></div></div>
<div class="ttc" id="astruct____task__cycle__info__t_html"><div class="ttname"><a href="struct____task__cycle__info__t.html">__task_cycle_info_t</a></div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00161">perf_counter.c:161</a></div></div>
<div class="ttc" id="astruct____task__cycle__info__t_html_a7d50a2272c4a1b65f927e8c6d1242b33"><div class="ttname"><a href="struct____task__cycle__info__t.html#a7d50a2272c4a1b65f927e8c6d1242b33">__task_cycle_info_t::tList</a></div><div class="ttdeci">task_cycle_info_agent_t tList</div><div class="ttdoc">the root of the agent list</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00164">perf_counter.c:164</a></div></div>
<div class="ttc" id="astruct____task__cycle__info__t_html_a88c8aad5ae23ae04fa44b2892081561b"><div class="ttname"><a href="struct____task__cycle__info__t.html#a88c8aad5ae23ae04fa44b2892081561b">__task_cycle_info_t::wMagicWord</a></div><div class="ttdeci">uint32_t wMagicWord</div><div class="ttdoc">an magic word for validation</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00165">perf_counter.c:165</a></div></div>
<div class="ttc" id="astruct____task__cycle__info__t_html_a8af024785267321e4ef544e7f25d80dc"><div class="ttname"><a href="struct____task__cycle__info__t.html#a8af024785267321e4ef544e7f25d80dc">__task_cycle_info_t::tInfo</a></div><div class="ttdeci">task_cycle_info_t tInfo</div><div class="ttdoc">cycle information</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00162">perf_counter.c:162</a></div></div>
<div class="ttc" id="astruct____task__cycle__info__t_html_ae2aae11f91e3eea654ceeac9b81706cb"><div class="ttname"><a href="struct____task__cycle__info__t.html#ae2aae11f91e3eea654ceeac9b81706cb">__task_cycle_info_t::lLastTimeStamp</a></div><div class="ttdeci">int64_t lLastTimeStamp</div><div class="ttdoc">previous timestamp</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00163">perf_counter.c:163</a></div></div>
<div class="ttc" id="astruct_s_c_b___type_html"><div class="ttname"><a href="struct_s_c_b___type.html">SCB_Type</a></div><div class="ttdoc">Structure type to access the System Control Block (SCB).</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00131">perf_counter.c:132</a></div></div>
<div class="ttc" id="astruct_s_c_b___type_html_a0f9e27357254e6e953a94f95bda040b1"><div class="ttname"><a href="struct_s_c_b___type.html#a0f9e27357254e6e953a94f95bda040b1">SCB_Type::CFSR</a></div><div class="ttdeci">__IOM uint32_t CFSR</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00141">perf_counter.c:141</a></div></div>
<div class="ttc" id="astruct_s_c_b___type_html_a3b590075aa07880ce686d5cfb4e61c5c"><div class="ttname"><a href="struct_s_c_b___type.html#a3b590075aa07880ce686d5cfb4e61c5c">SCB_Type::DFSR</a></div><div class="ttdeci">__IOM uint32_t DFSR</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00143">perf_counter.c:143</a></div></div>
<div class="ttc" id="astruct_s_c_b___type_html_a3ef0057e48fdef798f2ee12125a80d9f"><div class="ttname"><a href="struct_s_c_b___type.html#a3ef0057e48fdef798f2ee12125a80d9f">SCB_Type::AFSR</a></div><div class="ttdeci">__IOM uint32_t AFSR</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00146">perf_counter.c:146</a></div></div>
<div class="ttc" id="astruct_s_c_b___type_html_a3fde073744418e2fe476333cb4d55d0d"><div class="ttname"><a href="struct_s_c_b___type.html#a3fde073744418e2fe476333cb4d55d0d">SCB_Type::BFAR</a></div><div class="ttdeci">__IOM uint32_t BFAR</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00145">perf_counter.c:145</a></div></div>
<div class="ttc" id="astruct_s_c_b___type_html_a44ad5c292dbd77e72f310902375a8a06"><div class="ttname"><a href="struct_s_c_b___type.html#a44ad5c292dbd77e72f310902375a8a06">SCB_Type::SHCSR</a></div><div class="ttdeci">__IOM uint32_t SHCSR</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00140">perf_counter.c:140</a></div></div>
<div class="ttc" id="astruct_s_c_b___type_html_a72572af6d5dece4947453aeabd52575f"><div class="ttname"><a href="struct_s_c_b___type.html#a72572af6d5dece4947453aeabd52575f">SCB_Type::ADR</a></div><div class="ttdeci">__IM uint32_t ADR</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00149">perf_counter.c:149</a></div></div>
<div class="ttc" id="astruct_s_c_b___type_html_a9b6ccd9c0c0865f8facad77ea37240b0"><div class="ttname"><a href="struct_s_c_b___type.html#a9b6ccd9c0c0865f8facad77ea37240b0">SCB_Type::AIRCR</a></div><div class="ttdeci">__IOM uint32_t AIRCR</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00136">perf_counter.c:136</a></div></div>
<div class="ttc" id="astruct_s_c_b___type_html_ab8e9dd6ca5f31244ea352ed0c19155d8"><div class="ttname"><a href="struct_s_c_b___type.html#ab8e9dd6ca5f31244ea352ed0c19155d8">SCB_Type::CPACR</a></div><div class="ttdeci">__IOM uint32_t CPACR</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00153">perf_counter.c:153</a></div></div>
<div class="ttc" id="astruct_s_c_b___type_html_ab974e7ceb2e52a3fbcaa84e06e52922d"><div class="ttname"><a href="struct_s_c_b___type.html#ab974e7ceb2e52a3fbcaa84e06e52922d">SCB_Type::HFSR</a></div><div class="ttdeci">__IOM uint32_t HFSR</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00142">perf_counter.c:142</a></div></div>
<div class="ttc" id="astruct_s_c_b___type_html_acac65f229cb3fcb5369a0a9e0393b8c0"><div class="ttname"><a href="struct_s_c_b___type.html#acac65f229cb3fcb5369a0a9e0393b8c0">SCB_Type::SCR</a></div><div class="ttdeci">__IOM uint32_t SCR</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00137">perf_counter.c:137</a></div></div>
<div class="ttc" id="astruct_s_c_b___type_html_aced895d6aba03d72b0d865fcc5ce44ee"><div class="ttname"><a href="struct_s_c_b___type.html#aced895d6aba03d72b0d865fcc5ce44ee">SCB_Type::ICSR</a></div><div class="ttdeci">__IOM uint32_t ICSR</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00134">perf_counter.c:134</a></div></div>
<div class="ttc" id="astruct_s_c_b___type_html_ad68b5c1f2d9845ef4247cf2d9b041336"><div class="ttname"><a href="struct_s_c_b___type.html#ad68b5c1f2d9845ef4247cf2d9b041336">SCB_Type::CCR</a></div><div class="ttdeci">__IOM uint32_t CCR</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00138">perf_counter.c:138</a></div></div>
<div class="ttc" id="astruct_s_c_b___type_html_adbf8292503748ba6421a523bdee6819d"><div class="ttname"><a href="struct_s_c_b___type.html#adbf8292503748ba6421a523bdee6819d">SCB_Type::CPUID</a></div><div class="ttdeci">__IM uint32_t CPUID</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00133">perf_counter.c:133</a></div></div>
<div class="ttc" id="astruct_s_c_b___type_html_ae2b3d4530d1b0c05593b634dc46348bd"><div class="ttname"><a href="struct_s_c_b___type.html#ae2b3d4530d1b0c05593b634dc46348bd">SCB_Type::DFR</a></div><div class="ttdeci">__IM uint32_t DFR</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00148">perf_counter.c:148</a></div></div>
<div class="ttc" id="astruct_s_c_b___type_html_ae457d2615e203c3d5904a43a1bc9df71"><div class="ttname"><a href="struct_s_c_b___type.html#ae457d2615e203c3d5904a43a1bc9df71">SCB_Type::VTOR</a></div><div class="ttdeci">__IOM uint32_t VTOR</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00135">perf_counter.c:135</a></div></div>
<div class="ttc" id="astruct_s_c_b___type_html_ae9d94d186615d57d38c9253cb842d244"><div class="ttname"><a href="struct_s_c_b___type.html#ae9d94d186615d57d38c9253cb842d244">SCB_Type::MMFAR</a></div><div class="ttdeci">__IOM uint32_t MMFAR</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00144">perf_counter.c:144</a></div></div>
<div class="ttc" id="astruct_sys_tick___type_html"><div class="ttname"><a href="struct_sys_tick___type.html">SysTick_Type</a></div><div class="ttdoc">Structure type to access the System Timer (SysTick).</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00120">perf_counter.c:121</a></div></div>
<div class="ttc" id="astruct_sys_tick___type_html_a0c1333686137b7e25a46bd548a5b5bc3"><div class="ttname"><a href="struct_sys_tick___type.html#a0c1333686137b7e25a46bd548a5b5bc3">SysTick_Type::LOAD</a></div><div class="ttdeci">__IOM uint32_t LOAD</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00123">perf_counter.c:123</a></div></div>
<div class="ttc" id="astruct_sys_tick___type_html_ac81efc171e9852a36caeb47122bfec5b"><div class="ttname"><a href="struct_sys_tick___type.html#ac81efc171e9852a36caeb47122bfec5b">SysTick_Type::CTRL</a></div><div class="ttdeci">__IOM uint32_t CTRL</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00122">perf_counter.c:122</a></div></div>
<div class="ttc" id="astruct_sys_tick___type_html_ae7a655a853654127f3dfb7fa32c3f457"><div class="ttname"><a href="struct_sys_tick___type.html#ae7a655a853654127f3dfb7fa32c3f457">SysTick_Type::VAL</a></div><div class="ttdeci">__IOM uint32_t VAL</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00124">perf_counter.c:124</a></div></div>
<div class="ttc" id="astruct_sys_tick___type_html_aedf0dff29a9cacdaa2fb7eec6b116a13"><div class="ttname"><a href="struct_sys_tick___type.html#aedf0dff29a9cacdaa2fb7eec6b116a13">SysTick_Type::CALIB</a></div><div class="ttdeci">__IM uint32_t CALIB</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00125">perf_counter.c:125</a></div></div>
<div class="ttc" id="astructtask__cycle__info__agent__t_html"><div class="ttname"><a href="structtask__cycle__info__agent__t.html">task_cycle_info_agent_t</a></div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8h_source.html#l00337">perf_counter.h:337</a></div></div>
<div class="ttc" id="astructtask__cycle__info__agent__t_html_a0ab0ef208ec46b60dce3d05a76754931"><div class="ttname"><a href="structtask__cycle__info__agent__t.html#a0ab0ef208ec46b60dce3d05a76754931">task_cycle_info_agent_t::ptPrev</a></div><div class="ttdeci">task_cycle_info_agent_t * ptPrev</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8h_source.html#l00340">perf_counter.h:340</a></div></div>
<div class="ttc" id="astructtask__cycle__info__agent__t_html_a26adda6b75d3722f450eb169546bd7e7"><div class="ttname"><a href="structtask__cycle__info__agent__t.html#a26adda6b75d3722f450eb169546bd7e7">task_cycle_info_agent_t::ptInfo</a></div><div class="ttdeci">task_cycle_info_t * ptInfo</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8h_source.html#l00338">perf_counter.h:338</a></div></div>
<div class="ttc" id="astructtask__cycle__info__agent__t_html_a3f049d289ce99f316894417016d60ca6"><div class="ttname"><a href="structtask__cycle__info__agent__t.html#a3f049d289ce99f316894417016d60ca6">task_cycle_info_agent_t::ptNext</a></div><div class="ttdeci">task_cycle_info_agent_t * ptNext</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8h_source.html#l00339">perf_counter.h:339</a></div></div>
<div class="ttc" id="astructtask__cycle__info__t_html"><div class="ttname"><a href="structtask__cycle__info__t.html">task_cycle_info_t</a></div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8h_source.html#l00326">perf_counter.h:326</a></div></div>
<div class="ttc" id="astructtask__cycle__info__t_html_a0250b43cfb57ddf17f7f40c4cc587249"><div class="ttname"><a href="structtask__cycle__info__t.html#a0250b43cfb57ddf17f7f40c4cc587249">task_cycle_info_t::nUsedRecent</a></div><div class="ttdeci">int32_t nUsedRecent</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8h_source.html#l00329">perf_counter.h:329</a></div></div>
<div class="ttc" id="astructtask__cycle__info__t_html_a19a46cbd05039f568b01e326d65d6b80"><div class="ttname"><a href="structtask__cycle__info__t.html#a19a46cbd05039f568b01e326d65d6b80">task_cycle_info_t::lUsedTotal</a></div><div class="ttdeci">int64_t lUsedTotal</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8h_source.html#l00328">perf_counter.h:328</a></div></div>
<div class="ttc" id="astructtask__cycle__info__t_html_a3b941eea48497afb204462c694bc2d12"><div class="ttname"><a href="structtask__cycle__info__t.html#a3b941eea48497afb204462c694bc2d12">task_cycle_info_t::lStart</a></div><div class="ttdeci">int64_t lStart</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8h_source.html#l00327">perf_counter.h:327</a></div></div>
<div class="ttc" id="astructtask__cycle__info__t_html_a84d3729a2d49dd2e43ef8727fcd6f9b0"><div class="ttname"><a href="structtask__cycle__info__t.html#a84d3729a2d49dd2e43ef8727fcd6f9b0">task_cycle_info_t::hwActiveCount</a></div><div class="ttdeci">uint16_t hwActiveCount</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8h_source.html#l00330">perf_counter.h:330</a></div></div>
<div class="ttc" id="astructtask__cycle__info__t_html_a8a4c67264f8440bb83dec68c4312ff09"><div class="ttname"><a href="structtask__cycle__info__t.html#a8a4c67264f8440bb83dec68c4312ff09">task_cycle_info_t::bEnabled</a></div><div class="ttdeci">uint16_t bEnabled</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8h_source.html#l00332">perf_counter.h:332</a></div></div>
</div><!-- fragment --></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="perf__counter_8c.html">perf_counter.c</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.4 </li>
</ul>
</div>
</body>
</html>

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,67 @@
var perf__counter_8h =
[
[ "task_cycle_info_t", "structtask__cycle__info__t.html", "structtask__cycle__info__t" ],
[ "task_cycle_info_agent_t", "structtask__cycle__info__agent__t.html", "structtask__cycle__info__agent__t" ],
[ "__CONNECT2", "perf__counter_8h.html#ae490fc8ce9ed8d7853ab956e76ebf1b8", null ],
[ "__CONNECT3", "perf__counter_8h.html#af40f44eb68f59549a3e5d6c91429c3c9", null ],
[ "__CONNECT4", "perf__counter_8h.html#ade59615465df27344e32b05c3629ef03", null ],
[ "__CONNECT5", "perf__counter_8h.html#ab6fd44a39b7fdd5c8c3b7309992e1a00", null ],
[ "__CONNECT6", "perf__counter_8h.html#ae2d17b539ab98e8b0435fce5d8aff2b4", null ],
[ "__CONNECT7", "perf__counter_8h.html#a2b3247f9df3a6702c90468722994bf49", null ],
[ "__CONNECT8", "perf__counter_8h.html#a798b1c8c5d91763e99d63fc7c326dead", null ],
[ "__CONNECT9", "perf__counter_8h.html#a78dee228d830879c65edae8392fbf159", null ],
[ "__cycleof__", "perf__counter_8h.html#a147d3eb2e96136dc1758aa8d3e2a089c", null ],
[ "__IRQ_SAFE", "perf__counter_8h.html#a966a3eb20671a2a8c44d63d459f5472e", null ],
[ "__MACRO_EXPANDING", "perf__counter_8h.html#a39273cdd59b6f17525f429d61f242a73", null ],
[ "__PER_COUNTER_VER__", "perf__counter_8h.html#a41124119fd6c23775692729a2ec26d71", null ],
[ "__PERF_COUNTER_VER_MAJOR__", "perf__counter_8h.html#a2e49e3ac701e3e087719d74f2a4ef840", null ],
[ "__PERF_COUNTER_VER_MINOR__", "perf__counter_8h.html#adb870e7ae89ad2c5c7aeb70ba16eeaf6", null ],
[ "__PERF_COUNTER_VER_REVISE__", "perf__counter_8h.html#a62d05224187a7f224d1803a64951cf3f", null ],
[ "__PERF_COUNTER_VER_STR__", "perf__counter_8h.html#afc04dcb2bf83faaf5b14559d632c6b19", null ],
[ "__PLOOC_VA_NUM_ARGS", "perf__counter_8h.html#a9d1c7b8467fca7e2fcf0426ef294a171", null ],
[ "__PLOOC_VA_NUM_ARGS_IMPL", "perf__counter_8h.html#adb244281cf7a9410d7dc12823e105d02", null ],
[ "__super_loop_monitor__", "perf__counter_8h.html#acfa3bf174dd68eeca5c7e4a16cdc24ea", null ],
[ "__using1", "perf__counter_8h.html#ac489b777985cc6133a3658d95dd424e1", null ],
[ "__using2", "perf__counter_8h.html#af2456eddcc03ba108e670a583367342e", null ],
[ "__using3", "perf__counter_8h.html#a3447ab4da15b7a4e81830839202ee0be", null ],
[ "__using4", "perf__counter_8h.html#a1a10811d7e12a6be9be6ccdf1ef824e8", null ],
[ "__with2", "perf__counter_8h.html#a7e7af9eb2708d17ce5ec5ea01cb914f1", null ],
[ "__with3", "perf__counter_8h.html#aafef7ac0d7697d31814ff152d9eae0cc", null ],
[ "ALT_CONNECT2", "perf__counter_8h.html#ac8f325950e08c3662d3c94233cf40e13", null ],
[ "CONNECT", "perf__counter_8h.html#a1409defa6d3e973b7efee74d2de7386d", null ],
[ "CONNECT2", "perf__counter_8h.html#ae0db1f91522f0c020e1068d8bb2034cb", null ],
[ "CONNECT3", "perf__counter_8h.html#a3994906c1038cf4f04e9578079429555", null ],
[ "CONNECT4", "perf__counter_8h.html#a4be8346e8c8e544e3dc4da819f03d636", null ],
[ "CONNECT5", "perf__counter_8h.html#a397bd70fecd355461d99b228d02d01f8", null ],
[ "CONNECT6", "perf__counter_8h.html#a3bbbfb88c43244289b9a4e4521caf7cb", null ],
[ "CONNECT7", "perf__counter_8h.html#a8deb36935d07c69646a26993ab15328a", null ],
[ "CONNECT8", "perf__counter_8h.html#a9ce80b30ee8f4bb424c23f785b3481b8", null ],
[ "CONNECT9", "perf__counter_8h.html#a67d6d69c5ea260de9bdf81edf9672af3", null ],
[ "dimof", "perf__counter_8h.html#a7b6c484887a402bba1af11b457264553", null ],
[ "disable_task_cycle_info", "perf__counter_8h.html#af3fceb4da6cc89dd20a874bd147c2414", null ],
[ "enable_task_cycle_info", "perf__counter_8h.html#a96f0ed25511e535714003ec4ca738415", null ],
[ "foreach", "perf__counter_8h.html#a623a729e6571efedb0c5528689d6120d", null ],
[ "foreach2", "perf__counter_8h.html#ac4e7ceea5fc047d059b6b1898a697cb4", null ],
[ "foreach3", "perf__counter_8h.html#a2c93a7704596f19ff84cbfec513c3a5a", null ],
[ "init_task_cycle_counter", "perf__counter_8h.html#a00278751616ee5d95ce4bea4ffb59ce7", null ],
[ "init_task_cycle_info", "perf__counter_8h.html#a607df0241b0f85868159e1e15f44acdc", null ],
[ "register_task_cycle_agent", "perf__counter_8h.html#a11d20291b945175264a568c4c9dcd9bd", null ],
[ "resume_task_cycle_info", "perf__counter_8h.html#a06e00a5b710c5144aa756c1905c12fcf", null ],
[ "safe_atom_code", "perf__counter_8h.html#a1616b4eef4bbd94969a9010c4114b488", null ],
[ "SAFE_NAME", "perf__counter_8h.html#af2d5b85528ace8bbe8954d1ece9a3c51", null ],
[ "start_task_cycle_counter", "perf__counter_8h.html#ab84fa299db0fc4c0a897eb0a3aab6233", null ],
[ "stop_task_cycle_counter", "perf__counter_8h.html#ad9e3470ff82262ac6daca041607c31da", null ],
[ "unregister_task_cycle_agent", "perf__counter_8h.html#afdd7c2e511c981ad62525076f53a762e", null ],
[ "UNUSED_PARAM", "perf__counter_8h.html#a4e95e8dc0d6a7f273a26c9e4bc239f83", null ],
[ "using", "perf__counter_8h.html#ad90955bd356a41041a7dcb112a450766", null ],
[ "with", "perf__counter_8h.html#afc5b077f9764ca6f11075ce72357dd65", null ],
[ "task_cycle_info_agent_t", "perf__counter_8h.html#ac118677bc3eb6a806eb1381d656b6c25", null ],
[ "delay_ms", "perf__counter_8h.html#a2add8ab5b23b568bba6d46f9c977dbce", null ],
[ "delay_us", "perf__counter_8h.html#a9776dfed871d0e0775c876f16e7618f7", null ],
[ "get_system_ms", "perf__counter_8h.html#a98c51d83fdb448a2733d0a309366149c", null ],
[ "get_system_ticks", "perf__counter_8h.html#a32dabfe5b863f89f71735b20a0caf1ea", null ],
[ "init_cycle_counter", "perf__counter_8h.html#a9097d62a30ad2b4f75462c78d7200fa8", null ],
[ "start_cycle_counter", "perf__counter_8h.html#af33fd92801223d4befa49c610332ddd4", null ],
[ "stop_cycle_counter", "perf__counter_8h.html#a014af75d3945894c4740773e8a28d723", null ],
[ "user_code_insert_to_systick_handler", "perf__counter_8h.html#a0a6e5160f19f152b0b9a502e5e24adb7", null ]
];

View File

@ -0,0 +1,556 @@
<!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=11"/>
<meta name="generator" content="Doxygen 1.9.4"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>perf_counter: perf_counter.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 id="projectrow">
<td id="projectalign">
<div id="projectname">perf_counter
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.4 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @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:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(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:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('perf__counter_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">perf_counter.h</div></div>
</div><!--header-->
<div class="contents">
<a href="perf__counter_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="comment">/****************************************************************************</span></div>
<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span><span class="comment">* Copyright 2022 Gorgon Meducer (Email:embedded_zhuoran@hotmail.com) *</span></div>
<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span><span class="comment">* *</span></div>
<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span><span class="comment">* Licensed under the Apache License, Version 2.0 (the &quot;License&quot;); *</span></div>
<div class="line"><a id="l00005" name="l00005"></a><span class="lineno"> 5</span><span class="comment">* you may not use this file except in compliance with the License. *</span></div>
<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span><span class="comment">* You may obtain a copy of the License at *</span></div>
<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span><span class="comment">* *</span></div>
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span><span class="comment">* http://www.apache.org/licenses/LICENSE-2.0 *</span></div>
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span><span class="comment">* *</span></div>
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span><span class="comment">* Unless required by applicable law or agreed to in writing, software *</span></div>
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span><span class="comment">* distributed under the License is distributed on an &quot;AS IS&quot; BASIS, *</span></div>
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="comment">* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. *</span></div>
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="comment">* See the License for the specific language governing permissions and *</span></div>
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span><span class="comment">* limitations under the License. *</span></div>
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span><span class="comment">* *</span></div>
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span><span class="comment">****************************************************************************/</span></div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span> </div>
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span><span class="preprocessor">#ifndef __PERFORMANCE_COUNTER_H__</span></div>
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span><span class="preprocessor">#define __PERFORMANCE_COUNTER_H__</span></div>
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span> </div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span><span class="comment">/*============================ INCLUDES ======================================*/</span></div>
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span><span class="preprocessor">#include &lt;stdbool.h&gt;</span></div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span><span class="preprocessor">#include &lt;stdint.h&gt;</span></div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span><span class="preprocessor">#include &lt;stddef.h&gt;</span></div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span><span class="preprocessor">#include &quot;cmsis_compiler.h&quot;</span></div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> </div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span><span class="preprocessor">#ifdef __cplusplus</span></div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span><span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> {</div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span><span class="comment">/*============================ MACROS ========================================*/</span></div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span> </div>
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"><a class="line" href="perf__counter_8h.html#a2e49e3ac701e3e087719d74f2a4ef840"> 32</a></span><span class="preprocessor">#define __PERF_COUNTER_VER_MAJOR__ 1</span></div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"><a class="line" href="perf__counter_8h.html#adb870e7ae89ad2c5c7aeb70ba16eeaf6"> 33</a></span><span class="preprocessor">#define __PERF_COUNTER_VER_MINOR__ 9</span></div>
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"><a class="line" href="perf__counter_8h.html#a62d05224187a7f224d1803a64951cf3f"> 34</a></span><span class="preprocessor">#define __PERF_COUNTER_VER_REVISE__ 5</span></div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> </div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"><a class="line" href="perf__counter_8h.html#afc04dcb2bf83faaf5b14559d632c6b19"> 36</a></span><span class="preprocessor">#define __PERF_COUNTER_VER_STR__ &quot;dev&quot;</span></div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> </div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"><a class="line" href="perf__counter_8h.html#a41124119fd6c23775692729a2ec26d71"> 38</a></span><span class="preprocessor">#define __PER_COUNTER_VER__ (__PERF_COUNTER_VER_MAJOR__ * 10000ul \</span></div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span><span class="preprocessor"> +__PERF_COUNTER_VER_MINOR__ * 100ul \</span></div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span><span class="preprocessor"> +__PERF_COUNTER_VER_REVISE__)</span></div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> </div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span> </div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span><span class="preprocessor">#undef __IS_COMPILER_IAR__</span></div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span><span class="preprocessor">#if defined(__IAR_SYSTEMS_ICC__)</span></div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span><span class="preprocessor"># define __IS_COMPILER_IAR__ 1</span></div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span> </div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span><span class="preprocessor">#undef __IS_COMPILER_ARM_COMPILER_5__</span></div>
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span><span class="preprocessor">#if ((__ARMCC_VERSION &gt;= 5000000) &amp;&amp; (__ARMCC_VERSION &lt; 6000000))</span></div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span><span class="preprocessor"># define __IS_COMPILER_ARM_COMPILER_5__ 1</span></div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> </div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> </div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span><span class="preprocessor">#undef __IS_COMPILER_ARM_COMPILER_6__</span></div>
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span><span class="preprocessor">#if defined(__ARMCC_VERSION) &amp;&amp; (__ARMCC_VERSION &gt;= 6010050)</span></div>
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span><span class="preprocessor"># define __IS_COMPILER_ARM_COMPILER_6__ 1</span></div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span> </div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span><span class="preprocessor">#undef __IS_COMPILER_ARM_COMPILER__</span></div>
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span><span class="preprocessor">#if defined(__IS_COMPILER_ARM_COMPILER_5__) &amp;&amp; __IS_COMPILER_ARM_COMPILER_5__ \</span></div>
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span><span class="preprocessor">|| defined(__IS_COMPILER_ARM_COMPILER_6__) &amp;&amp; __IS_COMPILER_ARM_COMPILER_6__</span></div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span> </div>
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span><span class="preprocessor"># define __IS_COMPILER_ARM_COMPILER__ 1</span></div>
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span> </div>
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span> </div>
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span> </div>
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span><span class="preprocessor">#undef __IS_COMPILER_LLVM__</span></div>
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span><span class="preprocessor">#if defined(__clang__) &amp;&amp; !__IS_COMPILER_ARM_COMPILER_6__</span></div>
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span><span class="preprocessor"># define __IS_COMPILER_LLVM__ 1</span></div>
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span><span class="preprocessor">#else</span></div>
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span><span class="preprocessor"># undef __IS_COMPILER_GCC__</span></div>
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span><span class="preprocessor"># if defined(__GNUC__) &amp;&amp; !( defined(__IS_COMPILER_ARM_COMPILER__) \</span></div>
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span><span class="preprocessor"> || defined(__IS_COMPILER_LLVM__) \</span></div>
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span><span class="preprocessor"> || defined(__IS_COMPILER_IAR__))</span></div>
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span><span class="preprocessor"># define __IS_COMPILER_GCC__ 1</span></div>
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span><span class="preprocessor"># endif</span></div>
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span> </div>
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span><span class="preprocessor">#if defined(__clang__)</span></div>
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span><span class="preprocessor"># pragma clang diagnostic push</span></div>
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span><span class="preprocessor"># pragma clang diagnostic ignored &quot;-Wunknown-warning-option&quot;</span></div>
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span><span class="preprocessor"># pragma clang diagnostic ignored &quot;-Wreserved-identifier&quot;</span></div>
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span><span class="preprocessor"># pragma clang diagnostic ignored &quot;-Wdeclaration-after-statement&quot;</span></div>
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span><span class="preprocessor"># pragma clang diagnostic ignored &quot;-Wgnu-zero-variadic-macro-arguments&quot;</span></div>
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span><span class="preprocessor"># pragma clang diagnostic ignored &quot;-Wgnu-statement-expression&quot;</span></div>
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span><span class="preprocessor"># pragma clang diagnostic ignored &quot;-Wunused-but-set-variable&quot;</span></div>
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span><span class="preprocessor"># pragma clang diagnostic ignored &quot;-Wshadow&quot;</span></div>
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span><span class="preprocessor"># pragma clang diagnostic ignored &quot;-Wshorten-64-to-32&quot;</span></div>
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span><span class="preprocessor"># pragma clang diagnostic ignored &quot;-Wcompound-token-split-by-macro&quot;</span></div>
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span><span class="preprocessor">#elif defined(__IS_COMPILER_ARM_COMPILER_5__)</span></div>
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span><span class="preprocessor"># pragma diag_suppress 550</span></div>
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span><span class="preprocessor">#elif defined(__IS_COMPILER_GCC__)</span></div>
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span><span class="preprocessor"># pragma GCC diagnostic push</span></div>
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span><span class="preprocessor"># pragma GCC diagnostic ignored &quot;-Wpedantic&quot;</span></div>
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span><span class="preprocessor"># pragma GCC diagnostic ignored &quot;-Wunused-variable&quot;</span></div>
<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"> 106</span><span class="preprocessor"># pragma GCC diagnostic ignored &quot;-Wunused-but-set-variable&quot;</span></div>
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span><span class="preprocessor"># pragma GCC diagnostic ignored &quot;-Wformat=&quot;</span></div>
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span> </div>
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span><span class="preprocessor">#ifndef __PLOOC_VA_NUM_ARGS_IMPL</span></div>
<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"><a class="line" href="perf__counter_8h.html#adb244281cf7a9410d7dc12823e105d02"> 111</a></span><span class="preprocessor"># define __PLOOC_VA_NUM_ARGS_IMPL( _0,_1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11, \</span></div>
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span><span class="preprocessor"> _12,_13,_14,_15,_16,__N,...) __N</span></div>
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span> </div>
<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span><span class="preprocessor">#ifndef __PLOOC_VA_NUM_ARGS</span></div>
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"><a class="line" href="perf__counter_8h.html#a9d1c7b8467fca7e2fcf0426ef294a171"> 116</a></span><span class="preprocessor">#define __PLOOC_VA_NUM_ARGS(...) \</span></div>
<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"> 117</span><span class="preprocessor"> __PLOOC_VA_NUM_ARGS_IMPL( 0,##__VA_ARGS__,16,15,14,13,12,11,10,9, \</span></div>
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</span><span class="preprocessor"> 8,7,6,5,4,3,2,1,0)</span></div>
<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"> 119</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00120" name="l00120"></a><span class="lineno"> 120</span> </div>
<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</span><span class="preprocessor">#ifndef UNUSED_PARAM</span></div>
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"><a class="line" href="perf__counter_8h.html#a4e95e8dc0d6a7f273a26c9e4bc239f83"> 122</a></span><span class="preprocessor"># define UNUSED_PARAM(__VAR) (void)(__VAR)</span></div>
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span> </div>
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span><span class="preprocessor">#undef __CONNECT2</span></div>
<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span><span class="preprocessor">#undef __CONNECT3</span></div>
<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"> 127</span><span class="preprocessor">#undef __CONNECT4</span></div>
<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span><span class="preprocessor">#undef __CONNECT5</span></div>
<div class="line"><a id="l00129" name="l00129"></a><span class="lineno"> 129</span><span class="preprocessor">#undef __CONNECT6</span></div>
<div class="line"><a id="l00130" name="l00130"></a><span class="lineno"> 130</span><span class="preprocessor">#undef __CONNECT7</span></div>
<div class="line"><a id="l00131" name="l00131"></a><span class="lineno"> 131</span><span class="preprocessor">#undef __CONNECT8</span></div>
<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"> 132</span><span class="preprocessor">#undef __CONNECT9</span></div>
<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"> 133</span> </div>
<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"> 134</span><span class="preprocessor">#undef CONNECT2</span></div>
<div class="line"><a id="l00135" name="l00135"></a><span class="lineno"> 135</span><span class="preprocessor">#undef CONNECT3</span></div>
<div class="line"><a id="l00136" name="l00136"></a><span class="lineno"> 136</span><span class="preprocessor">#undef CONNECT4</span></div>
<div class="line"><a id="l00137" name="l00137"></a><span class="lineno"> 137</span><span class="preprocessor">#undef CONNECT5</span></div>
<div class="line"><a id="l00138" name="l00138"></a><span class="lineno"> 138</span><span class="preprocessor">#undef CONNECT6</span></div>
<div class="line"><a id="l00139" name="l00139"></a><span class="lineno"> 139</span><span class="preprocessor">#undef CONNECT7</span></div>
<div class="line"><a id="l00140" name="l00140"></a><span class="lineno"> 140</span><span class="preprocessor">#undef CONNECT8</span></div>
<div class="line"><a id="l00141" name="l00141"></a><span class="lineno"> 141</span><span class="preprocessor">#undef CONNECT9</span></div>
<div class="line"><a id="l00142" name="l00142"></a><span class="lineno"> 142</span> </div>
<div class="line"><a id="l00143" name="l00143"></a><span class="lineno"> 143</span><span class="preprocessor">#undef CONNECT</span></div>
<div class="line"><a id="l00144" name="l00144"></a><span class="lineno"> 144</span> </div>
<div class="line"><a id="l00145" name="l00145"></a><span class="lineno"> 145</span><span class="preprocessor">#undef __MACRO_EXPANDING</span></div>
<div class="line"><a id="l00146" name="l00146"></a><span class="lineno"><a class="line" href="perf__counter_8h.html#a39273cdd59b6f17525f429d61f242a73"> 146</a></span><span class="preprocessor">#define __MACRO_EXPANDING(...) __VA_ARGS__</span></div>
<div class="line"><a id="l00147" name="l00147"></a><span class="lineno"> 147</span> </div>
<div class="line"><a id="l00148" name="l00148"></a><span class="lineno"><a class="line" href="perf__counter_8h.html#ae490fc8ce9ed8d7853ab956e76ebf1b8"> 148</a></span><span class="preprocessor">#define __CONNECT2(__A, __B) __A##__B</span></div>
<div class="line"><a id="l00149" name="l00149"></a><span class="lineno"><a class="line" href="perf__counter_8h.html#af40f44eb68f59549a3e5d6c91429c3c9"> 149</a></span><span class="preprocessor">#define __CONNECT3(__A, __B, __C) __A##__B##__C</span></div>
<div class="line"><a id="l00150" name="l00150"></a><span class="lineno"><a class="line" href="perf__counter_8h.html#ade59615465df27344e32b05c3629ef03"> 150</a></span><span class="preprocessor">#define __CONNECT4(__A, __B, __C, __D) __A##__B##__C##__D</span></div>
<div class="line"><a id="l00151" name="l00151"></a><span class="lineno"><a class="line" href="perf__counter_8h.html#ab6fd44a39b7fdd5c8c3b7309992e1a00"> 151</a></span><span class="preprocessor">#define __CONNECT5(__A, __B, __C, __D, __E) __A##__B##__C##__D##__E</span></div>
<div class="line"><a id="l00152" name="l00152"></a><span class="lineno"><a class="line" href="perf__counter_8h.html#ae2d17b539ab98e8b0435fce5d8aff2b4"> 152</a></span><span class="preprocessor">#define __CONNECT6(__A, __B, __C, __D, __E, __F) __A##__B##__C##__D##__E##__F</span></div>
<div class="line"><a id="l00153" name="l00153"></a><span class="lineno"><a class="line" href="perf__counter_8h.html#a2b3247f9df3a6702c90468722994bf49"> 153</a></span><span class="preprocessor">#define __CONNECT7(__A, __B, __C, __D, __E, __F, __G) \</span></div>
<div class="line"><a id="l00154" name="l00154"></a><span class="lineno"> 154</span><span class="preprocessor"> __A##__B##__C##__D##__E##__F##__G</span></div>
<div class="line"><a id="l00155" name="l00155"></a><span class="lineno"><a class="line" href="perf__counter_8h.html#a798b1c8c5d91763e99d63fc7c326dead"> 155</a></span><span class="preprocessor">#define __CONNECT8(__A, __B, __C, __D, __E, __F, __G, __H) \</span></div>
<div class="line"><a id="l00156" name="l00156"></a><span class="lineno"> 156</span><span class="preprocessor"> __A##__B##__C##__D##__E##__F##__G##__H</span></div>
<div class="line"><a id="l00157" name="l00157"></a><span class="lineno"><a class="line" href="perf__counter_8h.html#a78dee228d830879c65edae8392fbf159"> 157</a></span><span class="preprocessor">#define __CONNECT9(__A, __B, __C, __D, __E, __F, __G, __H, __I) \</span></div>
<div class="line"><a id="l00158" name="l00158"></a><span class="lineno"> 158</span><span class="preprocessor"> __A##__B##__C##__D##__E##__F##__G##__H##__I</span></div>
<div class="line"><a id="l00159" name="l00159"></a><span class="lineno"> 159</span> </div>
<div class="line"><a id="l00160" name="l00160"></a><span class="lineno"><a class="line" href="perf__counter_8h.html#ac8f325950e08c3662d3c94233cf40e13"> 160</a></span><span class="preprocessor">#define ALT_CONNECT2(__A, __B) __CONNECT2(__A, __B)</span></div>
<div class="line"><a id="l00161" name="l00161"></a><span class="lineno"><a class="line" href="perf__counter_8h.html#ae0db1f91522f0c020e1068d8bb2034cb"> 161</a></span><span class="preprocessor">#define CONNECT2(__A, __B) __CONNECT2(__A, __B)</span></div>
<div class="line"><a id="l00162" name="l00162"></a><span class="lineno"><a class="line" href="perf__counter_8h.html#a3994906c1038cf4f04e9578079429555"> 162</a></span><span class="preprocessor">#define CONNECT3(__A, __B, __C) __CONNECT3(__A, __B, __C)</span></div>
<div class="line"><a id="l00163" name="l00163"></a><span class="lineno"><a class="line" href="perf__counter_8h.html#a4be8346e8c8e544e3dc4da819f03d636"> 163</a></span><span class="preprocessor">#define CONNECT4(__A, __B, __C, __D) __CONNECT4(__A, __B, __C, __D)</span></div>
<div class="line"><a id="l00164" name="l00164"></a><span class="lineno"><a class="line" href="perf__counter_8h.html#a397bd70fecd355461d99b228d02d01f8"> 164</a></span><span class="preprocessor">#define CONNECT5(__A, __B, __C, __D, __E) __CONNECT5(__A, __B, __C, __D, __E) </span></div>
<div class="line"><a id="l00165" name="l00165"></a><span class="lineno"><a class="line" href="perf__counter_8h.html#a3bbbfb88c43244289b9a4e4521caf7cb"> 165</a></span><span class="preprocessor">#define CONNECT6(__A, __B, __C, __D, __E, __F) \</span></div>
<div class="line"><a id="l00166" name="l00166"></a><span class="lineno"> 166</span><span class="preprocessor"> __CONNECT6(__A, __B, __C, __D, __E, __F) </span></div>
<div class="line"><a id="l00167" name="l00167"></a><span class="lineno"><a class="line" href="perf__counter_8h.html#a8deb36935d07c69646a26993ab15328a"> 167</a></span><span class="preprocessor">#define CONNECT7(__A, __B, __C, __D, __E, __F, __G) \</span></div>
<div class="line"><a id="l00168" name="l00168"></a><span class="lineno"> 168</span><span class="preprocessor"> __CONNECT7(__A, __B, __C, __D, __E, __F, __G) </span></div>
<div class="line"><a id="l00169" name="l00169"></a><span class="lineno"><a class="line" href="perf__counter_8h.html#a9ce80b30ee8f4bb424c23f785b3481b8"> 169</a></span><span class="preprocessor">#define CONNECT8(__A, __B, __C, __D, __E, __F, __G, __H) \</span></div>
<div class="line"><a id="l00170" name="l00170"></a><span class="lineno"> 170</span><span class="preprocessor"> __CONNECT8(__A, __B, __C, __D, __E, __F, __G, __H) </span></div>
<div class="line"><a id="l00171" name="l00171"></a><span class="lineno"><a class="line" href="perf__counter_8h.html#a67d6d69c5ea260de9bdf81edf9672af3"> 171</a></span><span class="preprocessor">#define CONNECT9(__A, __B, __C, __D, __E, __F, __G, __H, __I) \</span></div>
<div class="line"><a id="l00172" name="l00172"></a><span class="lineno"> 172</span><span class="preprocessor"> __CONNECT9(__A, __B, __C, __D, __E, __F, __G, __H, __I)</span></div>
<div class="line"><a id="l00173" name="l00173"></a><span class="lineno"> 173</span> </div>
<div class="line"><a id="l00174" name="l00174"></a><span class="lineno"><a class="line" href="perf__counter_8h.html#a1409defa6d3e973b7efee74d2de7386d"> 174</a></span><span class="preprocessor">#define CONNECT(...) \</span></div>
<div class="line"><a id="l00175" name="l00175"></a><span class="lineno"> 175</span><span class="preprocessor"> ALT_CONNECT2(CONNECT, __PLOOC_VA_NUM_ARGS(__VA_ARGS__))(__VA_ARGS__)</span></div>
<div class="line"><a id="l00176" name="l00176"></a><span class="lineno"> 176</span> </div>
<div class="line"><a id="l00177" name="l00177"></a><span class="lineno"> 177</span><span class="preprocessor">#undef __using1</span></div>
<div class="line"><a id="l00178" name="l00178"></a><span class="lineno"> 178</span><span class="preprocessor">#undef __using2</span></div>
<div class="line"><a id="l00179" name="l00179"></a><span class="lineno"> 179</span><span class="preprocessor">#undef __using3</span></div>
<div class="line"><a id="l00180" name="l00180"></a><span class="lineno"> 180</span><span class="preprocessor">#undef __using4</span></div>
<div class="line"><a id="l00181" name="l00181"></a><span class="lineno"> 181</span><span class="preprocessor">#undef using</span></div>
<div class="line"><a id="l00182" name="l00182"></a><span class="lineno"> 182</span> </div>
<div class="line"><a id="l00183" name="l00183"></a><span class="lineno"><a class="line" href="perf__counter_8h.html#ac489b777985cc6133a3658d95dd424e1"> 183</a></span><span class="preprocessor">#define __using1(__declare) \</span></div>
<div class="line"><a id="l00184" name="l00184"></a><span class="lineno"> 184</span><span class="preprocessor"> for (__declare, *CONNECT3(__using_, __LINE__,_ptr) = NULL; \</span></div>
<div class="line"><a id="l00185" name="l00185"></a><span class="lineno"> 185</span><span class="preprocessor"> CONNECT3(__using_, __LINE__,_ptr)++ == NULL; \</span></div>
<div class="line"><a id="l00186" name="l00186"></a><span class="lineno"> 186</span><span class="preprocessor"> )</span></div>
<div class="line"><a id="l00187" name="l00187"></a><span class="lineno"> 187</span> </div>
<div class="line"><a id="l00188" name="l00188"></a><span class="lineno"><a class="line" href="perf__counter_8h.html#af2456eddcc03ba108e670a583367342e"> 188</a></span><span class="preprocessor">#define __using2(__declare, __on_leave_expr) \</span></div>
<div class="line"><a id="l00189" name="l00189"></a><span class="lineno"> 189</span><span class="preprocessor"> for (__declare, *CONNECT3(__using_, __LINE__,_ptr) = NULL; \</span></div>
<div class="line"><a id="l00190" name="l00190"></a><span class="lineno"> 190</span><span class="preprocessor"> CONNECT3(__using_, __LINE__,_ptr)++ == NULL; \</span></div>
<div class="line"><a id="l00191" name="l00191"></a><span class="lineno"> 191</span><span class="preprocessor"> (__on_leave_expr) \</span></div>
<div class="line"><a id="l00192" name="l00192"></a><span class="lineno"> 192</span><span class="preprocessor"> )</span></div>
<div class="line"><a id="l00193" name="l00193"></a><span class="lineno"> 193</span> </div>
<div class="line"><a id="l00194" name="l00194"></a><span class="lineno"><a class="line" href="perf__counter_8h.html#a3447ab4da15b7a4e81830839202ee0be"> 194</a></span><span class="preprocessor">#define __using3(__declare, __on_enter_expr, __on_leave_expr) \</span></div>
<div class="line"><a id="l00195" name="l00195"></a><span class="lineno"> 195</span><span class="preprocessor"> for (__declare, *CONNECT3(__using_, __LINE__,_ptr) = NULL; \</span></div>
<div class="line"><a id="l00196" name="l00196"></a><span class="lineno"> 196</span><span class="preprocessor"> CONNECT3(__using_, __LINE__,_ptr)++ == NULL ? \</span></div>
<div class="line"><a id="l00197" name="l00197"></a><span class="lineno"> 197</span><span class="preprocessor"> ((__on_enter_expr),1) : 0; \</span></div>
<div class="line"><a id="l00198" name="l00198"></a><span class="lineno"> 198</span><span class="preprocessor"> (__on_leave_expr) \</span></div>
<div class="line"><a id="l00199" name="l00199"></a><span class="lineno"> 199</span><span class="preprocessor"> )</span></div>
<div class="line"><a id="l00200" name="l00200"></a><span class="lineno"> 200</span> </div>
<div class="line"><a id="l00201" name="l00201"></a><span class="lineno"><a class="line" href="perf__counter_8h.html#a1a10811d7e12a6be9be6ccdf1ef824e8"> 201</a></span><span class="preprocessor">#define __using4(__dcl1, __dcl2, __on_enter_expr, __on_leave_expr) \</span></div>
<div class="line"><a id="l00202" name="l00202"></a><span class="lineno"> 202</span><span class="preprocessor"> for (__dcl1, __dcl2, *CONNECT3(__using_, __LINE__,_ptr) = NULL; \</span></div>
<div class="line"><a id="l00203" name="l00203"></a><span class="lineno"> 203</span><span class="preprocessor"> CONNECT3(__using_, __LINE__,_ptr)++ == NULL ? \</span></div>
<div class="line"><a id="l00204" name="l00204"></a><span class="lineno"> 204</span><span class="preprocessor"> ((__on_enter_expr),1) : 0; \</span></div>
<div class="line"><a id="l00205" name="l00205"></a><span class="lineno"> 205</span><span class="preprocessor"> (__on_leave_expr) \</span></div>
<div class="line"><a id="l00206" name="l00206"></a><span class="lineno"> 206</span><span class="preprocessor"> )</span></div>
<div class="line"><a id="l00207" name="l00207"></a><span class="lineno"> 207</span> </div>
<div class="line"><a id="l00208" name="l00208"></a><span class="lineno"><a class="line" href="perf__counter_8h.html#ad90955bd356a41041a7dcb112a450766"> 208</a></span><span class="preprocessor">#define using(...) \</span></div>
<div class="line"><a id="l00209" name="l00209"></a><span class="lineno"> 209</span><span class="preprocessor"> CONNECT2(__using, __PLOOC_VA_NUM_ARGS(__VA_ARGS__))(__VA_ARGS__)</span></div>
<div class="line"><a id="l00210" name="l00210"></a><span class="lineno"> 210</span> </div>
<div class="line"><a id="l00211" name="l00211"></a><span class="lineno"> 211</span> </div>
<div class="line"><a id="l00212" name="l00212"></a><span class="lineno"> 212</span><span class="preprocessor">#undef __with2</span></div>
<div class="line"><a id="l00213" name="l00213"></a><span class="lineno"> 213</span><span class="preprocessor">#undef __with3</span></div>
<div class="line"><a id="l00214" name="l00214"></a><span class="lineno"> 214</span><span class="preprocessor">#undef with</span></div>
<div class="line"><a id="l00215" name="l00215"></a><span class="lineno"> 215</span> </div>
<div class="line"><a id="l00216" name="l00216"></a><span class="lineno"><a class="line" href="perf__counter_8h.html#a7e7af9eb2708d17ce5ec5ea01cb914f1"> 216</a></span><span class="preprocessor">#define __with2(__type, __addr) \</span></div>
<div class="line"><a id="l00217" name="l00217"></a><span class="lineno"> 217</span><span class="preprocessor"> using(__type *_=(__addr))</span></div>
<div class="line"><a id="l00218" name="l00218"></a><span class="lineno"><a class="line" href="perf__counter_8h.html#aafef7ac0d7697d31814ff152d9eae0cc"> 218</a></span><span class="preprocessor">#define __with3(__type, __addr, __item) \</span></div>
<div class="line"><a id="l00219" name="l00219"></a><span class="lineno"> 219</span><span class="preprocessor"> using(__type *_=(__addr), *__item = _, _=_,_=_ )</span></div>
<div class="line"><a id="l00220" name="l00220"></a><span class="lineno"> 220</span> </div>
<div class="line"><a id="l00221" name="l00221"></a><span class="lineno"><a class="line" href="perf__counter_8h.html#afc5b077f9764ca6f11075ce72357dd65"> 221</a></span><span class="preprocessor">#define with(...) \</span></div>
<div class="line"><a id="l00222" name="l00222"></a><span class="lineno"> 222</span><span class="preprocessor"> CONNECT2(__with, __PLOOC_VA_NUM_ARGS(__VA_ARGS__))(__VA_ARGS__)</span></div>
<div class="line"><a id="l00223" name="l00223"></a><span class="lineno"> 223</span> </div>
<div class="line"><a id="l00224" name="l00224"></a><span class="lineno"> 224</span><span class="preprocessor">#undef _</span></div>
<div class="line"><a id="l00225" name="l00225"></a><span class="lineno"> 225</span> </div>
<div class="line"><a id="l00226" name="l00226"></a><span class="lineno"> 226</span><span class="preprocessor">#ifndef dimof</span></div>
<div class="line"><a id="l00227" name="l00227"></a><span class="lineno"><a class="line" href="perf__counter_8h.html#a7b6c484887a402bba1af11b457264553"> 227</a></span><span class="preprocessor"># define dimof(__array) (sizeof(__array)/sizeof(__array[0]))</span></div>
<div class="line"><a id="l00228" name="l00228"></a><span class="lineno"> 228</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00229" name="l00229"></a><span class="lineno"> 229</span> </div>
<div class="line"><a id="l00230" name="l00230"></a><span class="lineno"> 230</span> </div>
<div class="line"><a id="l00231" name="l00231"></a><span class="lineno"><a class="line" href="perf__counter_8h.html#af2d5b85528ace8bbe8954d1ece9a3c51"> 231</a></span><span class="preprocessor">#define SAFE_NAME(__NAME) CONNECT3(__,__NAME,__LINE__)</span></div>
<div class="line"><a id="l00232" name="l00232"></a><span class="lineno"> 232</span> </div>
<div class="line"><a id="l00233" name="l00233"></a><span class="lineno"> 233</span><span class="preprocessor">#undef foreach2</span></div>
<div class="line"><a id="l00234" name="l00234"></a><span class="lineno"> 234</span><span class="preprocessor">#undef foreach3</span></div>
<div class="line"><a id="l00235" name="l00235"></a><span class="lineno"> 235</span><span class="preprocessor">#undef foreach</span></div>
<div class="line"><a id="l00236" name="l00236"></a><span class="lineno"> 236</span> </div>
<div class="line"><a id="l00237" name="l00237"></a><span class="lineno"><a class="line" href="perf__counter_8h.html#ac4e7ceea5fc047d059b6b1898a697cb4"> 237</a></span><span class="preprocessor">#define foreach2(__type, __array) \</span></div>
<div class="line"><a id="l00238" name="l00238"></a><span class="lineno"> 238</span><span class="preprocessor"> using(__type *_ = __array) \</span></div>
<div class="line"><a id="l00239" name="l00239"></a><span class="lineno"> 239</span><span class="preprocessor"> for ( uint_fast32_t SAFE_NAME(count) = dimof(__array); \</span></div>
<div class="line"><a id="l00240" name="l00240"></a><span class="lineno"> 240</span><span class="preprocessor"> SAFE_NAME(count) &gt; 0; \</span></div>
<div class="line"><a id="l00241" name="l00241"></a><span class="lineno"> 241</span><span class="preprocessor"> _++, SAFE_NAME(count)-- \</span></div>
<div class="line"><a id="l00242" name="l00242"></a><span class="lineno"> 242</span><span class="preprocessor"> )</span></div>
<div class="line"><a id="l00243" name="l00243"></a><span class="lineno"> 243</span> </div>
<div class="line"><a id="l00244" name="l00244"></a><span class="lineno"><a class="line" href="perf__counter_8h.html#a2c93a7704596f19ff84cbfec513c3a5a"> 244</a></span><span class="preprocessor">#define foreach3(__type, __array, __item) \</span></div>
<div class="line"><a id="l00245" name="l00245"></a><span class="lineno"> 245</span><span class="preprocessor"> using(__type *_ = __array, *__item = _, _ = _, _ = _ ) \</span></div>
<div class="line"><a id="l00246" name="l00246"></a><span class="lineno"> 246</span><span class="preprocessor"> for ( uint_fast32_t SAFE_NAME(count) = dimof(__array); \</span></div>
<div class="line"><a id="l00247" name="l00247"></a><span class="lineno"> 247</span><span class="preprocessor"> SAFE_NAME(count) &gt; 0; \</span></div>
<div class="line"><a id="l00248" name="l00248"></a><span class="lineno"> 248</span><span class="preprocessor"> _++, __item = _, SAFE_NAME(count)-- \</span></div>
<div class="line"><a id="l00249" name="l00249"></a><span class="lineno"> 249</span><span class="preprocessor"> )</span></div>
<div class="line"><a id="l00250" name="l00250"></a><span class="lineno"> 250</span> </div>
<div class="line"><a id="l00251" name="l00251"></a><span class="lineno"><a class="line" href="perf__counter_8h.html#a623a729e6571efedb0c5528689d6120d"> 251</a></span><span class="preprocessor">#define foreach(...) \</span></div>
<div class="line"><a id="l00252" name="l00252"></a><span class="lineno"> 252</span><span class="preprocessor"> CONNECT2(foreach, __PLOOC_VA_NUM_ARGS(__VA_ARGS__))(__VA_ARGS__)</span></div>
<div class="line"><a id="l00253" name="l00253"></a><span class="lineno"> 253</span> </div>
<div class="line"><a id="l00254" name="l00254"></a><span class="lineno"> 254</span><span class="preprocessor">#ifndef safe_atom_code</span></div>
<div class="line"><a id="l00255" name="l00255"></a><span class="lineno"><a class="line" href="perf__counter_8h.html#a1616b4eef4bbd94969a9010c4114b488"> 255</a></span><span class="preprocessor"># define safe_atom_code() \</span></div>
<div class="line"><a id="l00256" name="l00256"></a><span class="lineno"> 256</span><span class="preprocessor"> using( uint32_t SAFE_NAME(temp) = \</span></div>
<div class="line"><a id="l00257" name="l00257"></a><span class="lineno"> 257</span><span class="preprocessor"> ({ uint32_t SAFE_NAME(temp2)=__get_PRIMASK(); \</span></div>
<div class="line"><a id="l00258" name="l00258"></a><span class="lineno"> 258</span><span class="preprocessor"> __disable_irq(); \</span></div>
<div class="line"><a id="l00259" name="l00259"></a><span class="lineno"> 259</span><span class="preprocessor"> SAFE_NAME(temp2);}), \</span></div>
<div class="line"><a id="l00260" name="l00260"></a><span class="lineno"> 260</span><span class="preprocessor"> __set_PRIMASK(SAFE_NAME(temp)))</span></div>
<div class="line"><a id="l00261" name="l00261"></a><span class="lineno"> 261</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00262" name="l00262"></a><span class="lineno"> 262</span> </div>
<div class="line"><a id="l00263" name="l00263"></a><span class="lineno"> 263</span><span class="preprocessor">#ifndef __IRQ_SAFE</span></div>
<div class="line"><a id="l00264" name="l00264"></a><span class="lineno"><a class="line" href="perf__counter_8h.html#a966a3eb20671a2a8c44d63d459f5472e"> 264</a></span><span class="preprocessor"># define __IRQ_SAFE \</span></div>
<div class="line"><a id="l00265" name="l00265"></a><span class="lineno"> 265</span><span class="preprocessor"> using( uint32_t SAFE_NAME(temp) = \</span></div>
<div class="line"><a id="l00266" name="l00266"></a><span class="lineno"> 266</span><span class="preprocessor"> ({ uint32_t SAFE_NAME(temp2)=__get_PRIMASK(); \</span></div>
<div class="line"><a id="l00267" name="l00267"></a><span class="lineno"> 267</span><span class="preprocessor"> __disable_irq(); \</span></div>
<div class="line"><a id="l00268" name="l00268"></a><span class="lineno"> 268</span><span class="preprocessor"> SAFE_NAME(temp2);}), \</span></div>
<div class="line"><a id="l00269" name="l00269"></a><span class="lineno"> 269</span><span class="preprocessor"> __set_PRIMASK(SAFE_NAME(temp)))</span></div>
<div class="line"><a id="l00270" name="l00270"></a><span class="lineno"> 270</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00271" name="l00271"></a><span class="lineno"> 271</span> </div>
<div class="line"><a id="l00272" name="l00272"></a><span class="lineno"> 272</span> </div>
<div class="line"><a id="l00273" name="l00273"></a><span class="lineno"> 273</span><span class="preprocessor">#if __PLOOC_VA_NUM_ARGS() != 0</span></div>
<div class="line"><a id="l00274" name="l00274"></a><span class="lineno"> 274</span><span class="preprocessor">#warning Please enable GNC extensions, it is required by __cycleof__() and \</span></div>
<div class="line"><a id="l00275" name="l00275"></a><span class="lineno"> 275</span><span class="preprocessor">__super_loop_monitor__()</span></div>
<div class="line"><a id="l00276" name="l00276"></a><span class="lineno"> 276</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00277" name="l00277"></a><span class="lineno"> 277</span> </div>
<div class="line"><a id="l00278" name="l00278"></a><span class="lineno"> 278</span><span class="comment">/*============================ MACROFIED FUNCTIONS ===========================*/</span></div>
<div class="line"><a id="l00279" name="l00279"></a><span class="lineno"> 279</span> </div>
<div class="line"><a id="l00280" name="l00280"></a><span class="lineno"><a class="line" href="perf__counter_8h.html#a147d3eb2e96136dc1758aa8d3e2a089c"> 280</a></span><span class="preprocessor">#define __cycleof__(__STR, ...) \</span></div>
<div class="line"><a id="l00281" name="l00281"></a><span class="lineno"> 281</span><span class="preprocessor"> using(int64_t _ = get_system_ticks(), __cycle_count__ = _, \</span></div>
<div class="line"><a id="l00282" name="l00282"></a><span class="lineno"> 282</span><span class="preprocessor"> _=_, { \</span></div>
<div class="line"><a id="l00283" name="l00283"></a><span class="lineno"> 283</span><span class="preprocessor"> _ = get_system_ticks() - _; \</span></div>
<div class="line"><a id="l00284" name="l00284"></a><span class="lineno"> 284</span><span class="preprocessor"> __cycle_count__ = _; \</span></div>
<div class="line"><a id="l00285" name="l00285"></a><span class="lineno"> 285</span><span class="preprocessor"> if (__PLOOC_VA_NUM_ARGS(__VA_ARGS__) == 0) { \</span></div>
<div class="line"><a id="l00286" name="l00286"></a><span class="lineno"> 286</span><span class="preprocessor"> printf(&quot;\r\n&quot;</span>); \</div>
<div class="line"><a id="l00287" name="l00287"></a><span class="lineno"> 287</span> printf(&quot;-[Cycle Report]&quot;); \</div>
<div class="line"><a id="l00288" name="l00288"></a><span class="lineno"> 288</span> printf(&quot;--------------------------------------------\r\n&quot;); \</div>
<div class="line"><a id="l00289" name="l00289"></a><span class="lineno"> 289</span> printf(__STR &quot; total cycle count: %d [%08x]\r\n&quot;, \</div>
<div class="line"><a id="l00290" name="l00290"></a><span class="lineno"> 290</span> (int)_, (int)_); \</div>
<div class="line"><a id="l00291" name="l00291"></a><span class="lineno"> 291</span> } else { \</div>
<div class="line"><a id="l00292" name="l00292"></a><span class="lineno"> 292</span> __VA_ARGS__ \</div>
<div class="line"><a id="l00293" name="l00293"></a><span class="lineno"> 293</span> }; \</div>
<div class="line"><a id="l00294" name="l00294"></a><span class="lineno"> 294</span> })</div>
<div class="line"><a id="l00295" name="l00295"></a><span class="lineno"> 295</span> </div>
<div class="line"><a id="l00296" name="l00296"></a><span class="lineno"> 296</span> </div>
<div class="line"><a id="l00297" name="l00297"></a><span class="lineno"> 297</span> </div>
<div class="line"><a id="l00298" name="l00298"></a><span class="lineno"><a class="line" href="perf__counter_8h.html#acfa3bf174dd68eeca5c7e4a16cdc24ea"> 298</a></span><span class="preprocessor">#define __super_loop_monitor__(__N, ...) \</span></div>
<div class="line"><a id="l00299" name="l00299"></a><span class="lineno"> 299</span><span class="preprocessor"> using( \</span></div>
<div class="line"><a id="l00300" name="l00300"></a><span class="lineno"> 300</span><span class="preprocessor"> struct { \</span></div>
<div class="line"><a id="l00301" name="l00301"></a><span class="lineno"> 301</span><span class="preprocessor"> int64_t lStart; \</span></div>
<div class="line"><a id="l00302" name="l00302"></a><span class="lineno"> 302</span><span class="preprocessor"> int64_t lTaskUsedCycles; \</span></div>
<div class="line"><a id="l00303" name="l00303"></a><span class="lineno"> 303</span><span class="preprocessor"> int64_t lTimeElapsed; \</span></div>
<div class="line"><a id="l00304" name="l00304"></a><span class="lineno"> 304</span><span class="preprocessor"> } __cpu_usage__ = {.lStart = get_system_ticks()}) \</span></div>
<div class="line"><a id="l00305" name="l00305"></a><span class="lineno"> 305</span><span class="preprocessor"> using(int SAFE_NAME(cnt) = (__N)) \</span></div>
<div class="line"><a id="l00306" name="l00306"></a><span class="lineno"> 306</span><span class="preprocessor"> for(start_task_cycle_counter();; ({ \</span></div>
<div class="line"><a id="l00307" name="l00307"></a><span class="lineno"> 307</span><span class="preprocessor"> if (!(--SAFE_NAME(cnt))) { \</span></div>
<div class="line"><a id="l00308" name="l00308"></a><span class="lineno"> 308</span><span class="preprocessor"> __cpu_usage__.lTimeElapsed \</span></div>
<div class="line"><a id="l00309" name="l00309"></a><span class="lineno"> 309</span><span class="preprocessor"> = get_system_ticks() - __cpu_usage__.lStart; \</span></div>
<div class="line"><a id="l00310" name="l00310"></a><span class="lineno"> 310</span><span class="preprocessor"> __cpu_usage__.lTaskUsedCycles = stop_task_cycle_counter(); \</span></div>
<div class="line"><a id="l00311" name="l00311"></a><span class="lineno"> 311</span><span class="preprocessor"> \</span></div>
<div class="line"><a id="l00312" name="l00312"></a><span class="lineno"> 312</span><span class="preprocessor"> if (__PLOOC_VA_NUM_ARGS(__VA_ARGS__) == 0) { \</span></div>
<div class="line"><a id="l00313" name="l00313"></a><span class="lineno"> 313</span><span class="preprocessor"> printf(&quot;%s CPU Usage %2.3f%%\r\n&quot;</span>, __func__, \</div>
<div class="line"><a id="l00314" name="l00314"></a><span class="lineno"> 314</span> (float)((double)__cpu_usage__.lTaskUsedCycles * 100.0 / \</div>
<div class="line"><a id="l00315" name="l00315"></a><span class="lineno"> 315</span> (double)__cpu_usage__.lTimeElapsed)); \</div>
<div class="line"><a id="l00316" name="l00316"></a><span class="lineno"> 316</span> } else { \</div>
<div class="line"><a id="l00317" name="l00317"></a><span class="lineno"> 317</span> __VA_ARGS__; \</div>
<div class="line"><a id="l00318" name="l00318"></a><span class="lineno"> 318</span> } \</div>
<div class="line"><a id="l00319" name="l00319"></a><span class="lineno"> 319</span> SAFE_NAME(cnt) = (__N); \</div>
<div class="line"><a id="l00320" name="l00320"></a><span class="lineno"> 320</span> __cpu_usage__.lStart = get_system_ticks(); \</div>
<div class="line"><a id="l00321" name="l00321"></a><span class="lineno"> 321</span> start_task_cycle_counter(); \</div>
<div class="line"><a id="l00322" name="l00322"></a><span class="lineno"> 322</span> }; \</div>
<div class="line"><a id="l00323" name="l00323"></a><span class="lineno"> 323</span> }))</div>
<div class="line"><a id="l00324" name="l00324"></a><span class="lineno"> 324</span> </div>
<div class="line"><a id="l00325" name="l00325"></a><span class="lineno"> 325</span><span class="comment">/*============================ TYPES =========================================*/</span></div>
<div class="line"><a id="l00326" name="l00326"></a><span class="lineno"><a class="line" href="structtask__cycle__info__t.html"> 326</a></span><span class="keyword">typedef</span> <span class="keyword">struct </span>{</div>
<div class="line"><a id="l00327" name="l00327"></a><span class="lineno"><a class="line" href="structtask__cycle__info__t.html#a3b941eea48497afb204462c694bc2d12"> 327</a></span> int64_t <a class="code hl_variable" href="structtask__cycle__info__t.html#a3b941eea48497afb204462c694bc2d12">lStart</a>;</div>
<div class="line"><a id="l00328" name="l00328"></a><span class="lineno"><a class="line" href="structtask__cycle__info__t.html#a19a46cbd05039f568b01e326d65d6b80"> 328</a></span> int64_t <a class="code hl_variable" href="structtask__cycle__info__t.html#a19a46cbd05039f568b01e326d65d6b80">lUsedTotal</a>;</div>
<div class="line"><a id="l00329" name="l00329"></a><span class="lineno"><a class="line" href="structtask__cycle__info__t.html#a0250b43cfb57ddf17f7f40c4cc587249"> 329</a></span> int32_t <a class="code hl_variable" href="structtask__cycle__info__t.html#a0250b43cfb57ddf17f7f40c4cc587249">nUsedRecent</a>;</div>
<div class="line"><a id="l00330" name="l00330"></a><span class="lineno"><a class="line" href="structtask__cycle__info__t.html#a84d3729a2d49dd2e43ef8727fcd6f9b0"> 330</a></span> uint16_t <a class="code hl_variable" href="structtask__cycle__info__t.html#a84d3729a2d49dd2e43ef8727fcd6f9b0">hwActiveCount</a>;</div>
<div class="line"><a id="l00331" name="l00331"></a><span class="lineno"><a class="line" href="structtask__cycle__info__t.html#a77132c2c26a75f5b8751b235cda23828"> 331</a></span> uint16_t : 15;</div>
<div class="line"><a id="l00332" name="l00332"></a><span class="lineno"><a class="line" href="structtask__cycle__info__t.html#a8a4c67264f8440bb83dec68c4312ff09"> 332</a></span> uint16_t <a class="code hl_variable" href="structtask__cycle__info__t.html#a8a4c67264f8440bb83dec68c4312ff09">bEnabled</a> : 1;</div>
<div class="line"><a id="l00333" name="l00333"></a><span class="lineno"> 333</span>} <a class="code hl_struct" href="structtask__cycle__info__t.html">task_cycle_info_t</a>;</div>
<div class="line"><a id="l00334" name="l00334"></a><span class="lineno"> 334</span> </div>
<div class="line"><a id="l00335" name="l00335"></a><span class="lineno"><a class="line" href="perf__counter_8h.html#ac118677bc3eb6a806eb1381d656b6c25"> 335</a></span><span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code hl_struct" href="structtask__cycle__info__agent__t.html">task_cycle_info_agent_t</a> <a class="code hl_struct" href="structtask__cycle__info__agent__t.html">task_cycle_info_agent_t</a>;</div>
<div class="line"><a id="l00336" name="l00336"></a><span class="lineno"> 336</span> </div>
<div class="line"><a id="l00337" name="l00337"></a><span class="lineno"><a class="line" href="structtask__cycle__info__agent__t.html"> 337</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structtask__cycle__info__agent__t.html">task_cycle_info_agent_t</a> {</div>
<div class="line"><a id="l00338" name="l00338"></a><span class="lineno"><a class="line" href="structtask__cycle__info__agent__t.html#a26adda6b75d3722f450eb169546bd7e7"> 338</a></span> <a class="code hl_struct" href="structtask__cycle__info__t.html">task_cycle_info_t</a> *<a class="code hl_variable" href="structtask__cycle__info__agent__t.html#a26adda6b75d3722f450eb169546bd7e7">ptInfo</a>;</div>
<div class="line"><a id="l00339" name="l00339"></a><span class="lineno"><a class="line" href="structtask__cycle__info__agent__t.html#a3f049d289ce99f316894417016d60ca6"> 339</a></span> <a class="code hl_struct" href="structtask__cycle__info__agent__t.html">task_cycle_info_agent_t</a> *<a class="code hl_variable" href="structtask__cycle__info__agent__t.html#a3f049d289ce99f316894417016d60ca6">ptNext</a>;</div>
<div class="line"><a id="l00340" name="l00340"></a><span class="lineno"><a class="line" href="structtask__cycle__info__agent__t.html#a0ab0ef208ec46b60dce3d05a76754931"> 340</a></span> <a class="code hl_struct" href="structtask__cycle__info__agent__t.html">task_cycle_info_agent_t</a> *<a class="code hl_variable" href="structtask__cycle__info__agent__t.html#a0ab0ef208ec46b60dce3d05a76754931">ptPrev</a>;</div>
<div class="line"><a id="l00341" name="l00341"></a><span class="lineno"> 341</span>};</div>
<div class="line"><a id="l00342" name="l00342"></a><span class="lineno"> 342</span> </div>
<div class="line"><a id="l00343" name="l00343"></a><span class="lineno"> 343</span> </div>
<div class="line"><a id="l00344" name="l00344"></a><span class="lineno"> 344</span><span class="comment">/*============================ GLOBAL VARIABLES ==============================*/</span></div>
<div class="line"><a id="l00345" name="l00345"></a><span class="lineno"> 345</span><span class="comment">/*============================ LOCAL VARIABLES ===============================*/</span></div>
<div class="line"><a id="l00346" name="l00346"></a><span class="lineno"> 346</span><span class="comment">/*============================ PROTOTYPES ====================================*/</span></div>
<div class="line"><a id="l00347" name="l00347"></a><span class="lineno"> 347</span> </div>
<div class="line"><a id="l00348" name="l00348"></a><span class="lineno"> 348</span> </div>
<div class="line"><a id="l00356" name="l00356"></a><span class="lineno"> 356</span><span class="keyword">extern</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="perf__counter_8h.html#af33fd92801223d4befa49c610332ddd4">start_cycle_counter</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a id="l00357" name="l00357"></a><span class="lineno"> 357</span> </div>
<div class="line"><a id="l00365" name="l00365"></a><span class="lineno"> 365</span><span class="keyword">extern</span> int32_t <a class="code hl_function" href="perf__counter_8h.html#a014af75d3945894c4740773e8a28d723">stop_cycle_counter</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a id="l00366" name="l00366"></a><span class="lineno"> 366</span> </div>
<div class="line"><a id="l00372" name="l00372"></a><span class="lineno"> 372</span><span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code hl_function" href="perf__counter_8h.html#a9776dfed871d0e0775c876f16e7618f7">delay_us</a>(int32_t nUs);</div>
<div class="line"><a id="l00373" name="l00373"></a><span class="lineno"> 373</span> </div>
<div class="line"><a id="l00379" name="l00379"></a><span class="lineno"> 379</span><span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code hl_function" href="perf__counter_8h.html#a2add8ab5b23b568bba6d46f9c977dbce">delay_ms</a>(int32_t nMs);</div>
<div class="line"><a id="l00380" name="l00380"></a><span class="lineno"> 380</span> </div>
<div class="line"><a id="l00381" name="l00381"></a><span class="lineno"> 381</span><span class="preprocessor">#ifdef __PERF_CNT_USE_LONG_CLOCK__</span></div>
<div class="line"><a id="l00403" name="l00403"></a><span class="lineno"> 403</span><span class="preprocessor">#if !defined(__IS_COMPILER_IAR__)</span></div>
<div class="line"><a id="l00404" name="l00404"></a><span class="lineno"> 404</span>__attribute__((nothrow)) </div>
<div class="line"><a id="l00405" name="l00405"></a><span class="lineno"> 405</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00406" name="l00406"></a><span class="lineno"> 406</span><span class="keyword">extern</span> int64_t clock(<span class="keywordtype">void</span>);</div>
<div class="line"><a id="l00407" name="l00407"></a><span class="lineno"> 407</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00408" name="l00408"></a><span class="lineno"> 408</span> </div>
<div class="line"><a id="l00414" name="l00414"></a><span class="lineno"> 414</span><span class="keyword">extern</span> int64_t <a class="code hl_function" href="perf__counter_8h.html#a32dabfe5b863f89f71735b20a0caf1ea">get_system_ticks</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a id="l00415" name="l00415"></a><span class="lineno"> 415</span> </div>
<div class="line"><a id="l00421" name="l00421"></a><span class="lineno"> 421</span><span class="keyword">extern</span> int32_t <a class="code hl_function" href="perf__counter_8h.html#a98c51d83fdb448a2733d0a309366149c">get_system_ms</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a id="l00422" name="l00422"></a><span class="lineno"> 422</span> </div>
<div class="line"><a id="l00423" name="l00423"></a><span class="lineno"> 423</span> </div>
<div class="line"><a id="l00424" name="l00424"></a><span class="lineno"> 424</span><span class="preprocessor">#if defined(__PERF_CNT_USE_RTOS__)</span></div>
<div class="line"><a id="l00425" name="l00425"></a><span class="lineno"> 425</span> </div>
<div class="line"><a id="l00428" name="l00428"></a><span class="lineno"> 428</span><span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code hl_define" href="perf__counter_8h.html#a00278751616ee5d95ce4bea4ffb59ce7">init_task_cycle_counter</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a id="l00429" name="l00429"></a><span class="lineno"> 429</span> </div>
<div class="line"><a id="l00440" name="l00440"></a><span class="lineno"> 440</span><span class="keyword">extern</span> <a class="code hl_struct" href="structtask__cycle__info__t.html">task_cycle_info_t</a> * <a class="code hl_function" href="perf__counter_8c.html#a87abe08a2093c8c69e5f813f565a1d31">get_rtos_task_cycle_info</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a id="l00441" name="l00441"></a><span class="lineno"> 441</span> </div>
<div class="line"><a id="l00442" name="l00442"></a><span class="lineno"> 442</span> </div>
<div class="line"><a id="l00449" name="l00449"></a><span class="lineno"> 449</span><span class="keyword">extern</span> <a class="code hl_struct" href="structtask__cycle__info__t.html">task_cycle_info_t</a> *<a class="code hl_define" href="perf__counter_8h.html#a607df0241b0f85868159e1e15f44acdc">init_task_cycle_info</a>(<a class="code hl_struct" href="structtask__cycle__info__t.html">task_cycle_info_t</a> *ptInfo);</div>
<div class="line"><a id="l00450" name="l00450"></a><span class="lineno"> 450</span> </div>
<div class="line"><a id="l00456" name="l00456"></a><span class="lineno"> 456</span><span class="keyword">extern</span> <span class="keywordtype">bool</span> <a class="code hl_define" href="perf__counter_8h.html#a96f0ed25511e535714003ec4ca738415">enable_task_cycle_info</a>(<a class="code hl_struct" href="structtask__cycle__info__t.html">task_cycle_info_t</a> *ptInfo);</div>
<div class="line"><a id="l00457" name="l00457"></a><span class="lineno"> 457</span> </div>
<div class="line"><a id="l00463" name="l00463"></a><span class="lineno"> 463</span><span class="keyword">extern</span> <span class="keywordtype">bool</span> <a class="code hl_define" href="perf__counter_8h.html#af3fceb4da6cc89dd20a874bd147c2414">disable_task_cycle_info</a>(<a class="code hl_struct" href="structtask__cycle__info__t.html">task_cycle_info_t</a> *ptInfo);</div>
<div class="line"><a id="l00464" name="l00464"></a><span class="lineno"> 464</span> </div>
<div class="line"><a id="l00470" name="l00470"></a><span class="lineno"> 470</span><span class="keyword">extern</span> </div>
<div class="line"><a id="l00471" name="l00471"></a><span class="lineno"> 471</span><span class="keywordtype">void</span> <a class="code hl_define" href="perf__counter_8h.html#a06e00a5b710c5144aa756c1905c12fcf">resume_task_cycle_info</a>(<a class="code hl_struct" href="structtask__cycle__info__t.html">task_cycle_info_t</a> *ptInfo, <span class="keywordtype">bool</span> bEnabledStatus);</div>
<div class="line"><a id="l00472" name="l00472"></a><span class="lineno"> 472</span> </div>
<div class="line"><a id="l00480" name="l00480"></a><span class="lineno"> 480</span><span class="keyword">extern</span></div>
<div class="line"><a id="l00481" name="l00481"></a><span class="lineno"> 481</span><a class="code hl_struct" href="structtask__cycle__info__agent__t.html">task_cycle_info_agent_t</a> *<a class="code hl_define" href="perf__counter_8h.html#a11d20291b945175264a568c4c9dcd9bd">register_task_cycle_agent</a>(</div>
<div class="line"><a id="l00482" name="l00482"></a><span class="lineno"> 482</span> <a class="code hl_struct" href="structtask__cycle__info__t.html">task_cycle_info_t</a> *ptInfo,</div>
<div class="line"><a id="l00483" name="l00483"></a><span class="lineno"> 483</span> <a class="code hl_struct" href="structtask__cycle__info__agent__t.html">task_cycle_info_agent_t</a> *ptAgent);</div>
<div class="line"><a id="l00484" name="l00484"></a><span class="lineno"> 484</span> </div>
<div class="line"><a id="l00490" name="l00490"></a><span class="lineno"> 490</span><span class="keyword">extern</span></div>
<div class="line"><a id="l00491" name="l00491"></a><span class="lineno"> 491</span><a class="code hl_struct" href="structtask__cycle__info__agent__t.html">task_cycle_info_agent_t</a> *</div>
<div class="line"><a id="l00492" name="l00492"></a><span class="lineno"> 492</span><a class="code hl_define" href="perf__counter_8h.html#afdd7c2e511c981ad62525076f53a762e">unregister_task_cycle_agent</a>(<a class="code hl_struct" href="structtask__cycle__info__agent__t.html">task_cycle_info_agent_t</a> *ptAgent);</div>
<div class="line"><a id="l00493" name="l00493"></a><span class="lineno"> 493</span> </div>
<div class="line"><a id="l00498" name="l00498"></a><span class="lineno"> 498</span><span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code hl_function" href="perf__counter_8c.html#ad17c3ab8fb4c68ebc676562ab00770a1">__start_task_cycle_counter</a>(<a class="code hl_struct" href="structtask__cycle__info__t.html">task_cycle_info_t</a> *ptInfo);</div>
<div class="line"><a id="l00499" name="l00499"></a><span class="lineno"> 499</span> </div>
<div class="line"><a id="l00514" name="l00514"></a><span class="lineno"> 514</span><span class="keyword">extern</span> int64_t <a class="code hl_function" href="perf__counter_8c.html#a81a5dabf3ca19922587390de6c9f0ff5">__stop_task_cycle_counter</a>(<a class="code hl_struct" href="structtask__cycle__info__t.html">task_cycle_info_t</a> *ptInfo);</div>
<div class="line"><a id="l00515" name="l00515"></a><span class="lineno"> 515</span> </div>
<div class="line"><a id="l00516" name="l00516"></a><span class="lineno"> 516</span> </div>
<div class="line"><a id="l00517" name="l00517"></a><span class="lineno"> 517</span><span class="preprocessor">#define start_task_cycle_counter(...) \</span></div>
<div class="line"><a id="l00518" name="l00518"></a><span class="lineno"> 518</span><span class="preprocessor"> __start_task_cycle_counter((NULL,##__VA_ARGS__))</span></div>
<div class="line"><a id="l00519" name="l00519"></a><span class="lineno"> 519</span> </div>
<div class="line"><a id="l00520" name="l00520"></a><span class="lineno"> 520</span><span class="preprocessor">#define stop_task_cycle_counter(...) \</span></div>
<div class="line"><a id="l00521" name="l00521"></a><span class="lineno"> 521</span><span class="preprocessor"> __stop_task_cycle_counter((NULL,##__VA_ARGS__))</span></div>
<div class="line"><a id="l00522" name="l00522"></a><span class="lineno"> 522</span> </div>
<div class="line"><a id="l00523" name="l00523"></a><span class="lineno"> 523</span><span class="preprocessor">#elif !defined(__IMPLEMENT_PERF_COUNTER)</span></div>
<div class="line"><a id="l00524" name="l00524"></a><span class="lineno"><a class="line" href="perf__counter_8h.html#ab84fa299db0fc4c0a897eb0a3aab6233"> 524</a></span><span class="preprocessor"># define start_task_cycle_counter(...) start_cycle_counter()</span></div>
<div class="line"><a id="l00525" name="l00525"></a><span class="lineno"><a class="line" href="perf__counter_8h.html#ad9e3470ff82262ac6daca041607c31da"> 525</a></span><span class="preprocessor"># define stop_task_cycle_counter(...) stop_cycle_counter()</span></div>
<div class="line"><a id="l00526" name="l00526"></a><span class="lineno"><a class="line" href="perf__counter_8h.html#a00278751616ee5d95ce4bea4ffb59ce7"> 526</a></span><span class="preprocessor"># define init_task_cycle_counter()</span></div>
<div class="line"><a id="l00527" name="l00527"></a><span class="lineno"><a class="line" href="perf__counter_8h.html#a11d20291b945175264a568c4c9dcd9bd"> 527</a></span><span class="preprocessor"># define register_task_cycle_agent(...)</span></div>
<div class="line"><a id="l00528" name="l00528"></a><span class="lineno"><a class="line" href="perf__counter_8h.html#afdd7c2e511c981ad62525076f53a762e"> 528</a></span><span class="preprocessor"># define unregister_task_cycle_agent(...)</span></div>
<div class="line"><a id="l00529" name="l00529"></a><span class="lineno"><a class="line" href="perf__counter_8h.html#a607df0241b0f85868159e1e15f44acdc"> 529</a></span><span class="preprocessor"># define init_task_cycle_info(...) (NULL)</span></div>
<div class="line"><a id="l00530" name="l00530"></a><span class="lineno"><a class="line" href="perf__counter_8h.html#a96f0ed25511e535714003ec4ca738415"> 530</a></span><span class="preprocessor"># define enable_task_cycle_info(...) (false)</span></div>
<div class="line"><a id="l00531" name="l00531"></a><span class="lineno"><a class="line" href="perf__counter_8h.html#af3fceb4da6cc89dd20a874bd147c2414"> 531</a></span><span class="preprocessor"># define disable_task_cycle_info(...) (false)</span></div>
<div class="line"><a id="l00532" name="l00532"></a><span class="lineno"><a class="line" href="perf__counter_8h.html#a06e00a5b710c5144aa756c1905c12fcf"> 532</a></span><span class="preprocessor"># define resume_task_cycle_info(...)</span></div>
<div class="line"><a id="l00533" name="l00533"></a><span class="lineno"> 533</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00534" name="l00534"></a><span class="lineno"> 534</span> </div>
<div class="line"><a id="l00535" name="l00535"></a><span class="lineno"> 535</span><span class="comment">/*----------------------------------------------------------------------------*</span></div>
<div class="line"><a id="l00536" name="l00536"></a><span class="lineno"> 536</span><span class="comment"> * Please ignore the following APIs unless you have encountered some known *</span></div>
<div class="line"><a id="l00537" name="l00537"></a><span class="lineno"> 537</span><span class="comment"> * special conditions *</span></div>
<div class="line"><a id="l00538" name="l00538"></a><span class="lineno"> 538</span><span class="comment"> *----------------------------------------------------------------------------*/</span> </div>
<div class="line"><a id="l00539" name="l00539"></a><span class="lineno"> 539</span> </div>
<div class="line"><a id="l00540" name="l00540"></a><span class="lineno"> 540</span> </div>
<div class="line"><a id="l00568" name="l00568"></a><span class="lineno"> 568</span><span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code hl_function" href="perf__counter_8h.html#a9097d62a30ad2b4f75462c78d7200fa8">init_cycle_counter</a>(<span class="keywordtype">bool</span> bIsSysTickOccupied);</div>
<div class="line"><a id="l00569" name="l00569"></a><span class="lineno"> 569</span> </div>
<div class="line"><a id="l00570" name="l00570"></a><span class="lineno"> 570</span> </div>
<div class="line"><a id="l00583" name="l00583"></a><span class="lineno"> 583</span><span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code hl_function" href="perf__counter_8h.html#a0a6e5160f19f152b0b9a502e5e24adb7">user_code_insert_to_systick_handler</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a id="l00584" name="l00584"></a><span class="lineno"> 584</span> </div>
<div class="line"><a id="l00585" name="l00585"></a><span class="lineno"> 585</span> </div>
<div class="line"><a id="l00586" name="l00586"></a><span class="lineno"> 586</span><span class="comment">//#if defined(__clang__)</span></div>
<div class="line"><a id="l00587" name="l00587"></a><span class="lineno"> 587</span><span class="comment">//# pragma clang diagnostic pop</span></div>
<div class="line"><a id="l00588" name="l00588"></a><span class="lineno"> 588</span><span class="comment">//#elif defined(__IS_COMPILER_GCC__)</span></div>
<div class="line"><a id="l00589" name="l00589"></a><span class="lineno"> 589</span><span class="comment">//# pragma GCC diagnostic pop</span></div>
<div class="line"><a id="l00590" name="l00590"></a><span class="lineno"> 590</span><span class="comment">//#endif</span></div>
<div class="line"><a id="l00591" name="l00591"></a><span class="lineno"> 591</span> </div>
<div class="line"><a id="l00592" name="l00592"></a><span class="lineno"> 592</span><span class="preprocessor">#ifdef __cplusplus</span></div>
<div class="line"><a id="l00593" name="l00593"></a><span class="lineno"> 593</span>}</div>
<div class="line"><a id="l00594" name="l00594"></a><span class="lineno"> 594</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00595" name="l00595"></a><span class="lineno"> 595</span> </div>
<div class="line"><a id="l00596" name="l00596"></a><span class="lineno"> 596</span><span class="preprocessor">#endif</span></div>
<div class="ttc" id="aperf__counter_8c_html_a81a5dabf3ca19922587390de6c9f0ff5"><div class="ttname"><a href="perf__counter_8c.html#a81a5dabf3ca19922587390de6c9f0ff5">__stop_task_cycle_counter</a></div><div class="ttdeci">int64_t __stop_task_cycle_counter(task_cycle_info_t *ptInfo)</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00711">perf_counter.c:711</a></div></div>
<div class="ttc" id="aperf__counter_8c_html_a87abe08a2093c8c69e5f813f565a1d31"><div class="ttname"><a href="perf__counter_8c.html#a87abe08a2093c8c69e5f813f565a1d31">get_rtos_task_cycle_info</a></div><div class="ttdeci">__WEAK task_cycle_info_t * get_rtos_task_cycle_info(void)</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00501">perf_counter.c:501</a></div></div>
<div class="ttc" id="aperf__counter_8c_html_ad17c3ab8fb4c68ebc676562ab00770a1"><div class="ttname"><a href="perf__counter_8c.html#ad17c3ab8fb4c68ebc676562ab00770a1">__start_task_cycle_counter</a></div><div class="ttdeci">void __start_task_cycle_counter(task_cycle_info_t *ptInfo)</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00691">perf_counter.c:691</a></div></div>
<div class="ttc" id="aperf__counter_8h_html_a00278751616ee5d95ce4bea4ffb59ce7"><div class="ttname"><a href="perf__counter_8h.html#a00278751616ee5d95ce4bea4ffb59ce7">init_task_cycle_counter</a></div><div class="ttdeci">#define init_task_cycle_counter()</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8h_source.html#l00526">perf_counter.h:526</a></div></div>
<div class="ttc" id="aperf__counter_8h_html_a014af75d3945894c4740773e8a28d723"><div class="ttname"><a href="perf__counter_8h.html#a014af75d3945894c4740773e8a28d723">stop_cycle_counter</a></div><div class="ttdeci">int32_t stop_cycle_counter(void)</div><div class="ttdoc">calculate the elapsed cycle count since the last start point</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00372">perf_counter.c:372</a></div></div>
<div class="ttc" id="aperf__counter_8h_html_a06e00a5b710c5144aa756c1905c12fcf"><div class="ttname"><a href="perf__counter_8h.html#a06e00a5b710c5144aa756c1905c12fcf">resume_task_cycle_info</a></div><div class="ttdeci">#define resume_task_cycle_info(...)</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8h_source.html#l00532">perf_counter.h:532</a></div></div>
<div class="ttc" id="aperf__counter_8h_html_a0a6e5160f19f152b0b9a502e5e24adb7"><div class="ttname"><a href="perf__counter_8h.html#a0a6e5160f19f152b0b9a502e5e24adb7">user_code_insert_to_systick_handler</a></div><div class="ttdeci">void user_code_insert_to_systick_handler(void)</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00233">perf_counter.c:233</a></div></div>
<div class="ttc" id="aperf__counter_8h_html_a11d20291b945175264a568c4c9dcd9bd"><div class="ttname"><a href="perf__counter_8h.html#a11d20291b945175264a568c4c9dcd9bd">register_task_cycle_agent</a></div><div class="ttdeci">#define register_task_cycle_agent(...)</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8h_source.html#l00527">perf_counter.h:527</a></div></div>
<div class="ttc" id="aperf__counter_8h_html_a2add8ab5b23b568bba6d46f9c977dbce"><div class="ttname"><a href="perf__counter_8h.html#a2add8ab5b23b568bba6d46f9c977dbce">delay_ms</a></div><div class="ttdeci">void delay_ms(int32_t nMs)</div><div class="ttdoc">delay specified time in millisecond</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00417">perf_counter.c:417</a></div></div>
<div class="ttc" id="aperf__counter_8h_html_a32dabfe5b863f89f71735b20a0caf1ea"><div class="ttname"><a href="perf__counter_8h.html#a32dabfe5b863f89f71735b20a0caf1ea">get_system_ticks</a></div><div class="ttdeci">int64_t get_system_ticks(void)</div><div class="ttdoc">get the elapsed cycles since perf_counter is initialised</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00472">perf_counter.c:472</a></div></div>
<div class="ttc" id="aperf__counter_8h_html_a607df0241b0f85868159e1e15f44acdc"><div class="ttname"><a href="perf__counter_8h.html#a607df0241b0f85868159e1e15f44acdc">init_task_cycle_info</a></div><div class="ttdeci">#define init_task_cycle_info(...)</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8h_source.html#l00529">perf_counter.h:529</a></div></div>
<div class="ttc" id="aperf__counter_8h_html_a9097d62a30ad2b4f75462c78d7200fa8"><div class="ttname"><a href="perf__counter_8h.html#a9097d62a30ad2b4f75462c78d7200fa8">init_cycle_counter</a></div><div class="ttdeci">void init_cycle_counter(bool bIsSysTickOccupied)</div><div class="ttdoc">initialise cycle counter service</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00280">perf_counter.c:280</a></div></div>
<div class="ttc" id="aperf__counter_8h_html_a96f0ed25511e535714003ec4ca738415"><div class="ttname"><a href="perf__counter_8h.html#a96f0ed25511e535714003ec4ca738415">enable_task_cycle_info</a></div><div class="ttdeci">#define enable_task_cycle_info(...)</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8h_source.html#l00530">perf_counter.h:530</a></div></div>
<div class="ttc" id="aperf__counter_8h_html_a9776dfed871d0e0775c876f16e7618f7"><div class="ttname"><a href="perf__counter_8h.html#a9776dfed871d0e0775c876f16e7618f7">delay_us</a></div><div class="ttdeci">void delay_us(int32_t nUs)</div><div class="ttdoc">delay specified time in microsecond</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00398">perf_counter.c:398</a></div></div>
<div class="ttc" id="aperf__counter_8h_html_a98c51d83fdb448a2733d0a309366149c"><div class="ttname"><a href="perf__counter_8h.html#a98c51d83fdb448a2733d0a309366149c">get_system_ms</a></div><div class="ttdeci">int32_t get_system_ms(void)</div><div class="ttdoc">get the elapsed milliseconds since perf_counter is initialised</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00488">perf_counter.c:488</a></div></div>
<div class="ttc" id="aperf__counter_8h_html_af33fd92801223d4befa49c610332ddd4"><div class="ttname"><a href="perf__counter_8h.html#af33fd92801223d4befa49c610332ddd4">start_cycle_counter</a></div><div class="ttdeci">bool start_cycle_counter(void)</div><div class="ttdoc">try to set a start pointer for the performance counter</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00316">perf_counter.c:316</a></div></div>
<div class="ttc" id="aperf__counter_8h_html_af3fceb4da6cc89dd20a874bd147c2414"><div class="ttname"><a href="perf__counter_8h.html#af3fceb4da6cc89dd20a874bd147c2414">disable_task_cycle_info</a></div><div class="ttdeci">#define disable_task_cycle_info(...)</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8h_source.html#l00531">perf_counter.h:531</a></div></div>
<div class="ttc" id="aperf__counter_8h_html_afdd7c2e511c981ad62525076f53a762e"><div class="ttname"><a href="perf__counter_8h.html#afdd7c2e511c981ad62525076f53a762e">unregister_task_cycle_agent</a></div><div class="ttdeci">#define unregister_task_cycle_agent(...)</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8h_source.html#l00528">perf_counter.h:528</a></div></div>
<div class="ttc" id="astructtask__cycle__info__agent__t_html"><div class="ttname"><a href="structtask__cycle__info__agent__t.html">task_cycle_info_agent_t</a></div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8h_source.html#l00337">perf_counter.h:337</a></div></div>
<div class="ttc" id="astructtask__cycle__info__agent__t_html_a0ab0ef208ec46b60dce3d05a76754931"><div class="ttname"><a href="structtask__cycle__info__agent__t.html#a0ab0ef208ec46b60dce3d05a76754931">task_cycle_info_agent_t::ptPrev</a></div><div class="ttdeci">task_cycle_info_agent_t * ptPrev</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8h_source.html#l00340">perf_counter.h:340</a></div></div>
<div class="ttc" id="astructtask__cycle__info__agent__t_html_a26adda6b75d3722f450eb169546bd7e7"><div class="ttname"><a href="structtask__cycle__info__agent__t.html#a26adda6b75d3722f450eb169546bd7e7">task_cycle_info_agent_t::ptInfo</a></div><div class="ttdeci">task_cycle_info_t * ptInfo</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8h_source.html#l00338">perf_counter.h:338</a></div></div>
<div class="ttc" id="astructtask__cycle__info__agent__t_html_a3f049d289ce99f316894417016d60ca6"><div class="ttname"><a href="structtask__cycle__info__agent__t.html#a3f049d289ce99f316894417016d60ca6">task_cycle_info_agent_t::ptNext</a></div><div class="ttdeci">task_cycle_info_agent_t * ptNext</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8h_source.html#l00339">perf_counter.h:339</a></div></div>
<div class="ttc" id="astructtask__cycle__info__t_html"><div class="ttname"><a href="structtask__cycle__info__t.html">task_cycle_info_t</a></div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8h_source.html#l00326">perf_counter.h:326</a></div></div>
<div class="ttc" id="astructtask__cycle__info__t_html_a0250b43cfb57ddf17f7f40c4cc587249"><div class="ttname"><a href="structtask__cycle__info__t.html#a0250b43cfb57ddf17f7f40c4cc587249">task_cycle_info_t::nUsedRecent</a></div><div class="ttdeci">int32_t nUsedRecent</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8h_source.html#l00329">perf_counter.h:329</a></div></div>
<div class="ttc" id="astructtask__cycle__info__t_html_a19a46cbd05039f568b01e326d65d6b80"><div class="ttname"><a href="structtask__cycle__info__t.html#a19a46cbd05039f568b01e326d65d6b80">task_cycle_info_t::lUsedTotal</a></div><div class="ttdeci">int64_t lUsedTotal</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8h_source.html#l00328">perf_counter.h:328</a></div></div>
<div class="ttc" id="astructtask__cycle__info__t_html_a3b941eea48497afb204462c694bc2d12"><div class="ttname"><a href="structtask__cycle__info__t.html#a3b941eea48497afb204462c694bc2d12">task_cycle_info_t::lStart</a></div><div class="ttdeci">int64_t lStart</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8h_source.html#l00327">perf_counter.h:327</a></div></div>
<div class="ttc" id="astructtask__cycle__info__t_html_a84d3729a2d49dd2e43ef8727fcd6f9b0"><div class="ttname"><a href="structtask__cycle__info__t.html#a84d3729a2d49dd2e43ef8727fcd6f9b0">task_cycle_info_t::hwActiveCount</a></div><div class="ttdeci">uint16_t hwActiveCount</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8h_source.html#l00330">perf_counter.h:330</a></div></div>
<div class="ttc" id="astructtask__cycle__info__t_html_a8a4c67264f8440bb83dec68c4312ff09"><div class="ttname"><a href="structtask__cycle__info__t.html#a8a4c67264f8440bb83dec68c4312ff09">task_cycle_info_t::bEnabled</a></div><div class="ttdeci">uint16_t bEnabled</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8h_source.html#l00332">perf_counter.h:332</a></div></div>
</div><!-- fragment --></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="perf__counter_8h.html">perf_counter.h</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.4 </li>
</ul>
</div>
</body>
</html>

View File

@ -0,0 +1,528 @@
<!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=11"/>
<meta name="generator" content="Doxygen 1.9.4"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>perf_counter: perf_os_patch_freertos.c 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 id="projectrow">
<td id="projectalign">
<div id="projectname">perf_counter
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.4 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @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:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(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:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('perf__os__patch__freertos_8c.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">perf_os_patch_freertos.c File Reference</div></div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &quot;FreeRTOS.h&quot;</code><br />
<code>#include &quot;task.h&quot;</code><br />
<code>#include &quot;timers.h&quot;</code><br />
<code>#include &quot;stack_macros.h&quot;</code><br />
<code>#include &quot;<a class="el" href="perf__counter_8h_source.html">perf_counter.h</a>&quot;</code><br />
<code>#include &quot;cmsis_compiler.h&quot;</code><br />
</div>
<p><a href="perf__os__patch__freertos_8c_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 id="nested-classes" 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____task__cycle__info__t.html">__task_cycle_info_t</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="structtsk_task_control_block.html">tskTaskControlBlock</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 id="define-members" name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:ab622d8c674f2a417a666a7ed89109e79"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="perf__os__patch__freertos_8c.html#ab622d8c674f2a417a666a7ed89109e79">MPU_WRAPPERS_INCLUDED_FROM_API_FILE</a></td></tr>
<tr class="separator:ab622d8c674f2a417a666a7ed89109e79"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a34b5fd2f760a3a19875464d26bdb71df"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="perf__os__patch__freertos_8c.html#a34b5fd2f760a3a19875464d26bdb71df">WRAP_FUNC</a>(__NAME)&#160;&#160;&#160;__WRAP_FUNC(__NAME)</td></tr>
<tr class="separator:a34b5fd2f760a3a19875464d26bdb71df"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa7290a1d64a5cbe15d52fec89b35f1b9"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="perf__os__patch__freertos_8c.html#aa7290a1d64a5cbe15d52fec89b35f1b9">ORIG_FUNC</a>(__NAME)&#160;&#160;&#160;__ORIG_FUNC(__NAME)</td></tr>
<tr class="separator:aa7290a1d64a5cbe15d52fec89b35f1b9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af1545bfa164313b88b851eb84f466541"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="perf__os__patch__freertos_8c.html#af1545bfa164313b88b851eb84f466541">EvtFreeRTOSTasksNo</a>&#160;&#160;&#160;(0xF0U)</td></tr>
<tr class="separator:af1545bfa164313b88b851eb84f466541"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a324f9bb05f8ce010d19ec560b4e1da95"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="perf__os__patch__freertos_8c.html#a324f9bb05f8ce010d19ec560b4e1da95">EvtFreeRTOSTasks_TaskSwitchedOut</a>&#160;&#160;&#160; EventID(EventLevelOp, <a class="el" href="perf__os__patch__freertos_8c.html#af1545bfa164313b88b851eb84f466541">EvtFreeRTOSTasksNo</a>, 0x0BU)</td></tr>
<tr class="separator:a324f9bb05f8ce010d19ec560b4e1da95"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aea3ef800c9428b732ffbe8445eefee66"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="perf__os__patch__freertos_8c.html#aea3ef800c9428b732ffbe8445eefee66">EvtFreeRTOSTasks_TaskSwitchedIn</a>&#160;&#160;&#160; EventID(EventLevelOp, <a class="el" href="perf__os__patch__freertos_8c.html#af1545bfa164313b88b851eb84f466541">EvtFreeRTOSTasksNo</a>, 0x0CU)</td></tr>
<tr class="separator:aea3ef800c9428b732ffbe8445eefee66"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="typedef-members" name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:a67b1ddede4e49c946dd720d83c5838a5"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structtsk_task_control_block.html">tskTaskControlBlock</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="perf__os__patch__freertos_8c.html#a67b1ddede4e49c946dd720d83c5838a5">tskTCB</a></td></tr>
<tr class="separator:a67b1ddede4e49c946dd720d83c5838a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa3c2dda92a6dc22860bbdb36e42a0453"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="perf__os__patch__freertos_8c.html#a67b1ddede4e49c946dd720d83c5838a5">tskTCB</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="perf__os__patch__freertos_8c.html#aa3c2dda92a6dc22860bbdb36e42a0453">TCB_t</a></td></tr>
<tr class="separator:aa3c2dda92a6dc22860bbdb36e42a0453"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:aded00de9fbde9be7f8872f85685b36a4"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="perf__os__patch__freertos_8c.html#aded00de9fbde9be7f8872f85685b36a4">__on_context_switch_in</a> (uint32_t *pwStack)</td></tr>
<tr class="separator:aded00de9fbde9be7f8872f85685b36a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aee2926404ade74811fa658786035f745"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="perf__os__patch__freertos_8c.html#aee2926404ade74811fa658786035f745">__on_context_switch_out</a> (uint32_t *pwStack)</td></tr>
<tr class="separator:aee2926404ade74811fa658786035f745"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5d7733a0a2eec8eb3c6782ddfd6bf44c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="perf__os__patch__freertos_8c.html#a5d7733a0a2eec8eb3c6782ddfd6bf44c">__freertos_evr_on_task_switched_out</a> (void *ptTCB)</td></tr>
<tr class="separator:a5d7733a0a2eec8eb3c6782ddfd6bf44c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a411ff611b06926d6bcde27c0c621895c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="perf__os__patch__freertos_8c.html#a411ff611b06926d6bcde27c0c621895c">__freertos_evr_on_task_switched_in</a> (void *ptTCB, uint32_t uxTopPriority)</td></tr>
<tr class="separator:a411ff611b06926d6bcde27c0c621895c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aafe74ae771ab855185531aae1e42657c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structtask__cycle__info__t.html">task_cycle_info_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="perf__os__patch__freertos_8c.html#aafe74ae771ab855185531aae1e42657c">get_rtos_task_cycle_info</a> (void)</td></tr>
<tr class="separator:aafe74ae771ab855185531aae1e42657c"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="var-members" name="var-members"></a>
Variables</h2></td></tr>
<tr class="memitem:acdecf2afe97343aba42b111bc6df9eea"><td class="memItemLeft" align="right" valign="top">PRIVILEGED_DATA <a class="el" href="perf__os__patch__freertos_8c.html#aa3c2dda92a6dc22860bbdb36e42a0453">TCB_t</a> *volatile&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="perf__os__patch__freertos_8c.html#acdecf2afe97343aba42b111bc6df9eea">pxCurrentTCB</a></td></tr>
<tr class="separator:acdecf2afe97343aba42b111bc6df9eea"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Macro Definition Documentation</h2>
<a id="aea3ef800c9428b732ffbe8445eefee66" name="aea3ef800c9428b732ffbe8445eefee66"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aea3ef800c9428b732ffbe8445eefee66">&#9670;&nbsp;</a></span>EvtFreeRTOSTasks_TaskSwitchedIn</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define EvtFreeRTOSTasks_TaskSwitchedIn&#160;&#160;&#160; EventID(EventLevelOp, <a class="el" href="perf__os__patch__freertos_8c.html#af1545bfa164313b88b851eb84f466541">EvtFreeRTOSTasksNo</a>, 0x0CU)</td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="perf__os__patch__freertos_8c_source.html#l00210">210</a> of file <a class="el" href="perf__os__patch__freertos_8c_source.html">perf_os_patch_freertos.c</a>.</p>
</div>
</div>
<a id="a324f9bb05f8ce010d19ec560b4e1da95" name="a324f9bb05f8ce010d19ec560b4e1da95"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a324f9bb05f8ce010d19ec560b4e1da95">&#9670;&nbsp;</a></span>EvtFreeRTOSTasks_TaskSwitchedOut</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define EvtFreeRTOSTasks_TaskSwitchedOut&#160;&#160;&#160; EventID(EventLevelOp, <a class="el" href="perf__os__patch__freertos_8c.html#af1545bfa164313b88b851eb84f466541">EvtFreeRTOSTasksNo</a>, 0x0BU)</td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="perf__os__patch__freertos_8c_source.html#l00208">208</a> of file <a class="el" href="perf__os__patch__freertos_8c_source.html">perf_os_patch_freertos.c</a>.</p>
</div>
</div>
<a id="af1545bfa164313b88b851eb84f466541" name="af1545bfa164313b88b851eb84f466541"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af1545bfa164313b88b851eb84f466541">&#9670;&nbsp;</a></span>EvtFreeRTOSTasksNo</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define EvtFreeRTOSTasksNo&#160;&#160;&#160;(0xF0U)</td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="perf__os__patch__freertos_8c_source.html#l00206">206</a> of file <a class="el" href="perf__os__patch__freertos_8c_source.html">perf_os_patch_freertos.c</a>.</p>
</div>
</div>
<a id="ab622d8c674f2a417a666a7ed89109e79" name="ab622d8c674f2a417a666a7ed89109e79"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab622d8c674f2a417a666a7ed89109e79">&#9670;&nbsp;</a></span>MPU_WRAPPERS_INCLUDED_FROM_API_FILE</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MPU_WRAPPERS_INCLUDED_FROM_API_FILE</td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="perf__os__patch__freertos_8c_source.html#l00025">25</a> of file <a class="el" href="perf__os__patch__freertos_8c_source.html">perf_os_patch_freertos.c</a>.</p>
</div>
</div>
<a id="aa7290a1d64a5cbe15d52fec89b35f1b9" name="aa7290a1d64a5cbe15d52fec89b35f1b9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa7290a1d64a5cbe15d52fec89b35f1b9">&#9670;&nbsp;</a></span>ORIG_FUNC</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define ORIG_FUNC</td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname">__NAME</td><td>)</td>
<td>&#160;&#160;&#160;__ORIG_FUNC(__NAME)</td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="perf__os__patch__freertos_8c_source.html#l00059">59</a> of file <a class="el" href="perf__os__patch__freertos_8c_source.html">perf_os_patch_freertos.c</a>.</p>
</div>
</div>
<a id="a34b5fd2f760a3a19875464d26bdb71df" name="a34b5fd2f760a3a19875464d26bdb71df"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a34b5fd2f760a3a19875464d26bdb71df">&#9670;&nbsp;</a></span>WRAP_FUNC</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define WRAP_FUNC</td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname">__NAME</td><td>)</td>
<td>&#160;&#160;&#160;__WRAP_FUNC(__NAME)</td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="perf__os__patch__freertos_8c_source.html#l00058">58</a> of file <a class="el" href="perf__os__patch__freertos_8c_source.html">perf_os_patch_freertos.c</a>.</p>
</div>
</div>
<h2 class="groupheader">Typedef Documentation</h2>
<a id="aa3c2dda92a6dc22860bbdb36e42a0453" name="aa3c2dda92a6dc22860bbdb36e42a0453"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa3c2dda92a6dc22860bbdb36e42a0453">&#9670;&nbsp;</a></span>TCB_t</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef <a class="el" href="perf__os__patch__freertos_8c.html#a67b1ddede4e49c946dd720d83c5838a5">tskTCB</a> <a class="el" href="perf__os__patch__freertos_8c.html#aa3c2dda92a6dc22860bbdb36e42a0453">TCB_t</a></td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="perf__os__patch__freertos_8c_source.html#l00158">158</a> of file <a class="el" href="perf__os__patch__freertos_8c_source.html">perf_os_patch_freertos.c</a>.</p>
</div>
</div>
<a id="a67b1ddede4e49c946dd720d83c5838a5" name="a67b1ddede4e49c946dd720d83c5838a5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a67b1ddede4e49c946dd720d83c5838a5">&#9670;&nbsp;</a></span>tskTCB</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef struct <a class="el" href="structtsk_task_control_block.html">tskTaskControlBlock</a> <a class="el" href="perf__os__patch__freertos_8c.html#a67b1ddede4e49c946dd720d83c5838a5">tskTCB</a></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a id="a411ff611b06926d6bcde27c0c621895c" name="a411ff611b06926d6bcde27c0c621895c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a411ff611b06926d6bcde27c0c621895c">&#9670;&nbsp;</a></span>__freertos_evr_on_task_switched_in()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void __freertos_evr_on_task_switched_in </td>
<td>(</td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>ptTCB</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>uxTopPriority</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="perf__os__patch__freertos_8c_source.html#l00225">225</a> of file <a class="el" href="perf__os__patch__freertos_8c_source.html">perf_os_patch_freertos.c</a>.</p>
<div class="fragment"><div class="line"><span class="lineno"> 225</span> {</div>
<div class="line"><span class="lineno"> 226</span><span class="preprocessor">#if defined(RTE_Compiler_EventRecorder)</span></div>
<div class="line"><span class="lineno"> 227</span> EventRecord2(<a class="code hl_define" href="perf__os__patch__freertos_8c.html#aea3ef800c9428b732ffbe8445eefee66">EvtFreeRTOSTasks_TaskSwitchedIn</a>, (uint32_t)ptTCB, uxTopPriority);</div>
<div class="line"><span class="lineno"> 228</span><span class="preprocessor">#else</span></div>
<div class="line"><span class="lineno"> 229</span> (void)<a class="code hl_variable" href="perf__os__patch__freertos_8c.html#acdecf2afe97343aba42b111bc6df9eea">pxCurrentTCB</a>;</div>
<div class="line"><span class="lineno"> 230</span> (void)uxTopPriority;</div>
<div class="line"><span class="lineno"> 231</span><span class="preprocessor">#endif</span></div>
<div class="line"><span class="lineno"> 232</span> </div>
<div class="line"><span class="lineno"> 233</span> <a class="code hl_function" href="perf__os__patch__freertos_8c.html#aded00de9fbde9be7f8872f85685b36a4">__on_context_switch_in</a>(((<a class="code hl_struct" href="structtsk_task_control_block.html">TCB_t</a> *)ptTCB)-&gt;pxStack);</div>
<div class="line"><span class="lineno"> 234</span>}</div>
<div class="ttc" id="aperf__os__patch__freertos_8c_html_acdecf2afe97343aba42b111bc6df9eea"><div class="ttname"><a href="perf__os__patch__freertos_8c.html#acdecf2afe97343aba42b111bc6df9eea">pxCurrentTCB</a></div><div class="ttdeci">PRIVILEGED_DATA TCB_t *volatile pxCurrentTCB</div></div>
<div class="ttc" id="aperf__os__patch__freertos_8c_html_aded00de9fbde9be7f8872f85685b36a4"><div class="ttname"><a href="perf__os__patch__freertos_8c.html#aded00de9fbde9be7f8872f85685b36a4">__on_context_switch_in</a></div><div class="ttdeci">void __on_context_switch_in(uint32_t *pwStack)</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00646">perf_counter.c:646</a></div></div>
<div class="ttc" id="aperf__os__patch__freertos_8c_html_aea3ef800c9428b732ffbe8445eefee66"><div class="ttname"><a href="perf__os__patch__freertos_8c.html#aea3ef800c9428b732ffbe8445eefee66">EvtFreeRTOSTasks_TaskSwitchedIn</a></div><div class="ttdeci">#define EvtFreeRTOSTasks_TaskSwitchedIn</div><div class="ttdef"><b>Definition:</b> <a href="perf__os__patch__freertos_8c_source.html#l00210">perf_os_patch_freertos.c:210</a></div></div>
<div class="ttc" id="astructtsk_task_control_block_html"><div class="ttname"><a href="structtsk_task_control_block.html">tskTaskControlBlock</a></div><div class="ttdef"><b>Definition:</b> <a href="perf__os__patch__freertos_8c_source.html#l00077">perf_os_patch_freertos.c:78</a></div></div>
</div><!-- fragment -->
<p class="reference">References <a class="el" href="perf__counter_8c_source.html#l00646">__on_context_switch_in()</a>, <a class="el" href="perf__os__patch__freertos_8c_source.html#l00210">EvtFreeRTOSTasks_TaskSwitchedIn</a>, and <a class="el" href="perf__os__patch__freertos_8c.html#acdecf2afe97343aba42b111bc6df9eea">pxCurrentTCB</a>.</p>
</div>
</div>
<a id="a5d7733a0a2eec8eb3c6782ddfd6bf44c" name="a5d7733a0a2eec8eb3c6782ddfd6bf44c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5d7733a0a2eec8eb3c6782ddfd6bf44c">&#9670;&nbsp;</a></span>__freertos_evr_on_task_switched_out()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void __freertos_evr_on_task_switched_out </td>
<td>(</td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>ptTCB</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="perf__os__patch__freertos_8c_source.html#l00213">213</a> of file <a class="el" href="perf__os__patch__freertos_8c_source.html">perf_os_patch_freertos.c</a>.</p>
<div class="fragment"><div class="line"><span class="lineno"> 213</span> {</div>
<div class="line"><span class="lineno"> 214</span><span class="preprocessor">#if defined(RTE_Compiler_EventRecorder)</span></div>
<div class="line"><span class="lineno"> 215</span> EventRecord2(<a class="code hl_define" href="perf__os__patch__freertos_8c.html#a324f9bb05f8ce010d19ec560b4e1da95">EvtFreeRTOSTasks_TaskSwitchedOut</a>, (uint32_t)ptTCB, 0U);</div>
<div class="line"><span class="lineno"> 216</span><span class="preprocessor">#else</span></div>
<div class="line"><span class="lineno"> 217</span> (void)<a class="code hl_variable" href="perf__os__patch__freertos_8c.html#acdecf2afe97343aba42b111bc6df9eea">pxCurrentTCB</a>;</div>
<div class="line"><span class="lineno"> 218</span><span class="preprocessor">#endif</span></div>
<div class="line"><span class="lineno"> 219</span> </div>
<div class="line"><span class="lineno"> 220</span> <a class="code hl_function" href="perf__os__patch__freertos_8c.html#aee2926404ade74811fa658786035f745">__on_context_switch_out</a>(((<a class="code hl_struct" href="structtsk_task_control_block.html">TCB_t</a> *)ptTCB)-&gt;pxStack);</div>
<div class="line"><span class="lineno"> 221</span> </div>
<div class="line"><span class="lineno"> 222</span>}</div>
<div class="ttc" id="aperf__os__patch__freertos_8c_html_a324f9bb05f8ce010d19ec560b4e1da95"><div class="ttname"><a href="perf__os__patch__freertos_8c.html#a324f9bb05f8ce010d19ec560b4e1da95">EvtFreeRTOSTasks_TaskSwitchedOut</a></div><div class="ttdeci">#define EvtFreeRTOSTasks_TaskSwitchedOut</div><div class="ttdef"><b>Definition:</b> <a href="perf__os__patch__freertos_8c_source.html#l00208">perf_os_patch_freertos.c:208</a></div></div>
<div class="ttc" id="aperf__os__patch__freertos_8c_html_aee2926404ade74811fa658786035f745"><div class="ttname"><a href="perf__os__patch__freertos_8c.html#aee2926404ade74811fa658786035f745">__on_context_switch_out</a></div><div class="ttdeci">void __on_context_switch_out(uint32_t *pwStack)</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00668">perf_counter.c:668</a></div></div>
</div><!-- fragment -->
<p class="reference">References <a class="el" href="perf__counter_8c_source.html#l00668">__on_context_switch_out()</a>, <a class="el" href="perf__os__patch__freertos_8c_source.html#l00208">EvtFreeRTOSTasks_TaskSwitchedOut</a>, and <a class="el" href="perf__os__patch__freertos_8c.html#acdecf2afe97343aba42b111bc6df9eea">pxCurrentTCB</a>.</p>
</div>
</div>
<a id="aded00de9fbde9be7f8872f85685b36a4" name="aded00de9fbde9be7f8872f85685b36a4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aded00de9fbde9be7f8872f85685b36a4">&#9670;&nbsp;</a></span>__on_context_switch_in()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void __on_context_switch_in </td>
<td>(</td>
<td class="paramtype">uint32_t *&#160;</td>
<td class="paramname"><em>pwStack</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section note"><dt>Note</dt><dd>if you aren't using perf_counter inside KEIL with RTE, please create ! a header file called "Pre_Include_Global.h", copy the following ! content into the header file and and put following option ! to your command line (supposing you are using arm compiler 6): ! -include "Pre_Include_Global.h" </dd></dl>
<p >update all agents</p>
<p class="definition">Definition at line <a class="el" href="perf__counter_8c_source.html#l00646">646</a> of file <a class="el" href="perf__counter_8c_source.html">perf_counter.c</a>.</p>
<div class="fragment"><div class="line"><span class="lineno"> 647</span>{</div>
<div class="line"><span class="lineno"> 648</span> <span class="keyword">struct </span><a class="code hl_struct" href="struct____task__cycle__info__t.html">__task_cycle_info_t</a> *ptRootAgent = (<span class="keyword">struct </span><a class="code hl_struct" href="struct____task__cycle__info__t.html">__task_cycle_info_t</a> *)pwStack;</div>
<div class="line"><span class="lineno"> 649</span> uint64_t dwTimeStamp = <a class="code hl_function" href="perf__counter_8c.html#a32dabfe5b863f89f71735b20a0caf1ea">get_system_ticks</a>();</div>
<div class="line"><span class="lineno"> 650</span> </div>
<div class="line"><span class="lineno"> 651</span> ptRootAgent-&gt;<a class="code hl_variable" href="struct____task__cycle__info__t.html#ae2aae11f91e3eea654ceeac9b81706cb">lLastTimeStamp</a> = dwTimeStamp;</div>
<div class="line"><span class="lineno"> 652</span> ptRootAgent-&gt;<a class="code hl_variable" href="struct____task__cycle__info__t.html#a8af024785267321e4ef544e7f25d80dc">tInfo</a>.<a class="code hl_variable" href="structtask__cycle__info__t.html#a84d3729a2d49dd2e43ef8727fcd6f9b0">hwActiveCount</a>++;</div>
<div class="line"><span class="lineno"> 653</span> </div>
<div class="line"><span class="lineno"> 654</span> <span class="keywordflow">if</span> (<a class="code hl_define" href="perf__counter_8c.html#a5ed2b69d382ff960de71b5aa2e0b0deb">MAGIC_WORD_AGENT_LIST_VALID</a> == ptRootAgent-&gt;<a class="code hl_variable" href="struct____task__cycle__info__t.html#a88c8aad5ae23ae04fa44b2892081561b">wMagicWord</a>) {</div>
<div class="line"><span class="lineno"> 656</span> <a class="code hl_struct" href="structtask__cycle__info__agent__t.html">task_cycle_info_agent_t</a> *ptAgent = ptRootAgent-&gt;<a class="code hl_variable" href="struct____task__cycle__info__t.html#a7d50a2272c4a1b65f927e8c6d1242b33">tList</a>.<a class="code hl_variable" href="structtask__cycle__info__agent__t.html#a3f049d289ce99f316894417016d60ca6">ptNext</a>;</div>
<div class="line"><span class="lineno"> 657</span> <span class="keywordflow">while</span>(NULL != ptAgent) {</div>
<div class="line"><span class="lineno"> 658</span> <span class="keywordflow">if</span> (NULL != ptAgent-&gt;<a class="code hl_variable" href="structtask__cycle__info__agent__t.html#a26adda6b75d3722f450eb169546bd7e7">ptInfo</a>) {</div>
<div class="line"><span class="lineno"> 659</span> <span class="keywordflow">if</span> (ptAgent-&gt;<a class="code hl_variable" href="structtask__cycle__info__agent__t.html#a26adda6b75d3722f450eb169546bd7e7">ptInfo</a>-&gt;<a class="code hl_variable" href="structtask__cycle__info__t.html#a8a4c67264f8440bb83dec68c4312ff09">bEnabled</a>) {</div>
<div class="line"><span class="lineno"> 660</span> ptAgent-&gt;<a class="code hl_variable" href="structtask__cycle__info__agent__t.html#a26adda6b75d3722f450eb169546bd7e7">ptInfo</a>-&gt;<a class="code hl_variable" href="structtask__cycle__info__t.html#a84d3729a2d49dd2e43ef8727fcd6f9b0">hwActiveCount</a>++;</div>
<div class="line"><span class="lineno"> 661</span> }</div>
<div class="line"><span class="lineno"> 662</span> }</div>
<div class="line"><span class="lineno"> 663</span> ptAgent = ptAgent-&gt;<a class="code hl_variable" href="structtask__cycle__info__agent__t.html#a3f049d289ce99f316894417016d60ca6">ptNext</a>;</div>
<div class="line"><span class="lineno"> 664</span> }</div>
<div class="line"><span class="lineno"> 665</span> }</div>
<div class="line"><span class="lineno"> 666</span>}</div>
<div class="ttc" id="aperf__counter_8c_html_a32dabfe5b863f89f71735b20a0caf1ea"><div class="ttname"><a href="perf__counter_8c.html#a32dabfe5b863f89f71735b20a0caf1ea">get_system_ticks</a></div><div class="ttdeci">int64_t get_system_ticks(void)</div><div class="ttdoc">get the elapsed cycles since perf_counter is initialised</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00472">perf_counter.c:472</a></div></div>
<div class="ttc" id="aperf__counter_8c_html_a5ed2b69d382ff960de71b5aa2e0b0deb"><div class="ttname"><a href="perf__counter_8c.html#a5ed2b69d382ff960de71b5aa2e0b0deb">MAGIC_WORD_AGENT_LIST_VALID</a></div><div class="ttdeci">#define MAGIC_WORD_AGENT_LIST_VALID</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00111">perf_counter.c:111</a></div></div>
<div class="ttc" id="astruct____task__cycle__info__t_html"><div class="ttname"><a href="struct____task__cycle__info__t.html">__task_cycle_info_t</a></div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00161">perf_counter.c:161</a></div></div>
<div class="ttc" id="astruct____task__cycle__info__t_html_a7d50a2272c4a1b65f927e8c6d1242b33"><div class="ttname"><a href="struct____task__cycle__info__t.html#a7d50a2272c4a1b65f927e8c6d1242b33">__task_cycle_info_t::tList</a></div><div class="ttdeci">task_cycle_info_agent_t tList</div><div class="ttdoc">the root of the agent list</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00164">perf_counter.c:164</a></div></div>
<div class="ttc" id="astruct____task__cycle__info__t_html_a88c8aad5ae23ae04fa44b2892081561b"><div class="ttname"><a href="struct____task__cycle__info__t.html#a88c8aad5ae23ae04fa44b2892081561b">__task_cycle_info_t::wMagicWord</a></div><div class="ttdeci">uint32_t wMagicWord</div><div class="ttdoc">an magic word for validation</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00165">perf_counter.c:165</a></div></div>
<div class="ttc" id="astruct____task__cycle__info__t_html_a8af024785267321e4ef544e7f25d80dc"><div class="ttname"><a href="struct____task__cycle__info__t.html#a8af024785267321e4ef544e7f25d80dc">__task_cycle_info_t::tInfo</a></div><div class="ttdeci">task_cycle_info_t tInfo</div><div class="ttdoc">cycle information</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00162">perf_counter.c:162</a></div></div>
<div class="ttc" id="astruct____task__cycle__info__t_html_ae2aae11f91e3eea654ceeac9b81706cb"><div class="ttname"><a href="struct____task__cycle__info__t.html#ae2aae11f91e3eea654ceeac9b81706cb">__task_cycle_info_t::lLastTimeStamp</a></div><div class="ttdeci">int64_t lLastTimeStamp</div><div class="ttdoc">previous timestamp</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00163">perf_counter.c:163</a></div></div>
<div class="ttc" id="astructtask__cycle__info__agent__t_html"><div class="ttname"><a href="structtask__cycle__info__agent__t.html">task_cycle_info_agent_t</a></div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8h_source.html#l00337">perf_counter.h:337</a></div></div>
<div class="ttc" id="astructtask__cycle__info__agent__t_html_a26adda6b75d3722f450eb169546bd7e7"><div class="ttname"><a href="structtask__cycle__info__agent__t.html#a26adda6b75d3722f450eb169546bd7e7">task_cycle_info_agent_t::ptInfo</a></div><div class="ttdeci">task_cycle_info_t * ptInfo</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8h_source.html#l00338">perf_counter.h:338</a></div></div>
<div class="ttc" id="astructtask__cycle__info__agent__t_html_a3f049d289ce99f316894417016d60ca6"><div class="ttname"><a href="structtask__cycle__info__agent__t.html#a3f049d289ce99f316894417016d60ca6">task_cycle_info_agent_t::ptNext</a></div><div class="ttdeci">task_cycle_info_agent_t * ptNext</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8h_source.html#l00339">perf_counter.h:339</a></div></div>
<div class="ttc" id="astructtask__cycle__info__t_html_a84d3729a2d49dd2e43ef8727fcd6f9b0"><div class="ttname"><a href="structtask__cycle__info__t.html#a84d3729a2d49dd2e43ef8727fcd6f9b0">task_cycle_info_t::hwActiveCount</a></div><div class="ttdeci">uint16_t hwActiveCount</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8h_source.html#l00330">perf_counter.h:330</a></div></div>
<div class="ttc" id="astructtask__cycle__info__t_html_a8a4c67264f8440bb83dec68c4312ff09"><div class="ttname"><a href="structtask__cycle__info__t.html#a8a4c67264f8440bb83dec68c4312ff09">task_cycle_info_t::bEnabled</a></div><div class="ttdeci">uint16_t bEnabled</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8h_source.html#l00332">perf_counter.h:332</a></div></div>
</div><!-- fragment -->
<p class="reference">Referenced by <a class="el" href="perf__os__patch__freertos_8c_source.html#l00225">__freertos_evr_on_task_switched_in()</a>.</p>
</div>
</div>
<a id="aee2926404ade74811fa658786035f745" name="aee2926404ade74811fa658786035f745"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aee2926404ade74811fa658786035f745">&#9670;&nbsp;</a></span>__on_context_switch_out()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void __on_context_switch_out </td>
<td>(</td>
<td class="paramtype">uint32_t *&#160;</td>
<td class="paramname"><em>pwStack</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p >update all agents</p>
<p class="definition">Definition at line <a class="el" href="perf__counter_8c_source.html#l00668">668</a> of file <a class="el" href="perf__counter_8c_source.html">perf_counter.c</a>.</p>
<div class="fragment"><div class="line"><span class="lineno"> 669</span>{</div>
<div class="line"><span class="lineno"> 670</span> <span class="keyword">struct </span><a class="code hl_struct" href="struct____task__cycle__info__t.html">__task_cycle_info_t</a> *ptRootAgent = (<span class="keyword">struct </span><a class="code hl_struct" href="struct____task__cycle__info__t.html">__task_cycle_info_t</a> *)pwStack;</div>
<div class="line"><span class="lineno"> 671</span> int64_t lCycleUsed = <a class="code hl_function" href="perf__counter_8c.html#a32dabfe5b863f89f71735b20a0caf1ea">get_system_ticks</a>() - ptRootAgent-&gt;<a class="code hl_variable" href="struct____task__cycle__info__t.html#ae2aae11f91e3eea654ceeac9b81706cb">lLastTimeStamp</a>;</div>
<div class="line"><span class="lineno"> 672</span> </div>
<div class="line"><span class="lineno"> 673</span> ptRootAgent-&gt;<a class="code hl_variable" href="struct____task__cycle__info__t.html#a8af024785267321e4ef544e7f25d80dc">tInfo</a>.<a class="code hl_variable" href="structtask__cycle__info__t.html#a0250b43cfb57ddf17f7f40c4cc587249">nUsedRecent</a> = lCycleUsed;</div>
<div class="line"><span class="lineno"> 674</span> ptRootAgent-&gt;<a class="code hl_variable" href="struct____task__cycle__info__t.html#a8af024785267321e4ef544e7f25d80dc">tInfo</a>.<a class="code hl_variable" href="structtask__cycle__info__t.html#a19a46cbd05039f568b01e326d65d6b80">lUsedTotal</a> += lCycleUsed;</div>
<div class="line"><span class="lineno"> 675</span> </div>
<div class="line"><span class="lineno"> 676</span> <span class="keywordflow">if</span> (<a class="code hl_define" href="perf__counter_8c.html#a5ed2b69d382ff960de71b5aa2e0b0deb">MAGIC_WORD_AGENT_LIST_VALID</a> == ptRootAgent-&gt;<a class="code hl_variable" href="struct____task__cycle__info__t.html#a88c8aad5ae23ae04fa44b2892081561b">wMagicWord</a>) {</div>
<div class="line"><span class="lineno"> 678</span> <a class="code hl_struct" href="structtask__cycle__info__agent__t.html">task_cycle_info_agent_t</a> *ptAgent = ptRootAgent-&gt;<a class="code hl_variable" href="struct____task__cycle__info__t.html#a7d50a2272c4a1b65f927e8c6d1242b33">tList</a>.<a class="code hl_variable" href="structtask__cycle__info__agent__t.html#a3f049d289ce99f316894417016d60ca6">ptNext</a>;</div>
<div class="line"><span class="lineno"> 679</span> <span class="keywordflow">while</span>(NULL != ptAgent) {</div>
<div class="line"><span class="lineno"> 680</span> <span class="keywordflow">if</span> (NULL != ptAgent-&gt;<a class="code hl_variable" href="structtask__cycle__info__agent__t.html#a26adda6b75d3722f450eb169546bd7e7">ptInfo</a>) {</div>
<div class="line"><span class="lineno"> 681</span> <span class="keywordflow">if</span> (ptAgent-&gt;<a class="code hl_variable" href="structtask__cycle__info__agent__t.html#a26adda6b75d3722f450eb169546bd7e7">ptInfo</a>-&gt;<a class="code hl_variable" href="structtask__cycle__info__t.html#a8a4c67264f8440bb83dec68c4312ff09">bEnabled</a>) {</div>
<div class="line"><span class="lineno"> 682</span> ptAgent-&gt;<a class="code hl_variable" href="structtask__cycle__info__agent__t.html#a26adda6b75d3722f450eb169546bd7e7">ptInfo</a>-&gt;<a class="code hl_variable" href="structtask__cycle__info__t.html#a0250b43cfb57ddf17f7f40c4cc587249">nUsedRecent</a> = lCycleUsed;</div>
<div class="line"><span class="lineno"> 683</span> ptAgent-&gt;<a class="code hl_variable" href="structtask__cycle__info__agent__t.html#a26adda6b75d3722f450eb169546bd7e7">ptInfo</a>-&gt;<a class="code hl_variable" href="structtask__cycle__info__t.html#a19a46cbd05039f568b01e326d65d6b80">lUsedTotal</a> += lCycleUsed;</div>
<div class="line"><span class="lineno"> 684</span> }</div>
<div class="line"><span class="lineno"> 685</span> }</div>
<div class="line"><span class="lineno"> 686</span> ptAgent = ptAgent-&gt;<a class="code hl_variable" href="structtask__cycle__info__agent__t.html#a3f049d289ce99f316894417016d60ca6">ptNext</a>;</div>
<div class="line"><span class="lineno"> 687</span> }</div>
<div class="line"><span class="lineno"> 688</span> }</div>
<div class="line"><span class="lineno"> 689</span>}</div>
<div class="ttc" id="astructtask__cycle__info__t_html_a0250b43cfb57ddf17f7f40c4cc587249"><div class="ttname"><a href="structtask__cycle__info__t.html#a0250b43cfb57ddf17f7f40c4cc587249">task_cycle_info_t::nUsedRecent</a></div><div class="ttdeci">int32_t nUsedRecent</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8h_source.html#l00329">perf_counter.h:329</a></div></div>
<div class="ttc" id="astructtask__cycle__info__t_html_a19a46cbd05039f568b01e326d65d6b80"><div class="ttname"><a href="structtask__cycle__info__t.html#a19a46cbd05039f568b01e326d65d6b80">task_cycle_info_t::lUsedTotal</a></div><div class="ttdeci">int64_t lUsedTotal</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8h_source.html#l00328">perf_counter.h:328</a></div></div>
</div><!-- fragment -->
<p class="reference">Referenced by <a class="el" href="perf__os__patch__freertos_8c_source.html#l00213">__freertos_evr_on_task_switched_out()</a>.</p>
</div>
</div>
<a id="aafe74ae771ab855185531aae1e42657c" name="aafe74ae771ab855185531aae1e42657c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aafe74ae771ab855185531aae1e42657c">&#9670;&nbsp;</a></span>get_rtos_task_cycle_info()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structtask__cycle__info__t.html">task_cycle_info_t</a> * get_rtos_task_cycle_info </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="perf__os__patch__freertos_8c_source.html#l00237">237</a> of file <a class="el" href="perf__os__patch__freertos_8c_source.html">perf_os_patch_freertos.c</a>.</p>
<div class="fragment"><div class="line"><span class="lineno"> 238</span>{ </div>
<div class="line"><span class="lineno"> 239</span> <span class="keywordflow">return</span> &amp;(((<span class="keyword">struct </span><a class="code hl_struct" href="struct____task__cycle__info__t.html">__task_cycle_info_t</a> *)<a class="code hl_variable" href="perf__os__patch__freertos_8c.html#acdecf2afe97343aba42b111bc6df9eea">pxCurrentTCB</a>-&gt;<a class="code hl_variable" href="structtsk_task_control_block.html#aaecd48bdf732c1df94b258956ca85bd7">pxStack</a>)-&gt;tInfo);</div>
<div class="line"><span class="lineno"> 240</span>}</div>
<div class="ttc" id="astructtsk_task_control_block_html_aaecd48bdf732c1df94b258956ca85bd7"><div class="ttname"><a href="structtsk_task_control_block.html#aaecd48bdf732c1df94b258956ca85bd7">tskTaskControlBlock::pxStack</a></div><div class="ttdeci">StackType_t * pxStack</div><div class="ttdef"><b>Definition:</b> <a href="perf__os__patch__freertos_8c_source.html#l00088">perf_os_patch_freertos.c:88</a></div></div>
</div><!-- fragment -->
<p class="reference">References <a class="el" href="perf__os__patch__freertos_8c.html#acdecf2afe97343aba42b111bc6df9eea">pxCurrentTCB</a>, and <a class="el" href="perf__os__patch__freertos_8c_source.html#l00088">tskTaskControlBlock::pxStack</a>.</p>
</div>
</div>
<h2 class="groupheader">Variable Documentation</h2>
<a id="acdecf2afe97343aba42b111bc6df9eea" name="acdecf2afe97343aba42b111bc6df9eea"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acdecf2afe97343aba42b111bc6df9eea">&#9670;&nbsp;</a></span>pxCurrentTCB</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">PRIVILEGED_DATA <a class="el" href="perf__os__patch__freertos_8c.html#aa3c2dda92a6dc22860bbdb36e42a0453">TCB_t</a>* volatile pxCurrentTCB</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">extern</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="reference">Referenced by <a class="el" href="perf__os__patch__freertos_8c_source.html#l00225">__freertos_evr_on_task_switched_in()</a>, <a class="el" href="perf__os__patch__freertos_8c_source.html#l00213">__freertos_evr_on_task_switched_out()</a>, and <a class="el" href="perf__os__patch__freertos_8c_source.html#l00237">get_rtos_task_cycle_info()</a>.</p>
</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="perf__os__patch__freertos_8c.html">perf_os_patch_freertos.c</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.4 </li>
</ul>
</div>
</body>
</html>

View File

@ -0,0 +1,19 @@
var perf__os__patch__freertos_8c =
[
[ "__task_cycle_info_t", "struct____task__cycle__info__t.html", "struct____task__cycle__info__t" ],
[ "tskTaskControlBlock", "structtsk_task_control_block.html", "structtsk_task_control_block" ],
[ "EvtFreeRTOSTasks_TaskSwitchedIn", "perf__os__patch__freertos_8c.html#aea3ef800c9428b732ffbe8445eefee66", null ],
[ "EvtFreeRTOSTasks_TaskSwitchedOut", "perf__os__patch__freertos_8c.html#a324f9bb05f8ce010d19ec560b4e1da95", null ],
[ "EvtFreeRTOSTasksNo", "perf__os__patch__freertos_8c.html#af1545bfa164313b88b851eb84f466541", null ],
[ "MPU_WRAPPERS_INCLUDED_FROM_API_FILE", "perf__os__patch__freertos_8c.html#ab622d8c674f2a417a666a7ed89109e79", null ],
[ "ORIG_FUNC", "perf__os__patch__freertos_8c.html#aa7290a1d64a5cbe15d52fec89b35f1b9", null ],
[ "WRAP_FUNC", "perf__os__patch__freertos_8c.html#a34b5fd2f760a3a19875464d26bdb71df", null ],
[ "TCB_t", "perf__os__patch__freertos_8c.html#aa3c2dda92a6dc22860bbdb36e42a0453", null ],
[ "tskTCB", "perf__os__patch__freertos_8c.html#a67b1ddede4e49c946dd720d83c5838a5", null ],
[ "__freertos_evr_on_task_switched_in", "perf__os__patch__freertos_8c.html#a411ff611b06926d6bcde27c0c621895c", null ],
[ "__freertos_evr_on_task_switched_out", "perf__os__patch__freertos_8c.html#a5d7733a0a2eec8eb3c6782ddfd6bf44c", null ],
[ "__on_context_switch_in", "perf__os__patch__freertos_8c.html#aded00de9fbde9be7f8872f85685b36a4", null ],
[ "__on_context_switch_out", "perf__os__patch__freertos_8c.html#aee2926404ade74811fa658786035f745", null ],
[ "get_rtos_task_cycle_info", "perf__os__patch__freertos_8c.html#aafe74ae771ab855185531aae1e42657c", null ],
[ "pxCurrentTCB", "perf__os__patch__freertos_8c.html#acdecf2afe97343aba42b111bc6df9eea", null ]
];

View File

@ -0,0 +1,355 @@
<!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=11"/>
<meta name="generator" content="Doxygen 1.9.4"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>perf_counter: perf_os_patch_freertos.c 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 id="projectrow">
<td id="projectalign">
<div id="projectname">perf_counter
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.4 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @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:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(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:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('perf__os__patch__freertos_8c_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">perf_os_patch_freertos.c</div></div>
</div><!--header-->
<div class="contents">
<a href="perf__os__patch__freertos_8c.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="comment">/****************************************************************************</span></div>
<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span><span class="comment">* Copyright 2022 Gorgon Meducer (Email:embedded_zhuoran@hotmail.com) *</span></div>
<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span><span class="comment">* *</span></div>
<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span><span class="comment">* Licensed under the Apache License, Version 2.0 (the &quot;License&quot;); *</span></div>
<div class="line"><a id="l00005" name="l00005"></a><span class="lineno"> 5</span><span class="comment">* you may not use this file except in compliance with the License. *</span></div>
<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span><span class="comment">* You may obtain a copy of the License at *</span></div>
<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span><span class="comment">* *</span></div>
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span><span class="comment">* http://www.apache.org/licenses/LICENSE-2.0 *</span></div>
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span><span class="comment">* *</span></div>
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span><span class="comment">* Unless required by applicable law or agreed to in writing, software *</span></div>
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span><span class="comment">* distributed under the License is distributed on an &quot;AS IS&quot; BASIS, *</span></div>
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="comment">* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. *</span></div>
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="comment">* See the License for the specific language governing permissions and *</span></div>
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span><span class="comment">* limitations under the License. *</span></div>
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span><span class="comment">* *</span></div>
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span><span class="comment">****************************************************************************/</span></div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span> </div>
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span> </div>
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span><span class="comment">/*============================ INCLUDES ======================================*/</span></div>
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span> </div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span> </div>
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span><span class="comment">/* Defining MPU_WRAPPERS_INCLUDED_FROM_API_FILE prevents task.h from redefining</span></div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span><span class="comment">all the API functions to use the MPU wrappers. That should only be done when</span></div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span><span class="comment">task.h is included from an application file. */</span></div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"><a class="line" href="perf__os__patch__freertos_8c.html#ab622d8c674f2a417a666a7ed89109e79"> 25</a></span><span class="preprocessor">#define MPU_WRAPPERS_INCLUDED_FROM_API_FILE</span></div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> </div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span><span class="comment">/* FreeRTOS includes. */</span></div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span><span class="preprocessor">#include &quot;FreeRTOS.h&quot;</span></div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span><span class="preprocessor">#include &quot;task.h&quot;</span></div>
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span><span class="preprocessor">#include &quot;timers.h&quot;</span></div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span><span class="preprocessor">#include &quot;stack_macros.h&quot;</span></div>
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span> </div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span><span class="comment">/* Lint e9021, e961 and e750 are suppressed as a MISRA exception justified</span></div>
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span><span class="comment">because the MPU ports require MPU_WRAPPERS_INCLUDED_FROM_API_FILE to be defined</span></div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span><span class="comment">for the header files above, but not in this file, in order to generate the</span></div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span><span class="comment">correct privileged Vs unprivileged linkage and placement. */</span></div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span><span class="preprocessor">#undef MPU_WRAPPERS_INCLUDED_FROM_API_FILE </span><span class="comment">/*lint !e961 !e750 !e9021. */</span><span class="preprocessor"></span></div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> </div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span><span class="preprocessor">#include &quot;<a class="code" href="perf__counter_8h.html">perf_counter.h</a>&quot;</span></div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span><span class="preprocessor">#include &quot;cmsis_compiler.h&quot;</span></div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> </div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span><span class="comment">/*============================ MACROS ========================================*/</span></div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span> </div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span><span class="preprocessor">#undef __WRAP_FUNC</span></div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span><span class="preprocessor">#undef WRAP_FUNC</span></div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span><span class="preprocessor">#if defined(__IS_COMPILER_ARM_COMPILER__) &amp;&amp; __IS_COMPILER_ARM_COMPILER__ </span></div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span> </div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span><span class="preprocessor"># define __WRAP_FUNC(__NAME) $Sub$$##__NAME</span></div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span><span class="preprocessor"># define __ORIG_FUNC(__NAME) $Super$$##__NAME</span></div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span> </div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span><span class="preprocessor">#elif (defined(__IS_COMPILER_LLVM__) &amp;&amp; __IS_COMPILER_LLVM__) \</span></div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span><span class="preprocessor"> || (defined(__IS_COMPILER_GCC__) &amp;&amp; __IS_COMPILER_GCC__)</span></div>
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> </div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span><span class="preprocessor"># define __WRAP_FUNC(__NAME) __wrap_##__NAME</span></div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span><span class="preprocessor"># define __ORIG_FUNC(__NAME) __real_##__NAME</span></div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span> </div>
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"><a class="line" href="perf__os__patch__freertos_8c.html#a34b5fd2f760a3a19875464d26bdb71df"> 58</a></span><span class="preprocessor">#define WRAP_FUNC(__NAME) __WRAP_FUNC(__NAME)</span></div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"><a class="line" href="perf__os__patch__freertos_8c.html#aa7290a1d64a5cbe15d52fec89b35f1b9"> 59</a></span><span class="preprocessor">#define ORIG_FUNC(__NAME) __ORIG_FUNC(__NAME)</span></div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> </div>
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span><span class="keyword">struct </span><a class="code hl_struct" href="struct____task__cycle__info__t.html">__task_cycle_info_t</a> {</div>
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span> <a class="code hl_struct" href="structtask__cycle__info__t.html">task_cycle_info_t</a> <a class="code hl_variable" href="struct____task__cycle__info__t.html#a8af024785267321e4ef544e7f25d80dc">tInfo</a>;</div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span> int64_t <a class="code hl_variable" href="struct____task__cycle__info__t.html#ae2aae11f91e3eea654ceeac9b81706cb">lLastTimeStamp</a>;</div>
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span> <a class="code hl_struct" href="structtask__cycle__info__agent__t.html">task_cycle_info_agent_t</a> <a class="code hl_variable" href="struct____task__cycle__info__t.html#a7d50a2272c4a1b65f927e8c6d1242b33">tList</a>;</div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span> uint32_t <a class="code hl_variable" href="struct____task__cycle__info__t.html#a88c8aad5ae23ae04fa44b2892081561b">wMagicWord</a>;</div>
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span>} ;</div>
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span> </div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span> </div>
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span> </div>
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span><span class="comment">/*============================ TYPES =========================================*/</span></div>
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span> </div>
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span><span class="comment">/*</span></div>
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span><span class="comment"> * Task control block. A task control block (TCB) is allocated for each task,</span></div>
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span><span class="comment"> * and stores task state information, including a pointer to the task&#39;s context</span></div>
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span><span class="comment"> * (the task&#39;s run time environment, including register values)</span></div>
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span><span class="comment"> */</span></div>
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"><a class="line" href="structtsk_task_control_block.html"> 77</a></span><span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code hl_struct" href="structtsk_task_control_block.html">tskTaskControlBlock</a> <span class="comment">/* The old naming convention is used to prevent breaking kernel aware debuggers. */</span></div>
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span>{</div>
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"><a class="line" href="structtsk_task_control_block.html#a41989bc39d576125f4492364592f9e1a"> 79</a></span> <span class="keyword">volatile</span> StackType_t *<a class="code hl_variable" href="structtsk_task_control_block.html#a41989bc39d576125f4492364592f9e1a">pxTopOfStack</a>; <span class="comment">/*&lt; Points to the location of the last item placed on the tasks stack. THIS MUST BE THE FIRST MEMBER OF THE TCB STRUCT. */</span></div>
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span> </div>
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span><span class="preprocessor"> #if ( portUSING_MPU_WRAPPERS == 1 )</span></div>
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span> xMPU_SETTINGS xMPUSettings; <span class="comment">/*&lt; The MPU settings are defined as part of the port layer. THIS MUST BE THE SECOND MEMBER OF THE TCB STRUCT. */</span></div>
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span><span class="preprocessor"> #endif</span></div>
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span> </div>
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"><a class="line" href="structtsk_task_control_block.html#a2575f6a579ef61db0db66d7b1b52ec48"> 85</a></span> ListItem_t <a class="code hl_variable" href="structtsk_task_control_block.html#a2575f6a579ef61db0db66d7b1b52ec48">xStateListItem</a>; <span class="comment">/*&lt; The list that the state list item of a task is reference from denotes the state of that task (Ready, Blocked, Suspended ). */</span></div>
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"><a class="line" href="structtsk_task_control_block.html#a139605d93d834601f34be927ecba3a15"> 86</a></span> ListItem_t <a class="code hl_variable" href="structtsk_task_control_block.html#a139605d93d834601f34be927ecba3a15">xEventListItem</a>; <span class="comment">/*&lt; Used to reference a task from an event list. */</span></div>
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"><a class="line" href="structtsk_task_control_block.html#a0befed3dd0fe55b4314158f4814f50ae"> 87</a></span> UBaseType_t <a class="code hl_variable" href="structtsk_task_control_block.html#a0befed3dd0fe55b4314158f4814f50ae">uxPriority</a>; <span class="comment">/*&lt; The priority of the task. 0 is the lowest priority. */</span></div>
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"><a class="line" href="structtsk_task_control_block.html#aaecd48bdf732c1df94b258956ca85bd7"> 88</a></span> StackType_t *<a class="code hl_variable" href="structtsk_task_control_block.html#aaecd48bdf732c1df94b258956ca85bd7">pxStack</a>; <span class="comment">/*&lt; Points to the start of the stack. */</span></div>
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"><a class="line" href="structtsk_task_control_block.html#afa7d65deeca135b921eaa78fbbf52918"> 89</a></span> <span class="keywordtype">char</span> <a class="code hl_variable" href="structtsk_task_control_block.html#afa7d65deeca135b921eaa78fbbf52918">pcTaskName</a>[ configMAX_TASK_NAME_LEN ];<span class="comment">/*&lt; Descriptive name given to the task when created. Facilitates debugging only. */</span> <span class="comment">/*lint !e971 Unqualified char types are allowed for strings and single characters only. */</span></div>
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span> </div>
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span><span class="preprocessor"> #if ( ( portSTACK_GROWTH &gt; 0 ) || ( configRECORD_STACK_HIGH_ADDRESS == 1 ) )</span></div>
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span> StackType_t *pxEndOfStack; <span class="comment">/*&lt; Points to the highest valid address for the stack. */</span></div>
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span><span class="preprocessor"> #endif</span></div>
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span> </div>
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span><span class="preprocessor"> #if ( portCRITICAL_NESTING_IN_TCB == 1 )</span></div>
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span> UBaseType_t uxCriticalNesting; <span class="comment">/*&lt; Holds the critical section nesting depth for ports that do not maintain their own count in the port layer. */</span></div>
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span><span class="preprocessor"> #endif</span></div>
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span> </div>
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span><span class="preprocessor"> #if ( configUSE_TRACE_FACILITY == 1 )</span></div>
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span> UBaseType_t uxTCBNumber; <span class="comment">/*&lt; Stores a number that increments each time a TCB is created. It allows debuggers to determine when a task has been deleted and then recreated. */</span></div>
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span> UBaseType_t uxTaskNumber; <span class="comment">/*&lt; Stores a number specifically for use by third party trace code. */</span></div>
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span><span class="preprocessor"> #endif</span></div>
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span> </div>
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span><span class="preprocessor"> #if ( configUSE_MUTEXES == 1 )</span></div>
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span> UBaseType_t uxBasePriority; <span class="comment">/*&lt; The priority last assigned to the task - used by the priority inheritance mechanism. */</span></div>
<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"> 106</span> UBaseType_t uxMutexesHeld;</div>
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span><span class="preprocessor"> #endif</span></div>
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span> </div>
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span><span class="preprocessor"> #if ( configUSE_APPLICATION_TASK_TAG == 1 )</span></div>
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span> TaskHookFunction_t pxTaskTag;</div>
<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"> 111</span><span class="preprocessor"> #endif</span></div>
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span> </div>
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span><span class="preprocessor"> #if( configNUM_THREAD_LOCAL_STORAGE_POINTERS &gt; 0 )</span></div>
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span> <span class="keywordtype">void</span> *pvThreadLocalStoragePointers[ configNUM_THREAD_LOCAL_STORAGE_POINTERS ];</div>
<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span><span class="preprocessor"> #endif</span></div>
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"> 116</span> </div>
<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"> 117</span><span class="preprocessor"> #if( configGENERATE_RUN_TIME_STATS == 1 )</span></div>
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</span> uint32_t ulRunTimeCounter; <span class="comment">/*&lt; Stores the amount of time the task has spent in the Running state. */</span></div>
<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"> 119</span><span class="preprocessor"> #endif</span></div>
<div class="line"><a id="l00120" name="l00120"></a><span class="lineno"> 120</span> </div>
<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</span><span class="preprocessor"> #if ( configUSE_NEWLIB_REENTRANT == 1 )</span></div>
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span> <span class="comment">/* Allocate a Newlib reent structure that is specific to this task.</span></div>
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span><span class="comment"> Note Newlib support has been included by popular demand, but is not</span></div>
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span><span class="comment"> used by the FreeRTOS maintainers themselves. FreeRTOS is not</span></div>
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span><span class="comment"> responsible for resulting newlib operation. User must be familiar with</span></div>
<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span><span class="comment"> newlib and must provide system-wide implementations of the necessary</span></div>
<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"> 127</span><span class="comment"> stubs. Be warned that (at the time of writing) the current newlib design</span></div>
<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span><span class="comment"> implements a system-wide malloc() that must be provided with locks.</span></div>
<div class="line"><a id="l00129" name="l00129"></a><span class="lineno"> 129</span><span class="comment"></span> </div>
<div class="line"><a id="l00130" name="l00130"></a><span class="lineno"> 130</span><span class="comment"> See the third party link http://www.nadler.com/embedded/newlibAndFreeRTOS.html</span></div>
<div class="line"><a id="l00131" name="l00131"></a><span class="lineno"> 131</span><span class="comment"> for additional information. */</span></div>
<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"> 132</span> <span class="keyword">struct </span>_reent xNewLib_reent;</div>
<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"> 133</span><span class="preprocessor"> #endif</span></div>
<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"> 134</span> </div>
<div class="line"><a id="l00135" name="l00135"></a><span class="lineno"> 135</span><span class="preprocessor"> #if( configUSE_TASK_NOTIFICATIONS == 1 )</span></div>
<div class="line"><a id="l00136" name="l00136"></a><span class="lineno"> 136</span> <span class="keyword">volatile</span> uint32_t ulNotifiedValue;</div>
<div class="line"><a id="l00137" name="l00137"></a><span class="lineno"> 137</span> <span class="keyword">volatile</span> uint8_t ucNotifyState;</div>
<div class="line"><a id="l00138" name="l00138"></a><span class="lineno"> 138</span><span class="preprocessor"> #endif</span></div>
<div class="line"><a id="l00139" name="l00139"></a><span class="lineno"> 139</span> </div>
<div class="line"><a id="l00140" name="l00140"></a><span class="lineno"> 140</span> <span class="comment">/* See the comments in FreeRTOS.h with the definition of</span></div>
<div class="line"><a id="l00141" name="l00141"></a><span class="lineno"> 141</span><span class="comment"> tskSTATIC_AND_DYNAMIC_ALLOCATION_POSSIBLE. */</span></div>
<div class="line"><a id="l00142" name="l00142"></a><span class="lineno"> 142</span><span class="preprocessor"> #if( tskSTATIC_AND_DYNAMIC_ALLOCATION_POSSIBLE != 0 ) </span><span class="comment">/*lint !e731 !e9029 Macro has been consolidated for readability reasons. */</span><span class="preprocessor"></span></div>
<div class="line"><a id="l00143" name="l00143"></a><span class="lineno"> 143</span> uint8_t ucStaticallyAllocated; <span class="comment">/*&lt; Set to pdTRUE if the task is a statically allocated to ensure no attempt is made to free the memory. */</span></div>
<div class="line"><a id="l00144" name="l00144"></a><span class="lineno"> 144</span><span class="preprocessor"> #endif</span></div>
<div class="line"><a id="l00145" name="l00145"></a><span class="lineno"> 145</span> </div>
<div class="line"><a id="l00146" name="l00146"></a><span class="lineno"> 146</span><span class="preprocessor"> #if( INCLUDE_xTaskAbortDelay == 1 )</span></div>
<div class="line"><a id="l00147" name="l00147"></a><span class="lineno"> 147</span> uint8_t ucDelayAborted;</div>
<div class="line"><a id="l00148" name="l00148"></a><span class="lineno"> 148</span><span class="preprocessor"> #endif</span></div>
<div class="line"><a id="l00149" name="l00149"></a><span class="lineno"> 149</span> </div>
<div class="line"><a id="l00150" name="l00150"></a><span class="lineno"> 150</span><span class="preprocessor"> #if( configUSE_POSIX_ERRNO == 1 )</span></div>
<div class="line"><a id="l00151" name="l00151"></a><span class="lineno"> 151</span> <span class="keywordtype">int</span> iTaskErrno;</div>
<div class="line"><a id="l00152" name="l00152"></a><span class="lineno"> 152</span><span class="preprocessor"> #endif</span></div>
<div class="line"><a id="l00153" name="l00153"></a><span class="lineno"> 153</span> </div>
<div class="line"><a id="l00154" name="l00154"></a><span class="lineno"><a class="line" href="perf__os__patch__freertos_8c.html#a67b1ddede4e49c946dd720d83c5838a5"> 154</a></span>} <a class="code hl_typedef" href="perf__os__patch__freertos_8c.html#a67b1ddede4e49c946dd720d83c5838a5">tskTCB</a>;</div>
<div class="line"><a id="l00155" name="l00155"></a><span class="lineno"> 155</span> </div>
<div class="line"><a id="l00156" name="l00156"></a><span class="lineno"> 156</span><span class="comment">/* The old tskTCB name is maintained above then typedefed to the new TCB_t name</span></div>
<div class="line"><a id="l00157" name="l00157"></a><span class="lineno"> 157</span><span class="comment">below to enable the use of older kernel aware debuggers. */</span></div>
<div class="line"><a id="l00158" name="l00158"></a><span class="lineno"><a class="line" href="perf__os__patch__freertos_8c.html#aa3c2dda92a6dc22860bbdb36e42a0453"> 158</a></span><span class="keyword">typedef</span> <a class="code hl_struct" href="structtsk_task_control_block.html">tskTCB</a> <a class="code hl_typedef" href="perf__os__patch__freertos_8c.html#aa3c2dda92a6dc22860bbdb36e42a0453">TCB_t</a>;</div>
<div class="line"><a id="l00159" name="l00159"></a><span class="lineno"> 159</span> </div>
<div class="line"><a id="l00160" name="l00160"></a><span class="lineno"> 160</span><span class="comment">/*lint -save -e956 A manual analysis and inspection has been used to determine</span></div>
<div class="line"><a id="l00161" name="l00161"></a><span class="lineno"> 161</span><span class="comment">which static variables must be declared volatile. */</span></div>
<div class="line"><a id="l00162" name="l00162"></a><span class="lineno"> 162</span>PRIVILEGED_DATA </div>
<div class="line"><a id="l00163" name="l00163"></a><span class="lineno"> 163</span><span class="keyword">extern</span> <a class="code hl_struct" href="structtsk_task_control_block.html">TCB_t</a> * <span class="keyword">volatile</span> <a class="code hl_variable" href="perf__os__patch__freertos_8c.html#acdecf2afe97343aba42b111bc6df9eea">pxCurrentTCB</a>;</div>
<div class="line"><a id="l00164" name="l00164"></a><span class="lineno"> 164</span> </div>
<div class="line"><a id="l00172" name="l00172"></a><span class="lineno"> 172</span><span class="comment">/*</span></div>
<div class="line"><a id="l00174" name="l00174"></a><span class="lineno"> 174</span><span class="comment">#define __PERF_CNT_USE_RTOS__</span></div>
<div class="line"><a id="l00175" name="l00175"></a><span class="lineno"> 175</span><span class="comment"> </span></div>
<div class="line"><a id="l00176" name="l00176"></a><span class="lineno"> 176</span><span class="comment">#define traceTASK_SWITCHED_OUT_DISABLE </span></div>
<div class="line"><a id="l00177" name="l00177"></a><span class="lineno"> 177</span><span class="comment">#define traceTASK_SWITCHED_IN_DISABLE</span></div>
<div class="line"><a id="l00178" name="l00178"></a><span class="lineno"> 178</span><span class="comment"></span> </div>
<div class="line"><a id="l00179" name="l00179"></a><span class="lineno"> 179</span><span class="comment">extern void __freertos_evr_on_task_switched_out (void *ptTCB);</span></div>
<div class="line"><a id="l00180" name="l00180"></a><span class="lineno"> 180</span><span class="comment">extern void __freertos_evr_on_task_switched_in(void *ptTCB, unsigned int uxTopPriority) ;</span></div>
<div class="line"><a id="l00181" name="l00181"></a><span class="lineno"> 181</span><span class="comment"></span> </div>
<div class="line"><a id="l00182" name="l00182"></a><span class="lineno"> 182</span><span class="comment"># define traceTASK_SWITCHED_OUT() \</span></div>
<div class="line"><a id="l00183" name="l00183"></a><span class="lineno"> 183</span><span class="comment"> __freertos_evr_on_task_switched_out(pxCurrentTCB)</span></div>
<div class="line"><a id="l00184" name="l00184"></a><span class="lineno"> 184</span><span class="comment"># define traceTASK_SWITCHED_IN() \</span></div>
<div class="line"><a id="l00185" name="l00185"></a><span class="lineno"> 185</span><span class="comment"> __freertos_evr_on_task_switched_in(pxCurrentTCB, uxTopReadyPriority)</span></div>
<div class="line"><a id="l00186" name="l00186"></a><span class="lineno"> 186</span><span class="comment"></span> </div>
<div class="line"><a id="l00187" name="l00187"></a><span class="lineno"> 187</span><span class="comment"> */</span></div>
<div class="line"><a id="l00188" name="l00188"></a><span class="lineno"> 188</span> </div>
<div class="line"><a id="l00189" name="l00189"></a><span class="lineno"> 189</span> </div>
<div class="line"><a id="l00190" name="l00190"></a><span class="lineno"> 190</span><span class="comment">/*============================ GLOBAL VARIABLES ==============================*/</span></div>
<div class="line"><a id="l00191" name="l00191"></a><span class="lineno"> 191</span><span class="comment">/*============================ LOCAL VARIABLES ===============================*/</span></div>
<div class="line"><a id="l00192" name="l00192"></a><span class="lineno"> 192</span><span class="comment">/*============================ PROTOTYPES ====================================*/</span></div>
<div class="line"><a id="l00193" name="l00193"></a><span class="lineno"> 193</span><span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code hl_function" href="perf__os__patch__freertos_8c.html#aded00de9fbde9be7f8872f85685b36a4">__on_context_switch_in</a>(uint32_t *pwStack);</div>
<div class="line"><a id="l00194" name="l00194"></a><span class="lineno"> 194</span><span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code hl_function" href="perf__os__patch__freertos_8c.html#aee2926404ade74811fa658786035f745">__on_context_switch_out</a>(uint32_t *pwStack);</div>
<div class="line"><a id="l00195" name="l00195"></a><span class="lineno"> 195</span> </div>
<div class="line"><a id="l00196" name="l00196"></a><span class="lineno"> 196</span><span class="comment">/*============================ IMPLEMENTATION ================================*/</span></div>
<div class="line"><a id="l00197" name="l00197"></a><span class="lineno"> 197</span> </div>
<div class="line"><a id="l00198" name="l00198"></a><span class="lineno"> 198</span> </div>
<div class="line"><a id="l00199" name="l00199"></a><span class="lineno"> 199</span><span class="preprocessor">#if defined(RTE_Compiler_EventRecorder)</span></div>
<div class="line"><a id="l00200" name="l00200"></a><span class="lineno"> 200</span> </div>
<div class="line"><a id="l00201" name="l00201"></a><span class="lineno"> 201</span><span class="preprocessor"># include &quot;EventRecorder.h&quot;</span></div>
<div class="line"><a id="l00202" name="l00202"></a><span class="lineno"> 202</span> </div>
<div class="line"><a id="l00203" name="l00203"></a><span class="lineno"> 203</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00204" name="l00204"></a><span class="lineno"> 204</span> </div>
<div class="line"><a id="l00205" name="l00205"></a><span class="lineno"> 205</span> </div>
<div class="line"><a id="l00206" name="l00206"></a><span class="lineno"><a class="line" href="perf__os__patch__freertos_8c.html#af1545bfa164313b88b851eb84f466541"> 206</a></span><span class="preprocessor">#define EvtFreeRTOSTasksNo (0xF0U)</span></div>
<div class="line"><a id="l00207" name="l00207"></a><span class="lineno"> 207</span> </div>
<div class="line"><a id="l00208" name="l00208"></a><span class="lineno"><a class="line" href="perf__os__patch__freertos_8c.html#a324f9bb05f8ce010d19ec560b4e1da95"> 208</a></span><span class="preprocessor">#define EvtFreeRTOSTasks_TaskSwitchedOut \</span></div>
<div class="line"><a id="l00209" name="l00209"></a><span class="lineno"> 209</span><span class="preprocessor"> EventID(EventLevelOp, EvtFreeRTOSTasksNo, 0x0BU)</span></div>
<div class="line"><a id="l00210" name="l00210"></a><span class="lineno"><a class="line" href="perf__os__patch__freertos_8c.html#aea3ef800c9428b732ffbe8445eefee66"> 210</a></span><span class="preprocessor">#define EvtFreeRTOSTasks_TaskSwitchedIn \</span></div>
<div class="line"><a id="l00211" name="l00211"></a><span class="lineno"> 211</span><span class="preprocessor"> EventID(EventLevelOp, EvtFreeRTOSTasksNo, 0x0CU)</span></div>
<div class="line"><a id="l00212" name="l00212"></a><span class="lineno"> 212</span> </div>
<div class="line"><a id="l00213" name="l00213"></a><span class="lineno"><a class="line" href="perf__os__patch__freertos_8c.html#a5d7733a0a2eec8eb3c6782ddfd6bf44c"> 213</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="perf__os__patch__freertos_8c.html#a5d7733a0a2eec8eb3c6782ddfd6bf44c">__freertos_evr_on_task_switched_out</a> (<span class="keywordtype">void</span> *ptTCB) {</div>
<div class="line"><a id="l00214" name="l00214"></a><span class="lineno"> 214</span><span class="preprocessor">#if defined(RTE_Compiler_EventRecorder)</span></div>
<div class="line"><a id="l00215" name="l00215"></a><span class="lineno"> 215</span> EventRecord2(<a class="code hl_define" href="perf__os__patch__freertos_8c.html#a324f9bb05f8ce010d19ec560b4e1da95">EvtFreeRTOSTasks_TaskSwitchedOut</a>, (uint32_t)ptTCB, 0U);</div>
<div class="line"><a id="l00216" name="l00216"></a><span class="lineno"> 216</span><span class="preprocessor">#else</span></div>
<div class="line"><a id="l00217" name="l00217"></a><span class="lineno"> 217</span> (void)<a class="code hl_variable" href="perf__os__patch__freertos_8c.html#acdecf2afe97343aba42b111bc6df9eea">pxCurrentTCB</a>;</div>
<div class="line"><a id="l00218" name="l00218"></a><span class="lineno"> 218</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00219" name="l00219"></a><span class="lineno"> 219</span> </div>
<div class="line"><a id="l00220" name="l00220"></a><span class="lineno"> 220</span> <a class="code hl_function" href="perf__os__patch__freertos_8c.html#aee2926404ade74811fa658786035f745">__on_context_switch_out</a>(((<a class="code hl_struct" href="structtsk_task_control_block.html">TCB_t</a> *)ptTCB)-&gt;pxStack);</div>
<div class="line"><a id="l00221" name="l00221"></a><span class="lineno"> 221</span> </div>
<div class="line"><a id="l00222" name="l00222"></a><span class="lineno"> 222</span>}</div>
<div class="line"><a id="l00223" name="l00223"></a><span class="lineno"> 223</span> </div>
<div class="line"><a id="l00224" name="l00224"></a><span class="lineno"> 224</span> </div>
<div class="line"><a id="l00225" name="l00225"></a><span class="lineno"><a class="line" href="perf__os__patch__freertos_8c.html#a411ff611b06926d6bcde27c0c621895c"> 225</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="perf__os__patch__freertos_8c.html#a411ff611b06926d6bcde27c0c621895c">__freertos_evr_on_task_switched_in</a>(<span class="keywordtype">void</span> *ptTCB, uint32_t uxTopPriority) {</div>
<div class="line"><a id="l00226" name="l00226"></a><span class="lineno"> 226</span><span class="preprocessor">#if defined(RTE_Compiler_EventRecorder)</span></div>
<div class="line"><a id="l00227" name="l00227"></a><span class="lineno"> 227</span> EventRecord2(<a class="code hl_define" href="perf__os__patch__freertos_8c.html#aea3ef800c9428b732ffbe8445eefee66">EvtFreeRTOSTasks_TaskSwitchedIn</a>, (uint32_t)ptTCB, uxTopPriority);</div>
<div class="line"><a id="l00228" name="l00228"></a><span class="lineno"> 228</span><span class="preprocessor">#else</span></div>
<div class="line"><a id="l00229" name="l00229"></a><span class="lineno"> 229</span> (void)<a class="code hl_variable" href="perf__os__patch__freertos_8c.html#acdecf2afe97343aba42b111bc6df9eea">pxCurrentTCB</a>;</div>
<div class="line"><a id="l00230" name="l00230"></a><span class="lineno"> 230</span> (void)uxTopPriority;</div>
<div class="line"><a id="l00231" name="l00231"></a><span class="lineno"> 231</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00232" name="l00232"></a><span class="lineno"> 232</span> </div>
<div class="line"><a id="l00233" name="l00233"></a><span class="lineno"> 233</span> <a class="code hl_function" href="perf__os__patch__freertos_8c.html#aded00de9fbde9be7f8872f85685b36a4">__on_context_switch_in</a>(((<a class="code hl_struct" href="structtsk_task_control_block.html">TCB_t</a> *)ptTCB)-&gt;pxStack);</div>
<div class="line"><a id="l00234" name="l00234"></a><span class="lineno"> 234</span>}</div>
<div class="line"><a id="l00235" name="l00235"></a><span class="lineno"> 235</span> </div>
<div class="line"><a id="l00236" name="l00236"></a><span class="lineno"> 236</span> </div>
<div class="line"><a id="l00237" name="l00237"></a><span class="lineno"><a class="line" href="perf__os__patch__freertos_8c.html#aafe74ae771ab855185531aae1e42657c"> 237</a></span><a class="code hl_struct" href="structtask__cycle__info__t.html">task_cycle_info_t</a> * <a class="code hl_function" href="perf__os__patch__freertos_8c.html#aafe74ae771ab855185531aae1e42657c">get_rtos_task_cycle_info</a>(<span class="keywordtype">void</span>)</div>
<div class="line"><a id="l00238" name="l00238"></a><span class="lineno"> 238</span>{ </div>
<div class="line"><a id="l00239" name="l00239"></a><span class="lineno"> 239</span> <span class="keywordflow">return</span> &amp;(((<span class="keyword">struct </span><a class="code hl_struct" href="struct____task__cycle__info__t.html">__task_cycle_info_t</a> *)<a class="code hl_variable" href="perf__os__patch__freertos_8c.html#acdecf2afe97343aba42b111bc6df9eea">pxCurrentTCB</a>-&gt;<a class="code hl_variable" href="structtsk_task_control_block.html#aaecd48bdf732c1df94b258956ca85bd7">pxStack</a>)-&gt;tInfo);</div>
<div class="line"><a id="l00240" name="l00240"></a><span class="lineno"> 240</span>}</div>
<div class="ttc" id="aperf__counter_8h_html"><div class="ttname"><a href="perf__counter_8h.html">perf_counter.h</a></div></div>
<div class="ttc" id="aperf__os__patch__freertos_8c_html_a324f9bb05f8ce010d19ec560b4e1da95"><div class="ttname"><a href="perf__os__patch__freertos_8c.html#a324f9bb05f8ce010d19ec560b4e1da95">EvtFreeRTOSTasks_TaskSwitchedOut</a></div><div class="ttdeci">#define EvtFreeRTOSTasks_TaskSwitchedOut</div><div class="ttdef"><b>Definition:</b> <a href="perf__os__patch__freertos_8c_source.html#l00208">perf_os_patch_freertos.c:208</a></div></div>
<div class="ttc" id="aperf__os__patch__freertos_8c_html_a411ff611b06926d6bcde27c0c621895c"><div class="ttname"><a href="perf__os__patch__freertos_8c.html#a411ff611b06926d6bcde27c0c621895c">__freertos_evr_on_task_switched_in</a></div><div class="ttdeci">void __freertos_evr_on_task_switched_in(void *ptTCB, uint32_t uxTopPriority)</div><div class="ttdef"><b>Definition:</b> <a href="perf__os__patch__freertos_8c_source.html#l00225">perf_os_patch_freertos.c:225</a></div></div>
<div class="ttc" id="aperf__os__patch__freertos_8c_html_a5d7733a0a2eec8eb3c6782ddfd6bf44c"><div class="ttname"><a href="perf__os__patch__freertos_8c.html#a5d7733a0a2eec8eb3c6782ddfd6bf44c">__freertos_evr_on_task_switched_out</a></div><div class="ttdeci">void __freertos_evr_on_task_switched_out(void *ptTCB)</div><div class="ttdef"><b>Definition:</b> <a href="perf__os__patch__freertos_8c_source.html#l00213">perf_os_patch_freertos.c:213</a></div></div>
<div class="ttc" id="aperf__os__patch__freertos_8c_html_a67b1ddede4e49c946dd720d83c5838a5"><div class="ttname"><a href="perf__os__patch__freertos_8c.html#a67b1ddede4e49c946dd720d83c5838a5">tskTCB</a></div><div class="ttdeci">struct tskTaskControlBlock tskTCB</div></div>
<div class="ttc" id="aperf__os__patch__freertos_8c_html_aa3c2dda92a6dc22860bbdb36e42a0453"><div class="ttname"><a href="perf__os__patch__freertos_8c.html#aa3c2dda92a6dc22860bbdb36e42a0453">TCB_t</a></div><div class="ttdeci">tskTCB TCB_t</div><div class="ttdef"><b>Definition:</b> <a href="perf__os__patch__freertos_8c_source.html#l00158">perf_os_patch_freertos.c:158</a></div></div>
<div class="ttc" id="aperf__os__patch__freertos_8c_html_aafe74ae771ab855185531aae1e42657c"><div class="ttname"><a href="perf__os__patch__freertos_8c.html#aafe74ae771ab855185531aae1e42657c">get_rtos_task_cycle_info</a></div><div class="ttdeci">task_cycle_info_t * get_rtos_task_cycle_info(void)</div><div class="ttdef"><b>Definition:</b> <a href="perf__os__patch__freertos_8c_source.html#l00237">perf_os_patch_freertos.c:237</a></div></div>
<div class="ttc" id="aperf__os__patch__freertos_8c_html_acdecf2afe97343aba42b111bc6df9eea"><div class="ttname"><a href="perf__os__patch__freertos_8c.html#acdecf2afe97343aba42b111bc6df9eea">pxCurrentTCB</a></div><div class="ttdeci">PRIVILEGED_DATA TCB_t *volatile pxCurrentTCB</div></div>
<div class="ttc" id="aperf__os__patch__freertos_8c_html_aded00de9fbde9be7f8872f85685b36a4"><div class="ttname"><a href="perf__os__patch__freertos_8c.html#aded00de9fbde9be7f8872f85685b36a4">__on_context_switch_in</a></div><div class="ttdeci">void __on_context_switch_in(uint32_t *pwStack)</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00646">perf_counter.c:646</a></div></div>
<div class="ttc" id="aperf__os__patch__freertos_8c_html_aea3ef800c9428b732ffbe8445eefee66"><div class="ttname"><a href="perf__os__patch__freertos_8c.html#aea3ef800c9428b732ffbe8445eefee66">EvtFreeRTOSTasks_TaskSwitchedIn</a></div><div class="ttdeci">#define EvtFreeRTOSTasks_TaskSwitchedIn</div><div class="ttdef"><b>Definition:</b> <a href="perf__os__patch__freertos_8c_source.html#l00210">perf_os_patch_freertos.c:210</a></div></div>
<div class="ttc" id="aperf__os__patch__freertos_8c_html_aee2926404ade74811fa658786035f745"><div class="ttname"><a href="perf__os__patch__freertos_8c.html#aee2926404ade74811fa658786035f745">__on_context_switch_out</a></div><div class="ttdeci">void __on_context_switch_out(uint32_t *pwStack)</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00668">perf_counter.c:668</a></div></div>
<div class="ttc" id="astruct____task__cycle__info__t_html"><div class="ttname"><a href="struct____task__cycle__info__t.html">__task_cycle_info_t</a></div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00161">perf_counter.c:161</a></div></div>
<div class="ttc" id="astruct____task__cycle__info__t_html_a7d50a2272c4a1b65f927e8c6d1242b33"><div class="ttname"><a href="struct____task__cycle__info__t.html#a7d50a2272c4a1b65f927e8c6d1242b33">__task_cycle_info_t::tList</a></div><div class="ttdeci">task_cycle_info_agent_t tList</div><div class="ttdoc">the root of the agent list</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00164">perf_counter.c:164</a></div></div>
<div class="ttc" id="astruct____task__cycle__info__t_html_a88c8aad5ae23ae04fa44b2892081561b"><div class="ttname"><a href="struct____task__cycle__info__t.html#a88c8aad5ae23ae04fa44b2892081561b">__task_cycle_info_t::wMagicWord</a></div><div class="ttdeci">uint32_t wMagicWord</div><div class="ttdoc">an magic word for validation</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00165">perf_counter.c:165</a></div></div>
<div class="ttc" id="astruct____task__cycle__info__t_html_a8af024785267321e4ef544e7f25d80dc"><div class="ttname"><a href="struct____task__cycle__info__t.html#a8af024785267321e4ef544e7f25d80dc">__task_cycle_info_t::tInfo</a></div><div class="ttdeci">task_cycle_info_t tInfo</div><div class="ttdoc">cycle information</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00162">perf_counter.c:162</a></div></div>
<div class="ttc" id="astruct____task__cycle__info__t_html_ae2aae11f91e3eea654ceeac9b81706cb"><div class="ttname"><a href="struct____task__cycle__info__t.html#ae2aae11f91e3eea654ceeac9b81706cb">__task_cycle_info_t::lLastTimeStamp</a></div><div class="ttdeci">int64_t lLastTimeStamp</div><div class="ttdoc">previous timestamp</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00163">perf_counter.c:163</a></div></div>
<div class="ttc" id="astructtask__cycle__info__agent__t_html"><div class="ttname"><a href="structtask__cycle__info__agent__t.html">task_cycle_info_agent_t</a></div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8h_source.html#l00337">perf_counter.h:337</a></div></div>
<div class="ttc" id="astructtask__cycle__info__t_html"><div class="ttname"><a href="structtask__cycle__info__t.html">task_cycle_info_t</a></div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8h_source.html#l00326">perf_counter.h:326</a></div></div>
<div class="ttc" id="astructtsk_task_control_block_html"><div class="ttname"><a href="structtsk_task_control_block.html">tskTaskControlBlock</a></div><div class="ttdef"><b>Definition:</b> <a href="perf__os__patch__freertos_8c_source.html#l00077">perf_os_patch_freertos.c:78</a></div></div>
<div class="ttc" id="astructtsk_task_control_block_html_a0befed3dd0fe55b4314158f4814f50ae"><div class="ttname"><a href="structtsk_task_control_block.html#a0befed3dd0fe55b4314158f4814f50ae">tskTaskControlBlock::uxPriority</a></div><div class="ttdeci">UBaseType_t uxPriority</div><div class="ttdef"><b>Definition:</b> <a href="perf__os__patch__freertos_8c_source.html#l00087">perf_os_patch_freertos.c:87</a></div></div>
<div class="ttc" id="astructtsk_task_control_block_html_a139605d93d834601f34be927ecba3a15"><div class="ttname"><a href="structtsk_task_control_block.html#a139605d93d834601f34be927ecba3a15">tskTaskControlBlock::xEventListItem</a></div><div class="ttdeci">ListItem_t xEventListItem</div><div class="ttdef"><b>Definition:</b> <a href="perf__os__patch__freertos_8c_source.html#l00086">perf_os_patch_freertos.c:86</a></div></div>
<div class="ttc" id="astructtsk_task_control_block_html_a2575f6a579ef61db0db66d7b1b52ec48"><div class="ttname"><a href="structtsk_task_control_block.html#a2575f6a579ef61db0db66d7b1b52ec48">tskTaskControlBlock::xStateListItem</a></div><div class="ttdeci">ListItem_t xStateListItem</div><div class="ttdef"><b>Definition:</b> <a href="perf__os__patch__freertos_8c_source.html#l00085">perf_os_patch_freertos.c:85</a></div></div>
<div class="ttc" id="astructtsk_task_control_block_html_a41989bc39d576125f4492364592f9e1a"><div class="ttname"><a href="structtsk_task_control_block.html#a41989bc39d576125f4492364592f9e1a">tskTaskControlBlock::pxTopOfStack</a></div><div class="ttdeci">volatile StackType_t * pxTopOfStack</div><div class="ttdef"><b>Definition:</b> <a href="perf__os__patch__freertos_8c_source.html#l00079">perf_os_patch_freertos.c:79</a></div></div>
<div class="ttc" id="astructtsk_task_control_block_html_aaecd48bdf732c1df94b258956ca85bd7"><div class="ttname"><a href="structtsk_task_control_block.html#aaecd48bdf732c1df94b258956ca85bd7">tskTaskControlBlock::pxStack</a></div><div class="ttdeci">StackType_t * pxStack</div><div class="ttdef"><b>Definition:</b> <a href="perf__os__patch__freertos_8c_source.html#l00088">perf_os_patch_freertos.c:88</a></div></div>
<div class="ttc" id="astructtsk_task_control_block_html_afa7d65deeca135b921eaa78fbbf52918"><div class="ttname"><a href="structtsk_task_control_block.html#afa7d65deeca135b921eaa78fbbf52918">tskTaskControlBlock::pcTaskName</a></div><div class="ttdeci">char pcTaskName[configMAX_TASK_NAME_LEN]</div><div class="ttdef"><b>Definition:</b> <a href="perf__os__patch__freertos_8c_source.html#l00089">perf_os_patch_freertos.c:89</a></div></div>
</div><!-- fragment --></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="perf__os__patch__freertos_8c.html">perf_os_patch_freertos.c</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.4 </li>
</ul>
</div>
</body>
</html>

View File

@ -0,0 +1,401 @@
<!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=11"/>
<meta name="generator" content="Doxygen 1.9.4"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>perf_counter: perf_os_patch_rt_thread.c 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 id="projectrow">
<td id="projectalign">
<div id="projectname">perf_counter
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.4 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @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:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(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:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('perf__os__patch__rt__thread_8c.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="#func-members">Functions</a> &#124;
<a href="#var-members">Variables</a> </div>
<div class="headertitle"><div class="title">perf_os_patch_rt_thread.c File Reference</div></div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &lt;rtthread.h&gt;</code><br />
<code>#include &quot;<a class="el" href="perf__counter_8h_source.html">perf_counter.h</a>&quot;</code><br />
<code>#include &quot;cmsis_compiler.h&quot;</code><br />
</div>
<p><a href="perf__os__patch__rt__thread_8c_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 id="nested-classes" 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____task__cycle__info__t.html">__task_cycle_info_t</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 id="define-members" name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:a34b5fd2f760a3a19875464d26bdb71df"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="perf__os__patch__rt__thread_8c.html#a34b5fd2f760a3a19875464d26bdb71df">WRAP_FUNC</a>(__NAME)&#160;&#160;&#160;__WRAP_FUNC(__NAME)</td></tr>
<tr class="separator:a34b5fd2f760a3a19875464d26bdb71df"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa7290a1d64a5cbe15d52fec89b35f1b9"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="perf__os__patch__rt__thread_8c.html#aa7290a1d64a5cbe15d52fec89b35f1b9">ORIG_FUNC</a>(__NAME)&#160;&#160;&#160;__ORIG_FUNC(__NAME)</td></tr>
<tr class="separator:aa7290a1d64a5cbe15d52fec89b35f1b9"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:aded00de9fbde9be7f8872f85685b36a4"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="perf__os__patch__rt__thread_8c.html#aded00de9fbde9be7f8872f85685b36a4">__on_context_switch_in</a> (uint32_t *pwStack)</td></tr>
<tr class="separator:aded00de9fbde9be7f8872f85685b36a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aee2926404ade74811fa658786035f745"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="perf__os__patch__rt__thread_8c.html#aee2926404ade74811fa658786035f745">__on_context_switch_out</a> (uint32_t *pwStack)</td></tr>
<tr class="separator:aee2926404ade74811fa658786035f745"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abaf903de1b645f8ecdba87f4366322ec"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="perf__os__patch__rt__thread_8c.html#abaf903de1b645f8ecdba87f4366322ec">__rt_thread_scheduler_hook</a> (struct rt_thread *from, struct rt_thread *to)</td></tr>
<tr class="separator:abaf903de1b645f8ecdba87f4366322ec"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6d5a15a297eb8d32f4d96b163bce36d9"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="perf__os__patch__rt__thread_8c.html#a6d5a15a297eb8d32f4d96b163bce36d9">__perf_os_patch_init</a> (void)</td></tr>
<tr class="separator:a6d5a15a297eb8d32f4d96b163bce36d9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aafe74ae771ab855185531aae1e42657c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structtask__cycle__info__t.html">task_cycle_info_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="perf__os__patch__rt__thread_8c.html#aafe74ae771ab855185531aae1e42657c">get_rtos_task_cycle_info</a> (void)</td></tr>
<tr class="separator:aafe74ae771ab855185531aae1e42657c"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="var-members" name="var-members"></a>
Variables</h2></td></tr>
<tr class="memitem:a79f56a5699427ae8a615005dfbaf4325"><td class="memItemLeft" align="right" valign="top">struct rt_thread *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="perf__os__patch__rt__thread_8c.html#a79f56a5699427ae8a615005dfbaf4325">rt_current_thread</a></td></tr>
<tr class="separator:a79f56a5699427ae8a615005dfbaf4325"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Macro Definition Documentation</h2>
<a id="aa7290a1d64a5cbe15d52fec89b35f1b9" name="aa7290a1d64a5cbe15d52fec89b35f1b9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa7290a1d64a5cbe15d52fec89b35f1b9">&#9670;&nbsp;</a></span>ORIG_FUNC</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define ORIG_FUNC</td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname">__NAME</td><td>)</td>
<td>&#160;&#160;&#160;__ORIG_FUNC(__NAME)</td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="perf__os__patch__rt__thread_8c_source.html#l00043">43</a> of file <a class="el" href="perf__os__patch__rt__thread_8c_source.html">perf_os_patch_rt_thread.c</a>.</p>
</div>
</div>
<a id="a34b5fd2f760a3a19875464d26bdb71df" name="a34b5fd2f760a3a19875464d26bdb71df"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a34b5fd2f760a3a19875464d26bdb71df">&#9670;&nbsp;</a></span>WRAP_FUNC</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define WRAP_FUNC</td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname">__NAME</td><td>)</td>
<td>&#160;&#160;&#160;__WRAP_FUNC(__NAME)</td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="perf__os__patch__rt__thread_8c_source.html#l00042">42</a> of file <a class="el" href="perf__os__patch__rt__thread_8c_source.html">perf_os_patch_rt_thread.c</a>.</p>
</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a id="aded00de9fbde9be7f8872f85685b36a4" name="aded00de9fbde9be7f8872f85685b36a4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aded00de9fbde9be7f8872f85685b36a4">&#9670;&nbsp;</a></span>__on_context_switch_in()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void __on_context_switch_in </td>
<td>(</td>
<td class="paramtype">uint32_t *&#160;</td>
<td class="paramname"><em>pwStack</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section note"><dt>Note</dt><dd>if you aren't using perf_counter inside KEIL with RTE, please create ! a header file called "Pre_Include_Global.h", copy the following ! content into the header file and and put following option ! to your command line (supposing you are using arm compiler 6): ! -include "Pre_Include_Global.h" </dd></dl>
<p >update all agents</p>
<p class="definition">Definition at line <a class="el" href="perf__counter_8c_source.html#l00646">646</a> of file <a class="el" href="perf__counter_8c_source.html">perf_counter.c</a>.</p>
<div class="fragment"><div class="line"><span class="lineno"> 647</span>{</div>
<div class="line"><span class="lineno"> 648</span> <span class="keyword">struct </span><a class="code hl_struct" href="struct____task__cycle__info__t.html">__task_cycle_info_t</a> *ptRootAgent = (<span class="keyword">struct </span><a class="code hl_struct" href="struct____task__cycle__info__t.html">__task_cycle_info_t</a> *)pwStack;</div>
<div class="line"><span class="lineno"> 649</span> uint64_t dwTimeStamp = <a class="code hl_function" href="perf__counter_8c.html#a32dabfe5b863f89f71735b20a0caf1ea">get_system_ticks</a>();</div>
<div class="line"><span class="lineno"> 650</span> </div>
<div class="line"><span class="lineno"> 651</span> ptRootAgent-&gt;<a class="code hl_variable" href="struct____task__cycle__info__t.html#ae2aae11f91e3eea654ceeac9b81706cb">lLastTimeStamp</a> = dwTimeStamp;</div>
<div class="line"><span class="lineno"> 652</span> ptRootAgent-&gt;<a class="code hl_variable" href="struct____task__cycle__info__t.html#a8af024785267321e4ef544e7f25d80dc">tInfo</a>.<a class="code hl_variable" href="structtask__cycle__info__t.html#a84d3729a2d49dd2e43ef8727fcd6f9b0">hwActiveCount</a>++;</div>
<div class="line"><span class="lineno"> 653</span> </div>
<div class="line"><span class="lineno"> 654</span> <span class="keywordflow">if</span> (<a class="code hl_define" href="perf__counter_8c.html#a5ed2b69d382ff960de71b5aa2e0b0deb">MAGIC_WORD_AGENT_LIST_VALID</a> == ptRootAgent-&gt;<a class="code hl_variable" href="struct____task__cycle__info__t.html#a88c8aad5ae23ae04fa44b2892081561b">wMagicWord</a>) {</div>
<div class="line"><span class="lineno"> 656</span> <a class="code hl_struct" href="structtask__cycle__info__agent__t.html">task_cycle_info_agent_t</a> *ptAgent = ptRootAgent-&gt;<a class="code hl_variable" href="struct____task__cycle__info__t.html#a7d50a2272c4a1b65f927e8c6d1242b33">tList</a>.<a class="code hl_variable" href="structtask__cycle__info__agent__t.html#a3f049d289ce99f316894417016d60ca6">ptNext</a>;</div>
<div class="line"><span class="lineno"> 657</span> <span class="keywordflow">while</span>(NULL != ptAgent) {</div>
<div class="line"><span class="lineno"> 658</span> <span class="keywordflow">if</span> (NULL != ptAgent-&gt;<a class="code hl_variable" href="structtask__cycle__info__agent__t.html#a26adda6b75d3722f450eb169546bd7e7">ptInfo</a>) {</div>
<div class="line"><span class="lineno"> 659</span> <span class="keywordflow">if</span> (ptAgent-&gt;<a class="code hl_variable" href="structtask__cycle__info__agent__t.html#a26adda6b75d3722f450eb169546bd7e7">ptInfo</a>-&gt;<a class="code hl_variable" href="structtask__cycle__info__t.html#a8a4c67264f8440bb83dec68c4312ff09">bEnabled</a>) {</div>
<div class="line"><span class="lineno"> 660</span> ptAgent-&gt;<a class="code hl_variable" href="structtask__cycle__info__agent__t.html#a26adda6b75d3722f450eb169546bd7e7">ptInfo</a>-&gt;<a class="code hl_variable" href="structtask__cycle__info__t.html#a84d3729a2d49dd2e43ef8727fcd6f9b0">hwActiveCount</a>++;</div>
<div class="line"><span class="lineno"> 661</span> }</div>
<div class="line"><span class="lineno"> 662</span> }</div>
<div class="line"><span class="lineno"> 663</span> ptAgent = ptAgent-&gt;<a class="code hl_variable" href="structtask__cycle__info__agent__t.html#a3f049d289ce99f316894417016d60ca6">ptNext</a>;</div>
<div class="line"><span class="lineno"> 664</span> }</div>
<div class="line"><span class="lineno"> 665</span> }</div>
<div class="line"><span class="lineno"> 666</span>}</div>
<div class="ttc" id="aperf__counter_8c_html_a32dabfe5b863f89f71735b20a0caf1ea"><div class="ttname"><a href="perf__counter_8c.html#a32dabfe5b863f89f71735b20a0caf1ea">get_system_ticks</a></div><div class="ttdeci">int64_t get_system_ticks(void)</div><div class="ttdoc">get the elapsed cycles since perf_counter is initialised</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00472">perf_counter.c:472</a></div></div>
<div class="ttc" id="aperf__counter_8c_html_a5ed2b69d382ff960de71b5aa2e0b0deb"><div class="ttname"><a href="perf__counter_8c.html#a5ed2b69d382ff960de71b5aa2e0b0deb">MAGIC_WORD_AGENT_LIST_VALID</a></div><div class="ttdeci">#define MAGIC_WORD_AGENT_LIST_VALID</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00111">perf_counter.c:111</a></div></div>
<div class="ttc" id="astruct____task__cycle__info__t_html"><div class="ttname"><a href="struct____task__cycle__info__t.html">__task_cycle_info_t</a></div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00161">perf_counter.c:161</a></div></div>
<div class="ttc" id="astruct____task__cycle__info__t_html_a7d50a2272c4a1b65f927e8c6d1242b33"><div class="ttname"><a href="struct____task__cycle__info__t.html#a7d50a2272c4a1b65f927e8c6d1242b33">__task_cycle_info_t::tList</a></div><div class="ttdeci">task_cycle_info_agent_t tList</div><div class="ttdoc">the root of the agent list</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00164">perf_counter.c:164</a></div></div>
<div class="ttc" id="astruct____task__cycle__info__t_html_a88c8aad5ae23ae04fa44b2892081561b"><div class="ttname"><a href="struct____task__cycle__info__t.html#a88c8aad5ae23ae04fa44b2892081561b">__task_cycle_info_t::wMagicWord</a></div><div class="ttdeci">uint32_t wMagicWord</div><div class="ttdoc">an magic word for validation</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00165">perf_counter.c:165</a></div></div>
<div class="ttc" id="astruct____task__cycle__info__t_html_a8af024785267321e4ef544e7f25d80dc"><div class="ttname"><a href="struct____task__cycle__info__t.html#a8af024785267321e4ef544e7f25d80dc">__task_cycle_info_t::tInfo</a></div><div class="ttdeci">task_cycle_info_t tInfo</div><div class="ttdoc">cycle information</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00162">perf_counter.c:162</a></div></div>
<div class="ttc" id="astruct____task__cycle__info__t_html_ae2aae11f91e3eea654ceeac9b81706cb"><div class="ttname"><a href="struct____task__cycle__info__t.html#ae2aae11f91e3eea654ceeac9b81706cb">__task_cycle_info_t::lLastTimeStamp</a></div><div class="ttdeci">int64_t lLastTimeStamp</div><div class="ttdoc">previous timestamp</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00163">perf_counter.c:163</a></div></div>
<div class="ttc" id="astructtask__cycle__info__agent__t_html"><div class="ttname"><a href="structtask__cycle__info__agent__t.html">task_cycle_info_agent_t</a></div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8h_source.html#l00337">perf_counter.h:337</a></div></div>
<div class="ttc" id="astructtask__cycle__info__agent__t_html_a26adda6b75d3722f450eb169546bd7e7"><div class="ttname"><a href="structtask__cycle__info__agent__t.html#a26adda6b75d3722f450eb169546bd7e7">task_cycle_info_agent_t::ptInfo</a></div><div class="ttdeci">task_cycle_info_t * ptInfo</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8h_source.html#l00338">perf_counter.h:338</a></div></div>
<div class="ttc" id="astructtask__cycle__info__agent__t_html_a3f049d289ce99f316894417016d60ca6"><div class="ttname"><a href="structtask__cycle__info__agent__t.html#a3f049d289ce99f316894417016d60ca6">task_cycle_info_agent_t::ptNext</a></div><div class="ttdeci">task_cycle_info_agent_t * ptNext</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8h_source.html#l00339">perf_counter.h:339</a></div></div>
<div class="ttc" id="astructtask__cycle__info__t_html_a84d3729a2d49dd2e43ef8727fcd6f9b0"><div class="ttname"><a href="structtask__cycle__info__t.html#a84d3729a2d49dd2e43ef8727fcd6f9b0">task_cycle_info_t::hwActiveCount</a></div><div class="ttdeci">uint16_t hwActiveCount</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8h_source.html#l00330">perf_counter.h:330</a></div></div>
<div class="ttc" id="astructtask__cycle__info__t_html_a8a4c67264f8440bb83dec68c4312ff09"><div class="ttname"><a href="structtask__cycle__info__t.html#a8a4c67264f8440bb83dec68c4312ff09">task_cycle_info_t::bEnabled</a></div><div class="ttdeci">uint16_t bEnabled</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8h_source.html#l00332">perf_counter.h:332</a></div></div>
</div><!-- fragment -->
<p class="reference">Referenced by <a class="el" href="perf__os__patch__rt__thread_8c_source.html#l00069">__rt_thread_scheduler_hook()</a>.</p>
</div>
</div>
<a id="aee2926404ade74811fa658786035f745" name="aee2926404ade74811fa658786035f745"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aee2926404ade74811fa658786035f745">&#9670;&nbsp;</a></span>__on_context_switch_out()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void __on_context_switch_out </td>
<td>(</td>
<td class="paramtype">uint32_t *&#160;</td>
<td class="paramname"><em>pwStack</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p >update all agents</p>
<p class="definition">Definition at line <a class="el" href="perf__counter_8c_source.html#l00668">668</a> of file <a class="el" href="perf__counter_8c_source.html">perf_counter.c</a>.</p>
<div class="fragment"><div class="line"><span class="lineno"> 669</span>{</div>
<div class="line"><span class="lineno"> 670</span> <span class="keyword">struct </span><a class="code hl_struct" href="struct____task__cycle__info__t.html">__task_cycle_info_t</a> *ptRootAgent = (<span class="keyword">struct </span><a class="code hl_struct" href="struct____task__cycle__info__t.html">__task_cycle_info_t</a> *)pwStack;</div>
<div class="line"><span class="lineno"> 671</span> int64_t lCycleUsed = <a class="code hl_function" href="perf__counter_8c.html#a32dabfe5b863f89f71735b20a0caf1ea">get_system_ticks</a>() - ptRootAgent-&gt;<a class="code hl_variable" href="struct____task__cycle__info__t.html#ae2aae11f91e3eea654ceeac9b81706cb">lLastTimeStamp</a>;</div>
<div class="line"><span class="lineno"> 672</span> </div>
<div class="line"><span class="lineno"> 673</span> ptRootAgent-&gt;<a class="code hl_variable" href="struct____task__cycle__info__t.html#a8af024785267321e4ef544e7f25d80dc">tInfo</a>.<a class="code hl_variable" href="structtask__cycle__info__t.html#a0250b43cfb57ddf17f7f40c4cc587249">nUsedRecent</a> = lCycleUsed;</div>
<div class="line"><span class="lineno"> 674</span> ptRootAgent-&gt;<a class="code hl_variable" href="struct____task__cycle__info__t.html#a8af024785267321e4ef544e7f25d80dc">tInfo</a>.<a class="code hl_variable" href="structtask__cycle__info__t.html#a19a46cbd05039f568b01e326d65d6b80">lUsedTotal</a> += lCycleUsed;</div>
<div class="line"><span class="lineno"> 675</span> </div>
<div class="line"><span class="lineno"> 676</span> <span class="keywordflow">if</span> (<a class="code hl_define" href="perf__counter_8c.html#a5ed2b69d382ff960de71b5aa2e0b0deb">MAGIC_WORD_AGENT_LIST_VALID</a> == ptRootAgent-&gt;<a class="code hl_variable" href="struct____task__cycle__info__t.html#a88c8aad5ae23ae04fa44b2892081561b">wMagicWord</a>) {</div>
<div class="line"><span class="lineno"> 678</span> <a class="code hl_struct" href="structtask__cycle__info__agent__t.html">task_cycle_info_agent_t</a> *ptAgent = ptRootAgent-&gt;<a class="code hl_variable" href="struct____task__cycle__info__t.html#a7d50a2272c4a1b65f927e8c6d1242b33">tList</a>.<a class="code hl_variable" href="structtask__cycle__info__agent__t.html#a3f049d289ce99f316894417016d60ca6">ptNext</a>;</div>
<div class="line"><span class="lineno"> 679</span> <span class="keywordflow">while</span>(NULL != ptAgent) {</div>
<div class="line"><span class="lineno"> 680</span> <span class="keywordflow">if</span> (NULL != ptAgent-&gt;<a class="code hl_variable" href="structtask__cycle__info__agent__t.html#a26adda6b75d3722f450eb169546bd7e7">ptInfo</a>) {</div>
<div class="line"><span class="lineno"> 681</span> <span class="keywordflow">if</span> (ptAgent-&gt;<a class="code hl_variable" href="structtask__cycle__info__agent__t.html#a26adda6b75d3722f450eb169546bd7e7">ptInfo</a>-&gt;<a class="code hl_variable" href="structtask__cycle__info__t.html#a8a4c67264f8440bb83dec68c4312ff09">bEnabled</a>) {</div>
<div class="line"><span class="lineno"> 682</span> ptAgent-&gt;<a class="code hl_variable" href="structtask__cycle__info__agent__t.html#a26adda6b75d3722f450eb169546bd7e7">ptInfo</a>-&gt;<a class="code hl_variable" href="structtask__cycle__info__t.html#a0250b43cfb57ddf17f7f40c4cc587249">nUsedRecent</a> = lCycleUsed;</div>
<div class="line"><span class="lineno"> 683</span> ptAgent-&gt;<a class="code hl_variable" href="structtask__cycle__info__agent__t.html#a26adda6b75d3722f450eb169546bd7e7">ptInfo</a>-&gt;<a class="code hl_variable" href="structtask__cycle__info__t.html#a19a46cbd05039f568b01e326d65d6b80">lUsedTotal</a> += lCycleUsed;</div>
<div class="line"><span class="lineno"> 684</span> }</div>
<div class="line"><span class="lineno"> 685</span> }</div>
<div class="line"><span class="lineno"> 686</span> ptAgent = ptAgent-&gt;<a class="code hl_variable" href="structtask__cycle__info__agent__t.html#a3f049d289ce99f316894417016d60ca6">ptNext</a>;</div>
<div class="line"><span class="lineno"> 687</span> }</div>
<div class="line"><span class="lineno"> 688</span> }</div>
<div class="line"><span class="lineno"> 689</span>}</div>
<div class="ttc" id="astructtask__cycle__info__t_html_a0250b43cfb57ddf17f7f40c4cc587249"><div class="ttname"><a href="structtask__cycle__info__t.html#a0250b43cfb57ddf17f7f40c4cc587249">task_cycle_info_t::nUsedRecent</a></div><div class="ttdeci">int32_t nUsedRecent</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8h_source.html#l00329">perf_counter.h:329</a></div></div>
<div class="ttc" id="astructtask__cycle__info__t_html_a19a46cbd05039f568b01e326d65d6b80"><div class="ttname"><a href="structtask__cycle__info__t.html#a19a46cbd05039f568b01e326d65d6b80">task_cycle_info_t::lUsedTotal</a></div><div class="ttdeci">int64_t lUsedTotal</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8h_source.html#l00328">perf_counter.h:328</a></div></div>
</div><!-- fragment -->
<p class="reference">Referenced by <a class="el" href="perf__os__patch__rt__thread_8c_source.html#l00069">__rt_thread_scheduler_hook()</a>.</p>
</div>
</div>
<a id="a6d5a15a297eb8d32f4d96b163bce36d9" name="a6d5a15a297eb8d32f4d96b163bce36d9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6d5a15a297eb8d32f4d96b163bce36d9">&#9670;&nbsp;</a></span>__perf_os_patch_init()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void __perf_os_patch_init </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="perf__os__patch__rt__thread_8c_source.html#l00079">79</a> of file <a class="el" href="perf__os__patch__rt__thread_8c_source.html">perf_os_patch_rt_thread.c</a>.</p>
<div class="fragment"><div class="line"><span class="lineno"> 80</span>{</div>
<div class="line"><span class="lineno"> 81</span> rt_scheduler_sethook(&amp;<a class="code hl_function" href="perf__os__patch__rt__thread_8c.html#abaf903de1b645f8ecdba87f4366322ec">__rt_thread_scheduler_hook</a>);</div>
<div class="line"><span class="lineno"> 82</span>}</div>
<div class="ttc" id="aperf__os__patch__rt__thread_8c_html_abaf903de1b645f8ecdba87f4366322ec"><div class="ttname"><a href="perf__os__patch__rt__thread_8c.html#abaf903de1b645f8ecdba87f4366322ec">__rt_thread_scheduler_hook</a></div><div class="ttdeci">void __rt_thread_scheduler_hook(struct rt_thread *from, struct rt_thread *to)</div><div class="ttdef"><b>Definition:</b> <a href="perf__os__patch__rt__thread_8c_source.html#l00069">perf_os_patch_rt_thread.c:69</a></div></div>
</div><!-- fragment -->
<p class="reference">References <a class="el" href="perf__os__patch__rt__thread_8c_source.html#l00069">__rt_thread_scheduler_hook()</a>.</p>
</div>
</div>
<a id="abaf903de1b645f8ecdba87f4366322ec" name="abaf903de1b645f8ecdba87f4366322ec"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abaf903de1b645f8ecdba87f4366322ec">&#9670;&nbsp;</a></span>__rt_thread_scheduler_hook()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void __rt_thread_scheduler_hook </td>
<td>(</td>
<td class="paramtype">struct rt_thread *&#160;</td>
<td class="paramname"><em>from</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">struct rt_thread *&#160;</td>
<td class="paramname"><em>to</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="perf__os__patch__rt__thread_8c_source.html#l00069">69</a> of file <a class="el" href="perf__os__patch__rt__thread_8c_source.html">perf_os_patch_rt_thread.c</a>.</p>
<div class="fragment"><div class="line"><span class="lineno"> 70</span>{</div>
<div class="line"><span class="lineno"> 71</span> <span class="keywordflow">if</span> (NULL != from) {</div>
<div class="line"><span class="lineno"> 72</span> <a class="code hl_function" href="perf__os__patch__rt__thread_8c.html#aee2926404ade74811fa658786035f745">__on_context_switch_out</a>(from-&gt;stack_addr);</div>
<div class="line"><span class="lineno"> 73</span> }</div>
<div class="line"><span class="lineno"> 74</span> </div>
<div class="line"><span class="lineno"> 75</span> <a class="code hl_function" href="perf__os__patch__rt__thread_8c.html#aded00de9fbde9be7f8872f85685b36a4">__on_context_switch_in</a>(to-&gt;stack_addr);</div>
<div class="line"><span class="lineno"> 76</span>}</div>
<div class="ttc" id="aperf__os__patch__rt__thread_8c_html_aded00de9fbde9be7f8872f85685b36a4"><div class="ttname"><a href="perf__os__patch__rt__thread_8c.html#aded00de9fbde9be7f8872f85685b36a4">__on_context_switch_in</a></div><div class="ttdeci">void __on_context_switch_in(uint32_t *pwStack)</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00646">perf_counter.c:646</a></div></div>
<div class="ttc" id="aperf__os__patch__rt__thread_8c_html_aee2926404ade74811fa658786035f745"><div class="ttname"><a href="perf__os__patch__rt__thread_8c.html#aee2926404ade74811fa658786035f745">__on_context_switch_out</a></div><div class="ttdeci">void __on_context_switch_out(uint32_t *pwStack)</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00668">perf_counter.c:668</a></div></div>
</div><!-- fragment -->
<p class="reference">References <a class="el" href="perf__counter_8c_source.html#l00646">__on_context_switch_in()</a>, and <a class="el" href="perf__counter_8c_source.html#l00668">__on_context_switch_out()</a>.</p>
<p class="reference">Referenced by <a class="el" href="perf__os__patch__rt__thread_8c_source.html#l00079">__perf_os_patch_init()</a>.</p>
</div>
</div>
<a id="aafe74ae771ab855185531aae1e42657c" name="aafe74ae771ab855185531aae1e42657c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aafe74ae771ab855185531aae1e42657c">&#9670;&nbsp;</a></span>get_rtos_task_cycle_info()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structtask__cycle__info__t.html">task_cycle_info_t</a> * get_rtos_task_cycle_info </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="perf__os__patch__rt__thread_8c_source.html#l00085">85</a> of file <a class="el" href="perf__os__patch__rt__thread_8c_source.html">perf_os_patch_rt_thread.c</a>.</p>
<div class="fragment"><div class="line"><span class="lineno"> 86</span>{ </div>
<div class="line"><span class="lineno"> 87</span> <span class="keywordflow">return</span> &amp;(((<span class="keyword">struct </span><a class="code hl_struct" href="struct____task__cycle__info__t.html">__task_cycle_info_t</a> *)<a class="code hl_variable" href="perf__os__patch__rt__thread_8c.html#a79f56a5699427ae8a615005dfbaf4325">rt_current_thread</a>-&gt;stack_addr)-&gt;tInfo);</div>
<div class="line"><span class="lineno"> 88</span>}</div>
<div class="ttc" id="aperf__os__patch__rt__thread_8c_html_a79f56a5699427ae8a615005dfbaf4325"><div class="ttname"><a href="perf__os__patch__rt__thread_8c.html#a79f56a5699427ae8a615005dfbaf4325">rt_current_thread</a></div><div class="ttdeci">struct rt_thread * rt_current_thread</div></div>
</div><!-- fragment -->
<p class="reference">References <a class="el" href="perf__os__patch__rt__thread_8c.html#a79f56a5699427ae8a615005dfbaf4325">rt_current_thread</a>.</p>
</div>
</div>
<h2 class="groupheader">Variable Documentation</h2>
<a id="a79f56a5699427ae8a615005dfbaf4325" name="a79f56a5699427ae8a615005dfbaf4325"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a79f56a5699427ae8a615005dfbaf4325">&#9670;&nbsp;</a></span>rt_current_thread</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">struct rt_thread* rt_current_thread</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">extern</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="reference">Referenced by <a class="el" href="perf__os__patch__rt__thread_8c_source.html#l00085">get_rtos_task_cycle_info()</a>.</p>
</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="perf__os__patch__rt__thread_8c.html">perf_os_patch_rt_thread.c</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.4 </li>
</ul>
</div>
</body>
</html>

View File

@ -0,0 +1,12 @@
var perf__os__patch__rt__thread_8c =
[
[ "__task_cycle_info_t", "struct____task__cycle__info__t.html", "struct____task__cycle__info__t" ],
[ "ORIG_FUNC", "perf__os__patch__rt__thread_8c.html#aa7290a1d64a5cbe15d52fec89b35f1b9", null ],
[ "WRAP_FUNC", "perf__os__patch__rt__thread_8c.html#a34b5fd2f760a3a19875464d26bdb71df", null ],
[ "__on_context_switch_in", "perf__os__patch__rt__thread_8c.html#aded00de9fbde9be7f8872f85685b36a4", null ],
[ "__on_context_switch_out", "perf__os__patch__rt__thread_8c.html#aee2926404ade74811fa658786035f745", null ],
[ "__perf_os_patch_init", "perf__os__patch__rt__thread_8c.html#a6d5a15a297eb8d32f4d96b163bce36d9", null ],
[ "__rt_thread_scheduler_hook", "perf__os__patch__rt__thread_8c.html#abaf903de1b645f8ecdba87f4366322ec", null ],
[ "get_rtos_task_cycle_info", "perf__os__patch__rt__thread_8c.html#aafe74ae771ab855185531aae1e42657c", null ],
[ "rt_current_thread", "perf__os__patch__rt__thread_8c.html#a79f56a5699427ae8a615005dfbaf4325", null ]
];

View File

@ -0,0 +1,200 @@
<!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=11"/>
<meta name="generator" content="Doxygen 1.9.4"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>perf_counter: perf_os_patch_rt_thread.c 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 id="projectrow">
<td id="projectalign">
<div id="projectname">perf_counter
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.4 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @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:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(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:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('perf__os__patch__rt__thread_8c_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">perf_os_patch_rt_thread.c</div></div>
</div><!--header-->
<div class="contents">
<a href="perf__os__patch__rt__thread_8c.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="comment">/****************************************************************************</span></div>
<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span><span class="comment">* Copyright 2022 Gorgon Meducer (Email:embedded_zhuoran@hotmail.com) *</span></div>
<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span><span class="comment">* *</span></div>
<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span><span class="comment">* Licensed under the Apache License, Version 2.0 (the &quot;License&quot;); *</span></div>
<div class="line"><a id="l00005" name="l00005"></a><span class="lineno"> 5</span><span class="comment">* you may not use this file except in compliance with the License. *</span></div>
<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span><span class="comment">* You may obtain a copy of the License at *</span></div>
<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span><span class="comment">* *</span></div>
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span><span class="comment">* http://www.apache.org/licenses/LICENSE-2.0 *</span></div>
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span><span class="comment">* *</span></div>
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span><span class="comment">* Unless required by applicable law or agreed to in writing, software *</span></div>
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span><span class="comment">* distributed under the License is distributed on an &quot;AS IS&quot; BASIS, *</span></div>
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="comment">* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. *</span></div>
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="comment">* See the License for the specific language governing permissions and *</span></div>
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span><span class="comment">* limitations under the License. *</span></div>
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span><span class="comment">* *</span></div>
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span><span class="comment">****************************************************************************/</span></div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span> </div>
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span> </div>
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span><span class="comment">/*============================ INCLUDES ======================================*/</span></div>
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span> </div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span> </div>
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span><span class="preprocessor">#include &lt;rtthread.h&gt;</span></div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span><span class="preprocessor">#include &quot;<a class="code" href="perf__counter_8h.html">perf_counter.h</a>&quot;</span></div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span><span class="preprocessor">#include &quot;cmsis_compiler.h&quot;</span></div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span> </div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span><span class="comment">/*============================ MACROS ========================================*/</span></div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> </div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span><span class="preprocessor">#undef __WRAP_FUNC</span></div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span><span class="preprocessor">#undef WRAP_FUNC</span></div>
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span><span class="preprocessor">#if defined(__IS_COMPILER_ARM_COMPILER__) &amp;&amp; __IS_COMPILER_ARM_COMPILER__ </span></div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span> </div>
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span><span class="preprocessor"># define __WRAP_FUNC(__NAME) $Sub$$##__NAME</span></div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span><span class="preprocessor"># define __ORIG_FUNC(__NAME) $Super$$##__NAME</span></div>
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span> </div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span><span class="preprocessor">#elif (defined(__IS_COMPILER_LLVM__) &amp;&amp; __IS_COMPILER_LLVM__) \</span></div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span><span class="preprocessor"> || (defined(__IS_COMPILER_GCC__) &amp;&amp; __IS_COMPILER_GCC__)</span></div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> </div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span><span class="preprocessor"># define __WRAP_FUNC(__NAME) __wrap_##__NAME</span></div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span><span class="preprocessor"># define __ORIG_FUNC(__NAME) __real_##__NAME</span></div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span> </div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"><a class="line" href="perf__os__patch__rt__thread_8c.html#a34b5fd2f760a3a19875464d26bdb71df"> 42</a></span><span class="preprocessor">#define WRAP_FUNC(__NAME) __WRAP_FUNC(__NAME)</span></div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"><a class="line" href="perf__os__patch__rt__thread_8c.html#aa7290a1d64a5cbe15d52fec89b35f1b9"> 43</a></span><span class="preprocessor">#define ORIG_FUNC(__NAME) __ORIG_FUNC(__NAME)</span></div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span> </div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span><span class="keyword">struct </span><a class="code hl_struct" href="struct____task__cycle__info__t.html">__task_cycle_info_t</a> {</div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> <a class="code hl_struct" href="structtask__cycle__info__t.html">task_cycle_info_t</a> <a class="code hl_variable" href="struct____task__cycle__info__t.html#a8af024785267321e4ef544e7f25d80dc">tInfo</a>;</div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span> int64_t <a class="code hl_variable" href="struct____task__cycle__info__t.html#ae2aae11f91e3eea654ceeac9b81706cb">lLastTimeStamp</a>;</div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> <a class="code hl_struct" href="structtask__cycle__info__agent__t.html">task_cycle_info_agent_t</a> <a class="code hl_variable" href="struct____task__cycle__info__t.html#a7d50a2272c4a1b65f927e8c6d1242b33">tList</a>;</div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span> uint32_t <a class="code hl_variable" href="struct____task__cycle__info__t.html#a88c8aad5ae23ae04fa44b2892081561b">wMagicWord</a>;</div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span>} ;</div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> </div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span> </div>
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> </div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span><span class="preprocessor">#ifndef RT_USING_HOOK</span></div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span><span class="preprocessor">#error In order to use perf_counter:RT-Thread-Patch, please define RT_USING_HOOK\</span></div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span><span class="preprocessor"> in rtconfig.h. If you don&#39;t want to use this patch, please un-select it in RTE.</span></div>
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> </div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> </div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span><span class="comment">/*============================ TYPES =========================================*/</span></div>
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span><span class="comment">/*============================ GLOBAL VARIABLES ==============================*/</span></div>
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span><span class="comment">/*============================ LOCAL VARIABLES ===============================*/</span></div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span><span class="comment">/*============================ PROTOTYPES ====================================*/</span></div>
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span><span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code hl_function" href="perf__os__patch__rt__thread_8c.html#aded00de9fbde9be7f8872f85685b36a4">__on_context_switch_in</a>(uint32_t *pwStack);</div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span><span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code hl_function" href="perf__os__patch__rt__thread_8c.html#aee2926404ade74811fa658786035f745">__on_context_switch_out</a>(uint32_t *pwStack);</div>
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span><span class="keyword">extern</span> <span class="keyword">struct </span>rt_thread *<a class="code hl_variable" href="perf__os__patch__rt__thread_8c.html#a79f56a5699427ae8a615005dfbaf4325">rt_current_thread</a>;</div>
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span><span class="comment">/*============================ IMPLEMENTATION ================================*/</span></div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span> </div>
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"><a class="line" href="perf__os__patch__rt__thread_8c.html#abaf903de1b645f8ecdba87f4366322ec"> 69</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="perf__os__patch__rt__thread_8c.html#abaf903de1b645f8ecdba87f4366322ec">__rt_thread_scheduler_hook</a>(<span class="keyword">struct</span> rt_thread *from, <span class="keyword">struct</span> rt_thread *to)</div>
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span>{</div>
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span> <span class="keywordflow">if</span> (NULL != from) {</div>
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span> <a class="code hl_function" href="perf__os__patch__rt__thread_8c.html#aee2926404ade74811fa658786035f745">__on_context_switch_out</a>(from-&gt;stack_addr);</div>
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span> }</div>
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span> </div>
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span> <a class="code hl_function" href="perf__os__patch__rt__thread_8c.html#aded00de9fbde9be7f8872f85685b36a4">__on_context_switch_in</a>(to-&gt;stack_addr);</div>
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span>}</div>
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span> </div>
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span><span class="preprocessor">#if RTTHREAD_VERSION &lt;= 40100</span></div>
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"><a class="line" href="perf__os__patch__rt__thread_8c.html#a6d5a15a297eb8d32f4d96b163bce36d9"> 79</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="perf__os__patch__rt__thread_8c.html#a6d5a15a297eb8d32f4d96b163bce36d9">__perf_os_patch_init</a>(<span class="keywordtype">void</span>)</div>
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span>{</div>
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span> rt_scheduler_sethook(&amp;<a class="code hl_function" href="perf__os__patch__rt__thread_8c.html#abaf903de1b645f8ecdba87f4366322ec">__rt_thread_scheduler_hook</a>);</div>
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span>}</div>
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span> </div>
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"><a class="line" href="perf__os__patch__rt__thread_8c.html#aafe74ae771ab855185531aae1e42657c"> 85</a></span><a class="code hl_struct" href="structtask__cycle__info__t.html">task_cycle_info_t</a> * <a class="code hl_function" href="perf__os__patch__rt__thread_8c.html#aafe74ae771ab855185531aae1e42657c">get_rtos_task_cycle_info</a>(<span class="keywordtype">void</span>)</div>
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span>{ </div>
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span> <span class="keywordflow">return</span> &amp;(((<span class="keyword">struct </span><a class="code hl_struct" href="struct____task__cycle__info__t.html">__task_cycle_info_t</a> *)<a class="code hl_variable" href="perf__os__patch__rt__thread_8c.html#a79f56a5699427ae8a615005dfbaf4325">rt_current_thread</a>-&gt;stack_addr)-&gt;tInfo);</div>
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span>}</div>
<div class="ttc" id="aperf__counter_8h_html"><div class="ttname"><a href="perf__counter_8h.html">perf_counter.h</a></div></div>
<div class="ttc" id="aperf__os__patch__rt__thread_8c_html_a6d5a15a297eb8d32f4d96b163bce36d9"><div class="ttname"><a href="perf__os__patch__rt__thread_8c.html#a6d5a15a297eb8d32f4d96b163bce36d9">__perf_os_patch_init</a></div><div class="ttdeci">void __perf_os_patch_init(void)</div><div class="ttdef"><b>Definition:</b> <a href="perf__os__patch__rt__thread_8c_source.html#l00079">perf_os_patch_rt_thread.c:79</a></div></div>
<div class="ttc" id="aperf__os__patch__rt__thread_8c_html_a79f56a5699427ae8a615005dfbaf4325"><div class="ttname"><a href="perf__os__patch__rt__thread_8c.html#a79f56a5699427ae8a615005dfbaf4325">rt_current_thread</a></div><div class="ttdeci">struct rt_thread * rt_current_thread</div></div>
<div class="ttc" id="aperf__os__patch__rt__thread_8c_html_aafe74ae771ab855185531aae1e42657c"><div class="ttname"><a href="perf__os__patch__rt__thread_8c.html#aafe74ae771ab855185531aae1e42657c">get_rtos_task_cycle_info</a></div><div class="ttdeci">task_cycle_info_t * get_rtos_task_cycle_info(void)</div><div class="ttdef"><b>Definition:</b> <a href="perf__os__patch__rt__thread_8c_source.html#l00085">perf_os_patch_rt_thread.c:85</a></div></div>
<div class="ttc" id="aperf__os__patch__rt__thread_8c_html_abaf903de1b645f8ecdba87f4366322ec"><div class="ttname"><a href="perf__os__patch__rt__thread_8c.html#abaf903de1b645f8ecdba87f4366322ec">__rt_thread_scheduler_hook</a></div><div class="ttdeci">void __rt_thread_scheduler_hook(struct rt_thread *from, struct rt_thread *to)</div><div class="ttdef"><b>Definition:</b> <a href="perf__os__patch__rt__thread_8c_source.html#l00069">perf_os_patch_rt_thread.c:69</a></div></div>
<div class="ttc" id="aperf__os__patch__rt__thread_8c_html_aded00de9fbde9be7f8872f85685b36a4"><div class="ttname"><a href="perf__os__patch__rt__thread_8c.html#aded00de9fbde9be7f8872f85685b36a4">__on_context_switch_in</a></div><div class="ttdeci">void __on_context_switch_in(uint32_t *pwStack)</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00646">perf_counter.c:646</a></div></div>
<div class="ttc" id="aperf__os__patch__rt__thread_8c_html_aee2926404ade74811fa658786035f745"><div class="ttname"><a href="perf__os__patch__rt__thread_8c.html#aee2926404ade74811fa658786035f745">__on_context_switch_out</a></div><div class="ttdeci">void __on_context_switch_out(uint32_t *pwStack)</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00668">perf_counter.c:668</a></div></div>
<div class="ttc" id="astruct____task__cycle__info__t_html"><div class="ttname"><a href="struct____task__cycle__info__t.html">__task_cycle_info_t</a></div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00161">perf_counter.c:161</a></div></div>
<div class="ttc" id="astruct____task__cycle__info__t_html_a7d50a2272c4a1b65f927e8c6d1242b33"><div class="ttname"><a href="struct____task__cycle__info__t.html#a7d50a2272c4a1b65f927e8c6d1242b33">__task_cycle_info_t::tList</a></div><div class="ttdeci">task_cycle_info_agent_t tList</div><div class="ttdoc">the root of the agent list</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00164">perf_counter.c:164</a></div></div>
<div class="ttc" id="astruct____task__cycle__info__t_html_a88c8aad5ae23ae04fa44b2892081561b"><div class="ttname"><a href="struct____task__cycle__info__t.html#a88c8aad5ae23ae04fa44b2892081561b">__task_cycle_info_t::wMagicWord</a></div><div class="ttdeci">uint32_t wMagicWord</div><div class="ttdoc">an magic word for validation</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00165">perf_counter.c:165</a></div></div>
<div class="ttc" id="astruct____task__cycle__info__t_html_a8af024785267321e4ef544e7f25d80dc"><div class="ttname"><a href="struct____task__cycle__info__t.html#a8af024785267321e4ef544e7f25d80dc">__task_cycle_info_t::tInfo</a></div><div class="ttdeci">task_cycle_info_t tInfo</div><div class="ttdoc">cycle information</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00162">perf_counter.c:162</a></div></div>
<div class="ttc" id="astruct____task__cycle__info__t_html_ae2aae11f91e3eea654ceeac9b81706cb"><div class="ttname"><a href="struct____task__cycle__info__t.html#ae2aae11f91e3eea654ceeac9b81706cb">__task_cycle_info_t::lLastTimeStamp</a></div><div class="ttdeci">int64_t lLastTimeStamp</div><div class="ttdoc">previous timestamp</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00163">perf_counter.c:163</a></div></div>
<div class="ttc" id="astructtask__cycle__info__agent__t_html"><div class="ttname"><a href="structtask__cycle__info__agent__t.html">task_cycle_info_agent_t</a></div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8h_source.html#l00337">perf_counter.h:337</a></div></div>
<div class="ttc" id="astructtask__cycle__info__t_html"><div class="ttname"><a href="structtask__cycle__info__t.html">task_cycle_info_t</a></div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8h_source.html#l00326">perf_counter.h:326</a></div></div>
</div><!-- fragment --></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="perf__os__patch__rt__thread_8c.html">perf_os_patch_rt_thread.c</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.4 </li>
</ul>
</div>
</body>
</html>

View File

@ -0,0 +1,336 @@
<!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=11"/>
<meta name="generator" content="Doxygen 1.9.4"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>perf_counter: perf_os_patch_rtx5.c 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 id="projectrow">
<td id="projectalign">
<div id="projectname">perf_counter
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.4 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @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:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(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:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('perf__os__patch__rtx5_8c.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="#func-members">Functions</a> </div>
<div class="headertitle"><div class="title">perf_os_patch_rtx5.c File Reference</div></div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &quot;rtx_os.h&quot;</code><br />
<code>#include &quot;<a class="el" href="perf__counter_8h_source.html">perf_counter.h</a>&quot;</code><br />
<code>#include &quot;cmsis_compiler.h&quot;</code><br />
<code>#include &quot;rtx_evr.h&quot;</code><br />
</div>
<p><a href="perf__os__patch__rtx5_8c_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 id="nested-classes" 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____task__cycle__info__t.html">__task_cycle_info_t</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 id="define-members" name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:a34b5fd2f760a3a19875464d26bdb71df"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="perf__os__patch__rtx5_8c.html#a34b5fd2f760a3a19875464d26bdb71df">WRAP_FUNC</a>(__NAME)&#160;&#160;&#160;__WRAP_FUNC(__NAME)</td></tr>
<tr class="separator:a34b5fd2f760a3a19875464d26bdb71df"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa7290a1d64a5cbe15d52fec89b35f1b9"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="perf__os__patch__rtx5_8c.html#aa7290a1d64a5cbe15d52fec89b35f1b9">ORIG_FUNC</a>(__NAME)&#160;&#160;&#160;__ORIG_FUNC(__NAME)</td></tr>
<tr class="separator:aa7290a1d64a5cbe15d52fec89b35f1b9"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:aded00de9fbde9be7f8872f85685b36a4"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="perf__os__patch__rtx5_8c.html#aded00de9fbde9be7f8872f85685b36a4">__on_context_switch_in</a> (uint32_t *pwStack)</td></tr>
<tr class="separator:aded00de9fbde9be7f8872f85685b36a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aee2926404ade74811fa658786035f745"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="perf__os__patch__rtx5_8c.html#aee2926404ade74811fa658786035f745">__on_context_switch_out</a> (uint32_t *pwStack)</td></tr>
<tr class="separator:aee2926404ade74811fa658786035f745"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3a82490931e58666b859d4f6d08cfb5d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="perf__os__patch__rtx5_8c.html#a3a82490931e58666b859d4f6d08cfb5d">__on_context_switch</a> (osRtxThread_t *thread)</td></tr>
<tr class="memdesc:a3a82490931e58666b859d4f6d08cfb5d"><td class="mdescLeft">&#160;</td><td class="mdescRight">wrapper function for rtos context switching <a href="perf__os__patch__rtx5_8c.html#a3a82490931e58666b859d4f6d08cfb5d">More...</a><br /></td></tr>
<tr class="separator:a3a82490931e58666b859d4f6d08cfb5d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aafe74ae771ab855185531aae1e42657c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structtask__cycle__info__t.html">task_cycle_info_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="perf__os__patch__rtx5_8c.html#aafe74ae771ab855185531aae1e42657c">get_rtos_task_cycle_info</a> (void)</td></tr>
<tr class="separator:aafe74ae771ab855185531aae1e42657c"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Macro Definition Documentation</h2>
<a id="aa7290a1d64a5cbe15d52fec89b35f1b9" name="aa7290a1d64a5cbe15d52fec89b35f1b9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa7290a1d64a5cbe15d52fec89b35f1b9">&#9670;&nbsp;</a></span>ORIG_FUNC</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define ORIG_FUNC</td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname">__NAME</td><td>)</td>
<td>&#160;&#160;&#160;__ORIG_FUNC(__NAME)</td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="perf__os__patch__rtx5_8c_source.html#l00044">44</a> of file <a class="el" href="perf__os__patch__rtx5_8c_source.html">perf_os_patch_rtx5.c</a>.</p>
</div>
</div>
<a id="a34b5fd2f760a3a19875464d26bdb71df" name="a34b5fd2f760a3a19875464d26bdb71df"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a34b5fd2f760a3a19875464d26bdb71df">&#9670;&nbsp;</a></span>WRAP_FUNC</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define WRAP_FUNC</td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname">__NAME</td><td>)</td>
<td>&#160;&#160;&#160;__WRAP_FUNC(__NAME)</td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="perf__os__patch__rtx5_8c_source.html#l00043">43</a> of file <a class="el" href="perf__os__patch__rtx5_8c_source.html">perf_os_patch_rtx5.c</a>.</p>
</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a id="a3a82490931e58666b859d4f6d08cfb5d" name="a3a82490931e58666b859d4f6d08cfb5d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3a82490931e58666b859d4f6d08cfb5d">&#9670;&nbsp;</a></span>__on_context_switch()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void __on_context_switch </td>
<td>(</td>
<td class="paramtype">osRtxThread_t *&#160;</td>
<td class="paramname"><em>thread</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>wrapper function for rtos context switching </p>
<p class="definition">Definition at line <a class="el" href="perf__os__patch__rtx5_8c_source.html#l00065">65</a> of file <a class="el" href="perf__os__patch__rtx5_8c_source.html">perf_os_patch_rtx5.c</a>.</p>
<div class="fragment"><div class="line"><span class="lineno"> 66</span>{</div>
<div class="line"><span class="lineno"> 67</span> <span class="keywordflow">if</span> (NULL != osRtxInfo.thread.run.curr) {</div>
<div class="line"><span class="lineno"> 68</span> <a class="code hl_function" href="perf__os__patch__rtx5_8c.html#aee2926404ade74811fa658786035f745">__on_context_switch_out</a>(osRtxInfo.thread.run.curr-&gt;stack_mem);</div>
<div class="line"><span class="lineno"> 69</span> }</div>
<div class="line"><span class="lineno"> 70</span> </div>
<div class="line"><span class="lineno"> 71</span> <a class="code hl_function" href="perf__os__patch__rtx5_8c.html#aded00de9fbde9be7f8872f85685b36a4">__on_context_switch_in</a>(thread-&gt;stack_mem);</div>
<div class="line"><span class="lineno"> 72</span>}</div>
<div class="ttc" id="aperf__os__patch__rtx5_8c_html_aded00de9fbde9be7f8872f85685b36a4"><div class="ttname"><a href="perf__os__patch__rtx5_8c.html#aded00de9fbde9be7f8872f85685b36a4">__on_context_switch_in</a></div><div class="ttdeci">void __on_context_switch_in(uint32_t *pwStack)</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00646">perf_counter.c:646</a></div></div>
<div class="ttc" id="aperf__os__patch__rtx5_8c_html_aee2926404ade74811fa658786035f745"><div class="ttname"><a href="perf__os__patch__rtx5_8c.html#aee2926404ade74811fa658786035f745">__on_context_switch_out</a></div><div class="ttdeci">void __on_context_switch_out(uint32_t *pwStack)</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00668">perf_counter.c:668</a></div></div>
</div><!-- fragment -->
<p class="reference">References <a class="el" href="perf__counter_8c_source.html#l00646">__on_context_switch_in()</a>, and <a class="el" href="perf__counter_8c_source.html#l00668">__on_context_switch_out()</a>.</p>
</div>
</div>
<a id="aded00de9fbde9be7f8872f85685b36a4" name="aded00de9fbde9be7f8872f85685b36a4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aded00de9fbde9be7f8872f85685b36a4">&#9670;&nbsp;</a></span>__on_context_switch_in()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void __on_context_switch_in </td>
<td>(</td>
<td class="paramtype">uint32_t *&#160;</td>
<td class="paramname"><em>pwStack</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section note"><dt>Note</dt><dd>if you aren't using perf_counter inside KEIL with RTE, please create ! a header file called "Pre_Include_Global.h", copy the following ! content into the header file and and put following option ! to your command line (supposing you are using arm compiler 6): ! -include "Pre_Include_Global.h" </dd></dl>
<p >update all agents</p>
<p class="definition">Definition at line <a class="el" href="perf__counter_8c_source.html#l00646">646</a> of file <a class="el" href="perf__counter_8c_source.html">perf_counter.c</a>.</p>
<div class="fragment"><div class="line"><span class="lineno"> 647</span>{</div>
<div class="line"><span class="lineno"> 648</span> <span class="keyword">struct </span><a class="code hl_struct" href="struct____task__cycle__info__t.html">__task_cycle_info_t</a> *ptRootAgent = (<span class="keyword">struct </span><a class="code hl_struct" href="struct____task__cycle__info__t.html">__task_cycle_info_t</a> *)pwStack;</div>
<div class="line"><span class="lineno"> 649</span> uint64_t dwTimeStamp = <a class="code hl_function" href="perf__counter_8c.html#a32dabfe5b863f89f71735b20a0caf1ea">get_system_ticks</a>();</div>
<div class="line"><span class="lineno"> 650</span> </div>
<div class="line"><span class="lineno"> 651</span> ptRootAgent-&gt;<a class="code hl_variable" href="struct____task__cycle__info__t.html#ae2aae11f91e3eea654ceeac9b81706cb">lLastTimeStamp</a> = dwTimeStamp;</div>
<div class="line"><span class="lineno"> 652</span> ptRootAgent-&gt;<a class="code hl_variable" href="struct____task__cycle__info__t.html#a8af024785267321e4ef544e7f25d80dc">tInfo</a>.<a class="code hl_variable" href="structtask__cycle__info__t.html#a84d3729a2d49dd2e43ef8727fcd6f9b0">hwActiveCount</a>++;</div>
<div class="line"><span class="lineno"> 653</span> </div>
<div class="line"><span class="lineno"> 654</span> <span class="keywordflow">if</span> (<a class="code hl_define" href="perf__counter_8c.html#a5ed2b69d382ff960de71b5aa2e0b0deb">MAGIC_WORD_AGENT_LIST_VALID</a> == ptRootAgent-&gt;<a class="code hl_variable" href="struct____task__cycle__info__t.html#a88c8aad5ae23ae04fa44b2892081561b">wMagicWord</a>) {</div>
<div class="line"><span class="lineno"> 656</span> <a class="code hl_struct" href="structtask__cycle__info__agent__t.html">task_cycle_info_agent_t</a> *ptAgent = ptRootAgent-&gt;<a class="code hl_variable" href="struct____task__cycle__info__t.html#a7d50a2272c4a1b65f927e8c6d1242b33">tList</a>.<a class="code hl_variable" href="structtask__cycle__info__agent__t.html#a3f049d289ce99f316894417016d60ca6">ptNext</a>;</div>
<div class="line"><span class="lineno"> 657</span> <span class="keywordflow">while</span>(NULL != ptAgent) {</div>
<div class="line"><span class="lineno"> 658</span> <span class="keywordflow">if</span> (NULL != ptAgent-&gt;<a class="code hl_variable" href="structtask__cycle__info__agent__t.html#a26adda6b75d3722f450eb169546bd7e7">ptInfo</a>) {</div>
<div class="line"><span class="lineno"> 659</span> <span class="keywordflow">if</span> (ptAgent-&gt;<a class="code hl_variable" href="structtask__cycle__info__agent__t.html#a26adda6b75d3722f450eb169546bd7e7">ptInfo</a>-&gt;<a class="code hl_variable" href="structtask__cycle__info__t.html#a8a4c67264f8440bb83dec68c4312ff09">bEnabled</a>) {</div>
<div class="line"><span class="lineno"> 660</span> ptAgent-&gt;<a class="code hl_variable" href="structtask__cycle__info__agent__t.html#a26adda6b75d3722f450eb169546bd7e7">ptInfo</a>-&gt;<a class="code hl_variable" href="structtask__cycle__info__t.html#a84d3729a2d49dd2e43ef8727fcd6f9b0">hwActiveCount</a>++;</div>
<div class="line"><span class="lineno"> 661</span> }</div>
<div class="line"><span class="lineno"> 662</span> }</div>
<div class="line"><span class="lineno"> 663</span> ptAgent = ptAgent-&gt;<a class="code hl_variable" href="structtask__cycle__info__agent__t.html#a3f049d289ce99f316894417016d60ca6">ptNext</a>;</div>
<div class="line"><span class="lineno"> 664</span> }</div>
<div class="line"><span class="lineno"> 665</span> }</div>
<div class="line"><span class="lineno"> 666</span>}</div>
<div class="ttc" id="aperf__counter_8c_html_a32dabfe5b863f89f71735b20a0caf1ea"><div class="ttname"><a href="perf__counter_8c.html#a32dabfe5b863f89f71735b20a0caf1ea">get_system_ticks</a></div><div class="ttdeci">int64_t get_system_ticks(void)</div><div class="ttdoc">get the elapsed cycles since perf_counter is initialised</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00472">perf_counter.c:472</a></div></div>
<div class="ttc" id="aperf__counter_8c_html_a5ed2b69d382ff960de71b5aa2e0b0deb"><div class="ttname"><a href="perf__counter_8c.html#a5ed2b69d382ff960de71b5aa2e0b0deb">MAGIC_WORD_AGENT_LIST_VALID</a></div><div class="ttdeci">#define MAGIC_WORD_AGENT_LIST_VALID</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00111">perf_counter.c:111</a></div></div>
<div class="ttc" id="astruct____task__cycle__info__t_html"><div class="ttname"><a href="struct____task__cycle__info__t.html">__task_cycle_info_t</a></div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00161">perf_counter.c:161</a></div></div>
<div class="ttc" id="astruct____task__cycle__info__t_html_a7d50a2272c4a1b65f927e8c6d1242b33"><div class="ttname"><a href="struct____task__cycle__info__t.html#a7d50a2272c4a1b65f927e8c6d1242b33">__task_cycle_info_t::tList</a></div><div class="ttdeci">task_cycle_info_agent_t tList</div><div class="ttdoc">the root of the agent list</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00164">perf_counter.c:164</a></div></div>
<div class="ttc" id="astruct____task__cycle__info__t_html_a88c8aad5ae23ae04fa44b2892081561b"><div class="ttname"><a href="struct____task__cycle__info__t.html#a88c8aad5ae23ae04fa44b2892081561b">__task_cycle_info_t::wMagicWord</a></div><div class="ttdeci">uint32_t wMagicWord</div><div class="ttdoc">an magic word for validation</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00165">perf_counter.c:165</a></div></div>
<div class="ttc" id="astruct____task__cycle__info__t_html_a8af024785267321e4ef544e7f25d80dc"><div class="ttname"><a href="struct____task__cycle__info__t.html#a8af024785267321e4ef544e7f25d80dc">__task_cycle_info_t::tInfo</a></div><div class="ttdeci">task_cycle_info_t tInfo</div><div class="ttdoc">cycle information</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00162">perf_counter.c:162</a></div></div>
<div class="ttc" id="astruct____task__cycle__info__t_html_ae2aae11f91e3eea654ceeac9b81706cb"><div class="ttname"><a href="struct____task__cycle__info__t.html#ae2aae11f91e3eea654ceeac9b81706cb">__task_cycle_info_t::lLastTimeStamp</a></div><div class="ttdeci">int64_t lLastTimeStamp</div><div class="ttdoc">previous timestamp</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00163">perf_counter.c:163</a></div></div>
<div class="ttc" id="astructtask__cycle__info__agent__t_html"><div class="ttname"><a href="structtask__cycle__info__agent__t.html">task_cycle_info_agent_t</a></div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8h_source.html#l00337">perf_counter.h:337</a></div></div>
<div class="ttc" id="astructtask__cycle__info__agent__t_html_a26adda6b75d3722f450eb169546bd7e7"><div class="ttname"><a href="structtask__cycle__info__agent__t.html#a26adda6b75d3722f450eb169546bd7e7">task_cycle_info_agent_t::ptInfo</a></div><div class="ttdeci">task_cycle_info_t * ptInfo</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8h_source.html#l00338">perf_counter.h:338</a></div></div>
<div class="ttc" id="astructtask__cycle__info__agent__t_html_a3f049d289ce99f316894417016d60ca6"><div class="ttname"><a href="structtask__cycle__info__agent__t.html#a3f049d289ce99f316894417016d60ca6">task_cycle_info_agent_t::ptNext</a></div><div class="ttdeci">task_cycle_info_agent_t * ptNext</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8h_source.html#l00339">perf_counter.h:339</a></div></div>
<div class="ttc" id="astructtask__cycle__info__t_html_a84d3729a2d49dd2e43ef8727fcd6f9b0"><div class="ttname"><a href="structtask__cycle__info__t.html#a84d3729a2d49dd2e43ef8727fcd6f9b0">task_cycle_info_t::hwActiveCount</a></div><div class="ttdeci">uint16_t hwActiveCount</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8h_source.html#l00330">perf_counter.h:330</a></div></div>
<div class="ttc" id="astructtask__cycle__info__t_html_a8a4c67264f8440bb83dec68c4312ff09"><div class="ttname"><a href="structtask__cycle__info__t.html#a8a4c67264f8440bb83dec68c4312ff09">task_cycle_info_t::bEnabled</a></div><div class="ttdeci">uint16_t bEnabled</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8h_source.html#l00332">perf_counter.h:332</a></div></div>
</div><!-- fragment -->
<p class="reference">Referenced by <a class="el" href="perf__os__patch__rtx5_8c_source.html#l00065">__on_context_switch()</a>.</p>
</div>
</div>
<a id="aee2926404ade74811fa658786035f745" name="aee2926404ade74811fa658786035f745"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aee2926404ade74811fa658786035f745">&#9670;&nbsp;</a></span>__on_context_switch_out()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void __on_context_switch_out </td>
<td>(</td>
<td class="paramtype">uint32_t *&#160;</td>
<td class="paramname"><em>pwStack</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p >update all agents</p>
<p class="definition">Definition at line <a class="el" href="perf__counter_8c_source.html#l00668">668</a> of file <a class="el" href="perf__counter_8c_source.html">perf_counter.c</a>.</p>
<div class="fragment"><div class="line"><span class="lineno"> 669</span>{</div>
<div class="line"><span class="lineno"> 670</span> <span class="keyword">struct </span><a class="code hl_struct" href="struct____task__cycle__info__t.html">__task_cycle_info_t</a> *ptRootAgent = (<span class="keyword">struct </span><a class="code hl_struct" href="struct____task__cycle__info__t.html">__task_cycle_info_t</a> *)pwStack;</div>
<div class="line"><span class="lineno"> 671</span> int64_t lCycleUsed = <a class="code hl_function" href="perf__counter_8c.html#a32dabfe5b863f89f71735b20a0caf1ea">get_system_ticks</a>() - ptRootAgent-&gt;<a class="code hl_variable" href="struct____task__cycle__info__t.html#ae2aae11f91e3eea654ceeac9b81706cb">lLastTimeStamp</a>;</div>
<div class="line"><span class="lineno"> 672</span> </div>
<div class="line"><span class="lineno"> 673</span> ptRootAgent-&gt;<a class="code hl_variable" href="struct____task__cycle__info__t.html#a8af024785267321e4ef544e7f25d80dc">tInfo</a>.<a class="code hl_variable" href="structtask__cycle__info__t.html#a0250b43cfb57ddf17f7f40c4cc587249">nUsedRecent</a> = lCycleUsed;</div>
<div class="line"><span class="lineno"> 674</span> ptRootAgent-&gt;<a class="code hl_variable" href="struct____task__cycle__info__t.html#a8af024785267321e4ef544e7f25d80dc">tInfo</a>.<a class="code hl_variable" href="structtask__cycle__info__t.html#a19a46cbd05039f568b01e326d65d6b80">lUsedTotal</a> += lCycleUsed;</div>
<div class="line"><span class="lineno"> 675</span> </div>
<div class="line"><span class="lineno"> 676</span> <span class="keywordflow">if</span> (<a class="code hl_define" href="perf__counter_8c.html#a5ed2b69d382ff960de71b5aa2e0b0deb">MAGIC_WORD_AGENT_LIST_VALID</a> == ptRootAgent-&gt;<a class="code hl_variable" href="struct____task__cycle__info__t.html#a88c8aad5ae23ae04fa44b2892081561b">wMagicWord</a>) {</div>
<div class="line"><span class="lineno"> 678</span> <a class="code hl_struct" href="structtask__cycle__info__agent__t.html">task_cycle_info_agent_t</a> *ptAgent = ptRootAgent-&gt;<a class="code hl_variable" href="struct____task__cycle__info__t.html#a7d50a2272c4a1b65f927e8c6d1242b33">tList</a>.<a class="code hl_variable" href="structtask__cycle__info__agent__t.html#a3f049d289ce99f316894417016d60ca6">ptNext</a>;</div>
<div class="line"><span class="lineno"> 679</span> <span class="keywordflow">while</span>(NULL != ptAgent) {</div>
<div class="line"><span class="lineno"> 680</span> <span class="keywordflow">if</span> (NULL != ptAgent-&gt;<a class="code hl_variable" href="structtask__cycle__info__agent__t.html#a26adda6b75d3722f450eb169546bd7e7">ptInfo</a>) {</div>
<div class="line"><span class="lineno"> 681</span> <span class="keywordflow">if</span> (ptAgent-&gt;<a class="code hl_variable" href="structtask__cycle__info__agent__t.html#a26adda6b75d3722f450eb169546bd7e7">ptInfo</a>-&gt;<a class="code hl_variable" href="structtask__cycle__info__t.html#a8a4c67264f8440bb83dec68c4312ff09">bEnabled</a>) {</div>
<div class="line"><span class="lineno"> 682</span> ptAgent-&gt;<a class="code hl_variable" href="structtask__cycle__info__agent__t.html#a26adda6b75d3722f450eb169546bd7e7">ptInfo</a>-&gt;<a class="code hl_variable" href="structtask__cycle__info__t.html#a0250b43cfb57ddf17f7f40c4cc587249">nUsedRecent</a> = lCycleUsed;</div>
<div class="line"><span class="lineno"> 683</span> ptAgent-&gt;<a class="code hl_variable" href="structtask__cycle__info__agent__t.html#a26adda6b75d3722f450eb169546bd7e7">ptInfo</a>-&gt;<a class="code hl_variable" href="structtask__cycle__info__t.html#a19a46cbd05039f568b01e326d65d6b80">lUsedTotal</a> += lCycleUsed;</div>
<div class="line"><span class="lineno"> 684</span> }</div>
<div class="line"><span class="lineno"> 685</span> }</div>
<div class="line"><span class="lineno"> 686</span> ptAgent = ptAgent-&gt;<a class="code hl_variable" href="structtask__cycle__info__agent__t.html#a3f049d289ce99f316894417016d60ca6">ptNext</a>;</div>
<div class="line"><span class="lineno"> 687</span> }</div>
<div class="line"><span class="lineno"> 688</span> }</div>
<div class="line"><span class="lineno"> 689</span>}</div>
<div class="ttc" id="astructtask__cycle__info__t_html_a0250b43cfb57ddf17f7f40c4cc587249"><div class="ttname"><a href="structtask__cycle__info__t.html#a0250b43cfb57ddf17f7f40c4cc587249">task_cycle_info_t::nUsedRecent</a></div><div class="ttdeci">int32_t nUsedRecent</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8h_source.html#l00329">perf_counter.h:329</a></div></div>
<div class="ttc" id="astructtask__cycle__info__t_html_a19a46cbd05039f568b01e326d65d6b80"><div class="ttname"><a href="structtask__cycle__info__t.html#a19a46cbd05039f568b01e326d65d6b80">task_cycle_info_t::lUsedTotal</a></div><div class="ttdeci">int64_t lUsedTotal</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8h_source.html#l00328">perf_counter.h:328</a></div></div>
</div><!-- fragment -->
<p class="reference">Referenced by <a class="el" href="perf__os__patch__rtx5_8c_source.html#l00065">__on_context_switch()</a>.</p>
</div>
</div>
<a id="aafe74ae771ab855185531aae1e42657c" name="aafe74ae771ab855185531aae1e42657c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aafe74ae771ab855185531aae1e42657c">&#9670;&nbsp;</a></span>get_rtos_task_cycle_info()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structtask__cycle__info__t.html">task_cycle_info_t</a> * get_rtos_task_cycle_info </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="perf__os__patch__rtx5_8c_source.html#l00090">90</a> of file <a class="el" href="perf__os__patch__rtx5_8c_source.html">perf_os_patch_rtx5.c</a>.</p>
<div class="fragment"><div class="line"><span class="lineno"> 91</span>{ </div>
<div class="line"><span class="lineno"> 92</span> osRtxThread_t *curr = osRtxInfo.thread.run.curr;</div>
<div class="line"><span class="lineno"> 93</span> <span class="keywordflow">if</span> (NULL == curr) {</div>
<div class="line"><span class="lineno"> 94</span> <span class="keywordflow">return</span> NULL;</div>
<div class="line"><span class="lineno"> 95</span> }</div>
<div class="line"><span class="lineno"> 96</span> </div>
<div class="line"><span class="lineno"> 97</span> <span class="keywordflow">return</span> &amp;(((<span class="keyword">struct </span><a class="code hl_struct" href="struct____task__cycle__info__t.html">__task_cycle_info_t</a> *)curr-&gt;stack_mem)-&gt;tInfo);</div>
<div class="line"><span class="lineno"> 98</span>}</div>
</div><!-- fragment -->
</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="perf__os__patch__rtx5_8c.html">perf_os_patch_rtx5.c</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.4 </li>
</ul>
</div>
</body>
</html>

View File

@ -0,0 +1,10 @@
var perf__os__patch__rtx5_8c =
[
[ "__task_cycle_info_t", "struct____task__cycle__info__t.html", "struct____task__cycle__info__t" ],
[ "ORIG_FUNC", "perf__os__patch__rtx5_8c.html#aa7290a1d64a5cbe15d52fec89b35f1b9", null ],
[ "WRAP_FUNC", "perf__os__patch__rtx5_8c.html#a34b5fd2f760a3a19875464d26bdb71df", null ],
[ "__on_context_switch", "perf__os__patch__rtx5_8c.html#a3a82490931e58666b859d4f6d08cfb5d", null ],
[ "__on_context_switch_in", "perf__os__patch__rtx5_8c.html#aded00de9fbde9be7f8872f85685b36a4", null ],
[ "__on_context_switch_out", "perf__os__patch__rtx5_8c.html#aee2926404ade74811fa658786035f745", null ],
[ "get_rtos_task_cycle_info", "perf__os__patch__rtx5_8c.html#aafe74ae771ab855185531aae1e42657c", null ]
];

View File

@ -0,0 +1,208 @@
<!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=11"/>
<meta name="generator" content="Doxygen 1.9.4"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>perf_counter: perf_os_patch_rtx5.c 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 id="projectrow">
<td id="projectalign">
<div id="projectname">perf_counter
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.4 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @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:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(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:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('perf__os__patch__rtx5_8c_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">perf_os_patch_rtx5.c</div></div>
</div><!--header-->
<div class="contents">
<a href="perf__os__patch__rtx5_8c.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="comment">/****************************************************************************</span></div>
<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span><span class="comment">* Copyright 2022 Gorgon Meducer (Email:embedded_zhuoran@hotmail.com) *</span></div>
<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span><span class="comment">* *</span></div>
<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span><span class="comment">* Licensed under the Apache License, Version 2.0 (the &quot;License&quot;); *</span></div>
<div class="line"><a id="l00005" name="l00005"></a><span class="lineno"> 5</span><span class="comment">* you may not use this file except in compliance with the License. *</span></div>
<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span><span class="comment">* You may obtain a copy of the License at *</span></div>
<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span><span class="comment">* *</span></div>
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span><span class="comment">* http://www.apache.org/licenses/LICENSE-2.0 *</span></div>
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span><span class="comment">* *</span></div>
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span><span class="comment">* Unless required by applicable law or agreed to in writing, software *</span></div>
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span><span class="comment">* distributed under the License is distributed on an &quot;AS IS&quot; BASIS, *</span></div>
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="comment">* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. *</span></div>
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="comment">* See the License for the specific language governing permissions and *</span></div>
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span><span class="comment">* limitations under the License. *</span></div>
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span><span class="comment">* *</span></div>
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span><span class="comment">****************************************************************************/</span></div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span> </div>
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span> </div>
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span><span class="comment">/*============================ INCLUDES ======================================*/</span></div>
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span> </div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span> </div>
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span><span class="preprocessor">#include &quot;rtx_os.h&quot;</span></div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span><span class="preprocessor">#include &quot;<a class="code" href="perf__counter_8h.html">perf_counter.h</a>&quot;</span></div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span><span class="preprocessor">#include &quot;cmsis_compiler.h&quot;</span></div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span><span class="preprocessor">#include &quot;rtx_evr.h&quot;</span> <span class="comment">// RTX Event Recorder definitions</span></div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> </div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span><span class="comment">/*============================ MACROS ========================================*/</span></div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> </div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span><span class="preprocessor">#undef __WRAP_FUNC</span></div>
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span><span class="preprocessor">#undef WRAP_FUNC</span></div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span><span class="preprocessor">#if defined(__IS_COMPILER_ARM_COMPILER__) &amp;&amp; __IS_COMPILER_ARM_COMPILER__ </span></div>
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span> </div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span><span class="preprocessor"># define __WRAP_FUNC(__NAME) $Sub$$##__NAME</span></div>
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span><span class="preprocessor"># define __ORIG_FUNC(__NAME) $Super$$##__NAME</span></div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> </div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span><span class="preprocessor">#elif (defined(__IS_COMPILER_LLVM__) &amp;&amp; __IS_COMPILER_LLVM__) \</span></div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span><span class="preprocessor"> || (defined(__IS_COMPILER_GCC__) &amp;&amp; __IS_COMPILER_GCC__)</span></div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> </div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span><span class="preprocessor"># define __WRAP_FUNC(__NAME) __wrap_##__NAME</span></div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span><span class="preprocessor"># define __ORIG_FUNC(__NAME) __real_##__NAME</span></div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> </div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"><a class="line" href="perf__os__patch__rtx5_8c.html#a34b5fd2f760a3a19875464d26bdb71df"> 43</a></span><span class="preprocessor">#define WRAP_FUNC(__NAME) __WRAP_FUNC(__NAME)</span></div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"><a class="line" href="perf__os__patch__rtx5_8c.html#aa7290a1d64a5cbe15d52fec89b35f1b9"> 44</a></span><span class="preprocessor">#define ORIG_FUNC(__NAME) __ORIG_FUNC(__NAME)</span></div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> </div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span><span class="keyword">struct </span><a class="code hl_struct" href="struct____task__cycle__info__t.html">__task_cycle_info_t</a> {</div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span> <a class="code hl_struct" href="structtask__cycle__info__t.html">task_cycle_info_t</a> <a class="code hl_variable" href="struct____task__cycle__info__t.html#a8af024785267321e4ef544e7f25d80dc">tInfo</a>;</div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> int64_t <a class="code hl_variable" href="struct____task__cycle__info__t.html#ae2aae11f91e3eea654ceeac9b81706cb">lLastTimeStamp</a>;</div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span> <a class="code hl_struct" href="structtask__cycle__info__agent__t.html">task_cycle_info_agent_t</a> <a class="code hl_variable" href="struct____task__cycle__info__t.html#a7d50a2272c4a1b65f927e8c6d1242b33">tList</a>;</div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span> uint32_t <a class="code hl_variable" href="struct____task__cycle__info__t.html#a88c8aad5ae23ae04fa44b2892081561b">wMagicWord</a>;</div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span>} ;</div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span> </div>
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> </div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span><span class="comment">/*============================ TYPES =========================================*/</span></div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span><span class="comment">/*============================ GLOBAL VARIABLES ==============================*/</span></div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span><span class="comment">/*============================ LOCAL VARIABLES ===============================*/</span></div>
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span><span class="comment">/*============================ PROTOTYPES ====================================*/</span></div>
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span><span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code hl_function" href="perf__os__patch__rtx5_8c.html#aded00de9fbde9be7f8872f85685b36a4">__on_context_switch_in</a>(uint32_t *pwStack);</div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span><span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code hl_function" href="perf__os__patch__rtx5_8c.html#aee2926404ade74811fa658786035f745">__on_context_switch_out</a>(uint32_t *pwStack);</div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> </div>
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span><span class="comment">/*============================ IMPLEMENTATION ================================*/</span></div>
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span> </div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span> </div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"><a class="line" href="perf__os__patch__rtx5_8c.html#a3a82490931e58666b859d4f6d08cfb5d"> 65</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="perf__os__patch__rtx5_8c.html#a3a82490931e58666b859d4f6d08cfb5d">__on_context_switch</a> (osRtxThread_t *thread)</div>
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span>{</div>
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span> <span class="keywordflow">if</span> (NULL != osRtxInfo.thread.run.curr) {</div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span> <a class="code hl_function" href="perf__os__patch__rtx5_8c.html#aee2926404ade74811fa658786035f745">__on_context_switch_out</a>(osRtxInfo.thread.run.curr-&gt;stack_mem);</div>
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span> }</div>
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span> </div>
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span> <a class="code hl_function" href="perf__os__patch__rtx5_8c.html#aded00de9fbde9be7f8872f85685b36a4">__on_context_switch_in</a>(thread-&gt;stack_mem);</div>
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span>}</div>
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span> </div>
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span>__attribute__((used))</div>
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span><span class="keywordtype">void</span> EvrRtxThreadSwitched (osThreadId_t thread_id) </div>
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span>{</div>
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span> <a class="code hl_function" href="perf__os__patch__rtx5_8c.html#a3a82490931e58666b859d4f6d08cfb5d">__on_context_switch</a>((osRtxThread_t *)thread_id);</div>
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span> </div>
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span><span class="preprocessor">#if defined(RTE_Compiler_EventRecorder)</span></div>
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span><span class="preprocessor"># define EvtRtxThreadSwitched \</span></div>
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span><span class="preprocessor"> EventID(EventLevelOp, EvtRtxThreadNo, 0x19U) </span></div>
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span> </div>
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span> (void)EventRecord2(EvtRtxThreadSwitched, (uint32_t)thread_id, 0U);</div>
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span><span class="preprocessor">#else</span></div>
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span> (void)thread_id;</div>
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span>}</div>
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span> </div>
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span> </div>
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"><a class="line" href="perf__os__patch__rtx5_8c.html#aafe74ae771ab855185531aae1e42657c"> 90</a></span><a class="code hl_struct" href="structtask__cycle__info__t.html">task_cycle_info_t</a> * <a class="code hl_function" href="perf__os__patch__rtx5_8c.html#aafe74ae771ab855185531aae1e42657c">get_rtos_task_cycle_info</a>(<span class="keywordtype">void</span>)</div>
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span>{ </div>
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span> osRtxThread_t *curr = osRtxInfo.thread.run.curr;</div>
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span> <span class="keywordflow">if</span> (NULL == curr) {</div>
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span> <span class="keywordflow">return</span> NULL;</div>
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span> }</div>
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span> </div>
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span> <span class="keywordflow">return</span> &amp;(((<span class="keyword">struct </span><a class="code hl_struct" href="struct____task__cycle__info__t.html">__task_cycle_info_t</a> *)curr-&gt;stack_mem)-&gt;tInfo);</div>
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span>}</div>
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span> </div>
<div class="ttc" id="aperf__counter_8h_html"><div class="ttname"><a href="perf__counter_8h.html">perf_counter.h</a></div></div>
<div class="ttc" id="aperf__os__patch__rtx5_8c_html_a3a82490931e58666b859d4f6d08cfb5d"><div class="ttname"><a href="perf__os__patch__rtx5_8c.html#a3a82490931e58666b859d4f6d08cfb5d">__on_context_switch</a></div><div class="ttdeci">void __on_context_switch(osRtxThread_t *thread)</div><div class="ttdoc">wrapper function for rtos context switching</div><div class="ttdef"><b>Definition:</b> <a href="perf__os__patch__rtx5_8c_source.html#l00065">perf_os_patch_rtx5.c:65</a></div></div>
<div class="ttc" id="aperf__os__patch__rtx5_8c_html_aafe74ae771ab855185531aae1e42657c"><div class="ttname"><a href="perf__os__patch__rtx5_8c.html#aafe74ae771ab855185531aae1e42657c">get_rtos_task_cycle_info</a></div><div class="ttdeci">task_cycle_info_t * get_rtos_task_cycle_info(void)</div><div class="ttdef"><b>Definition:</b> <a href="perf__os__patch__rtx5_8c_source.html#l00090">perf_os_patch_rtx5.c:90</a></div></div>
<div class="ttc" id="aperf__os__patch__rtx5_8c_html_aded00de9fbde9be7f8872f85685b36a4"><div class="ttname"><a href="perf__os__patch__rtx5_8c.html#aded00de9fbde9be7f8872f85685b36a4">__on_context_switch_in</a></div><div class="ttdeci">void __on_context_switch_in(uint32_t *pwStack)</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00646">perf_counter.c:646</a></div></div>
<div class="ttc" id="aperf__os__patch__rtx5_8c_html_aee2926404ade74811fa658786035f745"><div class="ttname"><a href="perf__os__patch__rtx5_8c.html#aee2926404ade74811fa658786035f745">__on_context_switch_out</a></div><div class="ttdeci">void __on_context_switch_out(uint32_t *pwStack)</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00668">perf_counter.c:668</a></div></div>
<div class="ttc" id="astruct____task__cycle__info__t_html"><div class="ttname"><a href="struct____task__cycle__info__t.html">__task_cycle_info_t</a></div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00161">perf_counter.c:161</a></div></div>
<div class="ttc" id="astruct____task__cycle__info__t_html_a7d50a2272c4a1b65f927e8c6d1242b33"><div class="ttname"><a href="struct____task__cycle__info__t.html#a7d50a2272c4a1b65f927e8c6d1242b33">__task_cycle_info_t::tList</a></div><div class="ttdeci">task_cycle_info_agent_t tList</div><div class="ttdoc">the root of the agent list</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00164">perf_counter.c:164</a></div></div>
<div class="ttc" id="astruct____task__cycle__info__t_html_a88c8aad5ae23ae04fa44b2892081561b"><div class="ttname"><a href="struct____task__cycle__info__t.html#a88c8aad5ae23ae04fa44b2892081561b">__task_cycle_info_t::wMagicWord</a></div><div class="ttdeci">uint32_t wMagicWord</div><div class="ttdoc">an magic word for validation</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00165">perf_counter.c:165</a></div></div>
<div class="ttc" id="astruct____task__cycle__info__t_html_a8af024785267321e4ef544e7f25d80dc"><div class="ttname"><a href="struct____task__cycle__info__t.html#a8af024785267321e4ef544e7f25d80dc">__task_cycle_info_t::tInfo</a></div><div class="ttdeci">task_cycle_info_t tInfo</div><div class="ttdoc">cycle information</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00162">perf_counter.c:162</a></div></div>
<div class="ttc" id="astruct____task__cycle__info__t_html_ae2aae11f91e3eea654ceeac9b81706cb"><div class="ttname"><a href="struct____task__cycle__info__t.html#ae2aae11f91e3eea654ceeac9b81706cb">__task_cycle_info_t::lLastTimeStamp</a></div><div class="ttdeci">int64_t lLastTimeStamp</div><div class="ttdoc">previous timestamp</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00163">perf_counter.c:163</a></div></div>
<div class="ttc" id="astructtask__cycle__info__agent__t_html"><div class="ttname"><a href="structtask__cycle__info__agent__t.html">task_cycle_info_agent_t</a></div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8h_source.html#l00337">perf_counter.h:337</a></div></div>
<div class="ttc" id="astructtask__cycle__info__t_html"><div class="ttname"><a href="structtask__cycle__info__t.html">task_cycle_info_t</a></div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8h_source.html#l00326">perf_counter.h:326</a></div></div>
</div><!-- fragment --></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="perf__os__patch__rtx5_8c.html">perf_os_patch_rtx5.c</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.4 </li>
</ul>
</div>
</body>
</html>

View File

@ -0,0 +1,434 @@
<!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=11"/>
<meta name="generator" content="Doxygen 1.9.4"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>perf_counter: perf_os_patch_threadx.c 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 id="projectrow">
<td id="projectalign">
<div id="projectname">perf_counter
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.4 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @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:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(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:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('perf__os__patch__threadx_8c.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="#func-members">Functions</a> </div>
<div class="headertitle"><div class="title">perf_os_patch_threadx.c File Reference</div></div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &quot;tx_api.h&quot;</code><br />
<code>#include &quot;tx_thread.h&quot;</code><br />
<code>#include &quot;<a class="el" href="perf__counter_8h_source.html">perf_counter.h</a>&quot;</code><br />
<code>#include &quot;cmsis_compiler.h&quot;</code><br />
</div>
<p><a href="perf__os__patch__threadx_8c_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 id="nested-classes" 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____task__cycle__info__t.html">__task_cycle_info_t</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 id="define-members" name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:a34b5fd2f760a3a19875464d26bdb71df"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="perf__os__patch__threadx_8c.html#a34b5fd2f760a3a19875464d26bdb71df">WRAP_FUNC</a>(__NAME)&#160;&#160;&#160;__WRAP_FUNC(__NAME)</td></tr>
<tr class="separator:a34b5fd2f760a3a19875464d26bdb71df"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa7290a1d64a5cbe15d52fec89b35f1b9"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="perf__os__patch__threadx_8c.html#aa7290a1d64a5cbe15d52fec89b35f1b9">ORIG_FUNC</a>(__NAME)&#160;&#160;&#160;__ORIG_FUNC(__NAME)</td></tr>
<tr class="separator:aa7290a1d64a5cbe15d52fec89b35f1b9"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:aded00de9fbde9be7f8872f85685b36a4"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="perf__os__patch__threadx_8c.html#aded00de9fbde9be7f8872f85685b36a4">__on_context_switch_in</a> (uint32_t *pwStack)</td></tr>
<tr class="separator:aded00de9fbde9be7f8872f85685b36a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aee2926404ade74811fa658786035f745"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="perf__os__patch__threadx_8c.html#aee2926404ade74811fa658786035f745">__on_context_switch_out</a> (uint32_t *pwStack)</td></tr>
<tr class="separator:aee2926404ade74811fa658786035f745"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a72166391ae25f12a0741f945ba30e422"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="perf__os__patch__threadx_8c.html#a72166391ae25f12a0741f945ba30e422">_tx_execution_thread_enter</a> (void)</td></tr>
<tr class="separator:a72166391ae25f12a0741f945ba30e422"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a85297ebd81eb8d1ed014ea7b55323ac2"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="perf__os__patch__threadx_8c.html#a85297ebd81eb8d1ed014ea7b55323ac2">_tx_execution_thread_exit</a> (void)</td></tr>
<tr class="separator:a85297ebd81eb8d1ed014ea7b55323ac2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad24217ee7fe98a52f4bfd3c1bedbd3b5"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="perf__os__patch__threadx_8c.html#ad24217ee7fe98a52f4bfd3c1bedbd3b5">_tx_execution_isr_exit</a> (void)</td></tr>
<tr class="separator:ad24217ee7fe98a52f4bfd3c1bedbd3b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af4e84b75796479b38375b2097a5a7673"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="perf__os__patch__threadx_8c.html#af4e84b75796479b38375b2097a5a7673">_tx_execution_isr_enter</a> (void)</td></tr>
<tr class="separator:af4e84b75796479b38375b2097a5a7673"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aafe74ae771ab855185531aae1e42657c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structtask__cycle__info__t.html">task_cycle_info_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="perf__os__patch__threadx_8c.html#aafe74ae771ab855185531aae1e42657c">get_rtos_task_cycle_info</a> (void)</td></tr>
<tr class="separator:aafe74ae771ab855185531aae1e42657c"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Macro Definition Documentation</h2>
<a id="aa7290a1d64a5cbe15d52fec89b35f1b9" name="aa7290a1d64a5cbe15d52fec89b35f1b9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa7290a1d64a5cbe15d52fec89b35f1b9">&#9670;&nbsp;</a></span>ORIG_FUNC</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define ORIG_FUNC</td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname">__NAME</td><td>)</td>
<td>&#160;&#160;&#160;__ORIG_FUNC(__NAME)</td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="perf__os__patch__threadx_8c_source.html#l00044">44</a> of file <a class="el" href="perf__os__patch__threadx_8c_source.html">perf_os_patch_threadx.c</a>.</p>
</div>
</div>
<a id="a34b5fd2f760a3a19875464d26bdb71df" name="a34b5fd2f760a3a19875464d26bdb71df"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a34b5fd2f760a3a19875464d26bdb71df">&#9670;&nbsp;</a></span>WRAP_FUNC</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define WRAP_FUNC</td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname">__NAME</td><td>)</td>
<td>&#160;&#160;&#160;__WRAP_FUNC(__NAME)</td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="perf__os__patch__threadx_8c_source.html#l00043">43</a> of file <a class="el" href="perf__os__patch__threadx_8c_source.html">perf_os_patch_threadx.c</a>.</p>
</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a id="aded00de9fbde9be7f8872f85685b36a4" name="aded00de9fbde9be7f8872f85685b36a4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aded00de9fbde9be7f8872f85685b36a4">&#9670;&nbsp;</a></span>__on_context_switch_in()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void __on_context_switch_in </td>
<td>(</td>
<td class="paramtype">uint32_t *&#160;</td>
<td class="paramname"><em>pwStack</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section note"><dt>Note</dt><dd>if you aren't using perf_counter inside KEIL with RTE, please create ! a header file called "Pre_Include_Global.h", copy the following ! content into the header file and and put following option ! to your command line (supposing you are using arm compiler 6): ! -include "Pre_Include_Global.h" </dd></dl>
<p >update all agents</p>
<p class="definition">Definition at line <a class="el" href="perf__counter_8c_source.html#l00646">646</a> of file <a class="el" href="perf__counter_8c_source.html">perf_counter.c</a>.</p>
<div class="fragment"><div class="line"><span class="lineno"> 647</span>{</div>
<div class="line"><span class="lineno"> 648</span> <span class="keyword">struct </span><a class="code hl_struct" href="struct____task__cycle__info__t.html">__task_cycle_info_t</a> *ptRootAgent = (<span class="keyword">struct </span><a class="code hl_struct" href="struct____task__cycle__info__t.html">__task_cycle_info_t</a> *)pwStack;</div>
<div class="line"><span class="lineno"> 649</span> uint64_t dwTimeStamp = <a class="code hl_function" href="perf__counter_8c.html#a32dabfe5b863f89f71735b20a0caf1ea">get_system_ticks</a>();</div>
<div class="line"><span class="lineno"> 650</span> </div>
<div class="line"><span class="lineno"> 651</span> ptRootAgent-&gt;<a class="code hl_variable" href="struct____task__cycle__info__t.html#ae2aae11f91e3eea654ceeac9b81706cb">lLastTimeStamp</a> = dwTimeStamp;</div>
<div class="line"><span class="lineno"> 652</span> ptRootAgent-&gt;<a class="code hl_variable" href="struct____task__cycle__info__t.html#a8af024785267321e4ef544e7f25d80dc">tInfo</a>.<a class="code hl_variable" href="structtask__cycle__info__t.html#a84d3729a2d49dd2e43ef8727fcd6f9b0">hwActiveCount</a>++;</div>
<div class="line"><span class="lineno"> 653</span> </div>
<div class="line"><span class="lineno"> 654</span> <span class="keywordflow">if</span> (<a class="code hl_define" href="perf__counter_8c.html#a5ed2b69d382ff960de71b5aa2e0b0deb">MAGIC_WORD_AGENT_LIST_VALID</a> == ptRootAgent-&gt;<a class="code hl_variable" href="struct____task__cycle__info__t.html#a88c8aad5ae23ae04fa44b2892081561b">wMagicWord</a>) {</div>
<div class="line"><span class="lineno"> 656</span> <a class="code hl_struct" href="structtask__cycle__info__agent__t.html">task_cycle_info_agent_t</a> *ptAgent = ptRootAgent-&gt;<a class="code hl_variable" href="struct____task__cycle__info__t.html#a7d50a2272c4a1b65f927e8c6d1242b33">tList</a>.<a class="code hl_variable" href="structtask__cycle__info__agent__t.html#a3f049d289ce99f316894417016d60ca6">ptNext</a>;</div>
<div class="line"><span class="lineno"> 657</span> <span class="keywordflow">while</span>(NULL != ptAgent) {</div>
<div class="line"><span class="lineno"> 658</span> <span class="keywordflow">if</span> (NULL != ptAgent-&gt;<a class="code hl_variable" href="structtask__cycle__info__agent__t.html#a26adda6b75d3722f450eb169546bd7e7">ptInfo</a>) {</div>
<div class="line"><span class="lineno"> 659</span> <span class="keywordflow">if</span> (ptAgent-&gt;<a class="code hl_variable" href="structtask__cycle__info__agent__t.html#a26adda6b75d3722f450eb169546bd7e7">ptInfo</a>-&gt;<a class="code hl_variable" href="structtask__cycle__info__t.html#a8a4c67264f8440bb83dec68c4312ff09">bEnabled</a>) {</div>
<div class="line"><span class="lineno"> 660</span> ptAgent-&gt;<a class="code hl_variable" href="structtask__cycle__info__agent__t.html#a26adda6b75d3722f450eb169546bd7e7">ptInfo</a>-&gt;<a class="code hl_variable" href="structtask__cycle__info__t.html#a84d3729a2d49dd2e43ef8727fcd6f9b0">hwActiveCount</a>++;</div>
<div class="line"><span class="lineno"> 661</span> }</div>
<div class="line"><span class="lineno"> 662</span> }</div>
<div class="line"><span class="lineno"> 663</span> ptAgent = ptAgent-&gt;<a class="code hl_variable" href="structtask__cycle__info__agent__t.html#a3f049d289ce99f316894417016d60ca6">ptNext</a>;</div>
<div class="line"><span class="lineno"> 664</span> }</div>
<div class="line"><span class="lineno"> 665</span> }</div>
<div class="line"><span class="lineno"> 666</span>}</div>
<div class="ttc" id="aperf__counter_8c_html_a32dabfe5b863f89f71735b20a0caf1ea"><div class="ttname"><a href="perf__counter_8c.html#a32dabfe5b863f89f71735b20a0caf1ea">get_system_ticks</a></div><div class="ttdeci">int64_t get_system_ticks(void)</div><div class="ttdoc">get the elapsed cycles since perf_counter is initialised</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00472">perf_counter.c:472</a></div></div>
<div class="ttc" id="aperf__counter_8c_html_a5ed2b69d382ff960de71b5aa2e0b0deb"><div class="ttname"><a href="perf__counter_8c.html#a5ed2b69d382ff960de71b5aa2e0b0deb">MAGIC_WORD_AGENT_LIST_VALID</a></div><div class="ttdeci">#define MAGIC_WORD_AGENT_LIST_VALID</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00111">perf_counter.c:111</a></div></div>
<div class="ttc" id="astruct____task__cycle__info__t_html"><div class="ttname"><a href="struct____task__cycle__info__t.html">__task_cycle_info_t</a></div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00161">perf_counter.c:161</a></div></div>
<div class="ttc" id="astruct____task__cycle__info__t_html_a7d50a2272c4a1b65f927e8c6d1242b33"><div class="ttname"><a href="struct____task__cycle__info__t.html#a7d50a2272c4a1b65f927e8c6d1242b33">__task_cycle_info_t::tList</a></div><div class="ttdeci">task_cycle_info_agent_t tList</div><div class="ttdoc">the root of the agent list</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00164">perf_counter.c:164</a></div></div>
<div class="ttc" id="astruct____task__cycle__info__t_html_a88c8aad5ae23ae04fa44b2892081561b"><div class="ttname"><a href="struct____task__cycle__info__t.html#a88c8aad5ae23ae04fa44b2892081561b">__task_cycle_info_t::wMagicWord</a></div><div class="ttdeci">uint32_t wMagicWord</div><div class="ttdoc">an magic word for validation</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00165">perf_counter.c:165</a></div></div>
<div class="ttc" id="astruct____task__cycle__info__t_html_a8af024785267321e4ef544e7f25d80dc"><div class="ttname"><a href="struct____task__cycle__info__t.html#a8af024785267321e4ef544e7f25d80dc">__task_cycle_info_t::tInfo</a></div><div class="ttdeci">task_cycle_info_t tInfo</div><div class="ttdoc">cycle information</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00162">perf_counter.c:162</a></div></div>
<div class="ttc" id="astruct____task__cycle__info__t_html_ae2aae11f91e3eea654ceeac9b81706cb"><div class="ttname"><a href="struct____task__cycle__info__t.html#ae2aae11f91e3eea654ceeac9b81706cb">__task_cycle_info_t::lLastTimeStamp</a></div><div class="ttdeci">int64_t lLastTimeStamp</div><div class="ttdoc">previous timestamp</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00163">perf_counter.c:163</a></div></div>
<div class="ttc" id="astructtask__cycle__info__agent__t_html"><div class="ttname"><a href="structtask__cycle__info__agent__t.html">task_cycle_info_agent_t</a></div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8h_source.html#l00337">perf_counter.h:337</a></div></div>
<div class="ttc" id="astructtask__cycle__info__agent__t_html_a26adda6b75d3722f450eb169546bd7e7"><div class="ttname"><a href="structtask__cycle__info__agent__t.html#a26adda6b75d3722f450eb169546bd7e7">task_cycle_info_agent_t::ptInfo</a></div><div class="ttdeci">task_cycle_info_t * ptInfo</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8h_source.html#l00338">perf_counter.h:338</a></div></div>
<div class="ttc" id="astructtask__cycle__info__agent__t_html_a3f049d289ce99f316894417016d60ca6"><div class="ttname"><a href="structtask__cycle__info__agent__t.html#a3f049d289ce99f316894417016d60ca6">task_cycle_info_agent_t::ptNext</a></div><div class="ttdeci">task_cycle_info_agent_t * ptNext</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8h_source.html#l00339">perf_counter.h:339</a></div></div>
<div class="ttc" id="astructtask__cycle__info__t_html_a84d3729a2d49dd2e43ef8727fcd6f9b0"><div class="ttname"><a href="structtask__cycle__info__t.html#a84d3729a2d49dd2e43ef8727fcd6f9b0">task_cycle_info_t::hwActiveCount</a></div><div class="ttdeci">uint16_t hwActiveCount</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8h_source.html#l00330">perf_counter.h:330</a></div></div>
<div class="ttc" id="astructtask__cycle__info__t_html_a8a4c67264f8440bb83dec68c4312ff09"><div class="ttname"><a href="structtask__cycle__info__t.html#a8a4c67264f8440bb83dec68c4312ff09">task_cycle_info_t::bEnabled</a></div><div class="ttdeci">uint16_t bEnabled</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8h_source.html#l00332">perf_counter.h:332</a></div></div>
</div><!-- fragment -->
<p class="reference">References <a class="el" href="perf__counter_8h_source.html#l00332">task_cycle_info_t::bEnabled</a>, <a class="el" href="perf__counter_8c_source.html#l00472">get_system_ticks()</a>, <a class="el" href="perf__counter_8h_source.html#l00330">task_cycle_info_t::hwActiveCount</a>, <a class="el" href="perf__counter_8c_source.html#l00163">__task_cycle_info_t::lLastTimeStamp</a>, <a class="el" href="perf__counter_8c_source.html#l00111">MAGIC_WORD_AGENT_LIST_VALID</a>, <a class="el" href="perf__counter_8h_source.html#l00338">task_cycle_info_agent_t::ptInfo</a>, <a class="el" href="perf__counter_8h_source.html#l00339">task_cycle_info_agent_t::ptNext</a>, <a class="el" href="perf__counter_8c_source.html#l00162">__task_cycle_info_t::tInfo</a>, <a class="el" href="perf__counter_8c_source.html#l00164">__task_cycle_info_t::tList</a>, and <a class="el" href="perf__counter_8c_source.html#l00165">__task_cycle_info_t::wMagicWord</a>.</p>
<p class="reference">Referenced by <a class="el" href="perf__os__patch__threadx_8c_source.html#l00075">_tx_execution_thread_enter()</a>.</p>
</div>
</div>
<a id="aee2926404ade74811fa658786035f745" name="aee2926404ade74811fa658786035f745"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aee2926404ade74811fa658786035f745">&#9670;&nbsp;</a></span>__on_context_switch_out()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void __on_context_switch_out </td>
<td>(</td>
<td class="paramtype">uint32_t *&#160;</td>
<td class="paramname"><em>pwStack</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p >update all agents</p>
<p class="definition">Definition at line <a class="el" href="perf__counter_8c_source.html#l00668">668</a> of file <a class="el" href="perf__counter_8c_source.html">perf_counter.c</a>.</p>
<div class="fragment"><div class="line"><span class="lineno"> 669</span>{</div>
<div class="line"><span class="lineno"> 670</span> <span class="keyword">struct </span><a class="code hl_struct" href="struct____task__cycle__info__t.html">__task_cycle_info_t</a> *ptRootAgent = (<span class="keyword">struct </span><a class="code hl_struct" href="struct____task__cycle__info__t.html">__task_cycle_info_t</a> *)pwStack;</div>
<div class="line"><span class="lineno"> 671</span> int64_t lCycleUsed = <a class="code hl_function" href="perf__counter_8c.html#a32dabfe5b863f89f71735b20a0caf1ea">get_system_ticks</a>() - ptRootAgent-&gt;<a class="code hl_variable" href="struct____task__cycle__info__t.html#ae2aae11f91e3eea654ceeac9b81706cb">lLastTimeStamp</a>;</div>
<div class="line"><span class="lineno"> 672</span> </div>
<div class="line"><span class="lineno"> 673</span> ptRootAgent-&gt;<a class="code hl_variable" href="struct____task__cycle__info__t.html#a8af024785267321e4ef544e7f25d80dc">tInfo</a>.<a class="code hl_variable" href="structtask__cycle__info__t.html#a0250b43cfb57ddf17f7f40c4cc587249">nUsedRecent</a> = lCycleUsed;</div>
<div class="line"><span class="lineno"> 674</span> ptRootAgent-&gt;<a class="code hl_variable" href="struct____task__cycle__info__t.html#a8af024785267321e4ef544e7f25d80dc">tInfo</a>.<a class="code hl_variable" href="structtask__cycle__info__t.html#a19a46cbd05039f568b01e326d65d6b80">lUsedTotal</a> += lCycleUsed;</div>
<div class="line"><span class="lineno"> 675</span> </div>
<div class="line"><span class="lineno"> 676</span> <span class="keywordflow">if</span> (<a class="code hl_define" href="perf__counter_8c.html#a5ed2b69d382ff960de71b5aa2e0b0deb">MAGIC_WORD_AGENT_LIST_VALID</a> == ptRootAgent-&gt;<a class="code hl_variable" href="struct____task__cycle__info__t.html#a88c8aad5ae23ae04fa44b2892081561b">wMagicWord</a>) {</div>
<div class="line"><span class="lineno"> 678</span> <a class="code hl_struct" href="structtask__cycle__info__agent__t.html">task_cycle_info_agent_t</a> *ptAgent = ptRootAgent-&gt;<a class="code hl_variable" href="struct____task__cycle__info__t.html#a7d50a2272c4a1b65f927e8c6d1242b33">tList</a>.<a class="code hl_variable" href="structtask__cycle__info__agent__t.html#a3f049d289ce99f316894417016d60ca6">ptNext</a>;</div>
<div class="line"><span class="lineno"> 679</span> <span class="keywordflow">while</span>(NULL != ptAgent) {</div>
<div class="line"><span class="lineno"> 680</span> <span class="keywordflow">if</span> (NULL != ptAgent-&gt;<a class="code hl_variable" href="structtask__cycle__info__agent__t.html#a26adda6b75d3722f450eb169546bd7e7">ptInfo</a>) {</div>
<div class="line"><span class="lineno"> 681</span> <span class="keywordflow">if</span> (ptAgent-&gt;<a class="code hl_variable" href="structtask__cycle__info__agent__t.html#a26adda6b75d3722f450eb169546bd7e7">ptInfo</a>-&gt;<a class="code hl_variable" href="structtask__cycle__info__t.html#a8a4c67264f8440bb83dec68c4312ff09">bEnabled</a>) {</div>
<div class="line"><span class="lineno"> 682</span> ptAgent-&gt;<a class="code hl_variable" href="structtask__cycle__info__agent__t.html#a26adda6b75d3722f450eb169546bd7e7">ptInfo</a>-&gt;<a class="code hl_variable" href="structtask__cycle__info__t.html#a0250b43cfb57ddf17f7f40c4cc587249">nUsedRecent</a> = lCycleUsed;</div>
<div class="line"><span class="lineno"> 683</span> ptAgent-&gt;<a class="code hl_variable" href="structtask__cycle__info__agent__t.html#a26adda6b75d3722f450eb169546bd7e7">ptInfo</a>-&gt;<a class="code hl_variable" href="structtask__cycle__info__t.html#a19a46cbd05039f568b01e326d65d6b80">lUsedTotal</a> += lCycleUsed;</div>
<div class="line"><span class="lineno"> 684</span> }</div>
<div class="line"><span class="lineno"> 685</span> }</div>
<div class="line"><span class="lineno"> 686</span> ptAgent = ptAgent-&gt;<a class="code hl_variable" href="structtask__cycle__info__agent__t.html#a3f049d289ce99f316894417016d60ca6">ptNext</a>;</div>
<div class="line"><span class="lineno"> 687</span> }</div>
<div class="line"><span class="lineno"> 688</span> }</div>
<div class="line"><span class="lineno"> 689</span>}</div>
<div class="ttc" id="astructtask__cycle__info__t_html_a0250b43cfb57ddf17f7f40c4cc587249"><div class="ttname"><a href="structtask__cycle__info__t.html#a0250b43cfb57ddf17f7f40c4cc587249">task_cycle_info_t::nUsedRecent</a></div><div class="ttdeci">int32_t nUsedRecent</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8h_source.html#l00329">perf_counter.h:329</a></div></div>
<div class="ttc" id="astructtask__cycle__info__t_html_a19a46cbd05039f568b01e326d65d6b80"><div class="ttname"><a href="structtask__cycle__info__t.html#a19a46cbd05039f568b01e326d65d6b80">task_cycle_info_t::lUsedTotal</a></div><div class="ttdeci">int64_t lUsedTotal</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8h_source.html#l00328">perf_counter.h:328</a></div></div>
</div><!-- fragment -->
<p class="reference">References <a class="el" href="perf__counter_8h_source.html#l00332">task_cycle_info_t::bEnabled</a>, <a class="el" href="perf__counter_8c_source.html#l00472">get_system_ticks()</a>, <a class="el" href="perf__counter_8c_source.html#l00163">__task_cycle_info_t::lLastTimeStamp</a>, <a class="el" href="perf__counter_8h_source.html#l00328">task_cycle_info_t::lUsedTotal</a>, <a class="el" href="perf__counter_8c_source.html#l00111">MAGIC_WORD_AGENT_LIST_VALID</a>, <a class="el" href="perf__counter_8h_source.html#l00329">task_cycle_info_t::nUsedRecent</a>, <a class="el" href="perf__counter_8h_source.html#l00338">task_cycle_info_agent_t::ptInfo</a>, <a class="el" href="perf__counter_8h_source.html#l00339">task_cycle_info_agent_t::ptNext</a>, <a class="el" href="perf__counter_8c_source.html#l00162">__task_cycle_info_t::tInfo</a>, <a class="el" href="perf__counter_8c_source.html#l00164">__task_cycle_info_t::tList</a>, and <a class="el" href="perf__counter_8c_source.html#l00165">__task_cycle_info_t::wMagicWord</a>.</p>
<p class="reference">Referenced by <a class="el" href="perf__os__patch__threadx_8c_source.html#l00093">_tx_execution_thread_exit()</a>.</p>
</div>
</div>
<a id="af4e84b75796479b38375b2097a5a7673" name="af4e84b75796479b38375b2097a5a7673"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af4e84b75796479b38375b2097a5a7673">&#9670;&nbsp;</a></span>_tx_execution_isr_enter()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void _tx_execution_isr_enter </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="perf__os__patch__threadx_8c_source.html#l00115">115</a> of file <a class="el" href="perf__os__patch__threadx_8c_source.html">perf_os_patch_threadx.c</a>.</p>
<div class="fragment"><div class="line"><span class="lineno"> 116</span>{</div>
<div class="line"><span class="lineno"> 117</span> </div>
<div class="line"><span class="lineno"> 118</span>}</div>
</div><!-- fragment -->
</div>
</div>
<a id="ad24217ee7fe98a52f4bfd3c1bedbd3b5" name="ad24217ee7fe98a52f4bfd3c1bedbd3b5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad24217ee7fe98a52f4bfd3c1bedbd3b5">&#9670;&nbsp;</a></span>_tx_execution_isr_exit()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void _tx_execution_isr_exit </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="perf__os__patch__threadx_8c_source.html#l00110">110</a> of file <a class="el" href="perf__os__patch__threadx_8c_source.html">perf_os_patch_threadx.c</a>.</p>
<div class="fragment"><div class="line"><span class="lineno"> 111</span>{</div>
<div class="line"><span class="lineno"> 112</span> </div>
<div class="line"><span class="lineno"> 113</span>}</div>
</div><!-- fragment -->
</div>
</div>
<a id="a72166391ae25f12a0741f945ba30e422" name="a72166391ae25f12a0741f945ba30e422"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a72166391ae25f12a0741f945ba30e422">&#9670;&nbsp;</a></span>_tx_execution_thread_enter()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void _tx_execution_thread_enter </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="perf__os__patch__threadx_8c_source.html#l00075">75</a> of file <a class="el" href="perf__os__patch__threadx_8c_source.html">perf_os_patch_threadx.c</a>.</p>
<div class="fragment"><div class="line"><span class="lineno"> 77</span>{</div>
<div class="line"><span class="lineno"> 78</span> TX_THREAD * ptThread = NULL;</div>
<div class="line"><span class="lineno"> 79</span> TX_THREAD_GET_CURRENT(ptThread);</div>
<div class="line"><span class="lineno"> 80</span> </div>
<div class="line"><span class="lineno"> 81</span> <a class="code hl_function" href="perf__os__patch__threadx_8c.html#aded00de9fbde9be7f8872f85685b36a4">__on_context_switch_in</a>(ptThread-&gt;tx_thread_stack_start);</div>
<div class="line"><span class="lineno"> 82</span> </div>
<div class="line"><span class="lineno"> 83</span><span class="preprocessor">#if defined(TX_EXECUTION_PROFILE_ENABLE)</span></div>
<div class="line"><span class="lineno"> 84</span> <span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code hl_define" href="perf__os__patch__threadx_8c.html#aa7290a1d64a5cbe15d52fec89b35f1b9">ORIG_FUNC</a>(<a class="code hl_function" href="perf__os__patch__threadx_8c.html#a72166391ae25f12a0741f945ba30e422">_tx_execution_thread_enter</a>)(void);</div>
<div class="line"><span class="lineno"> 85</span> </div>
<div class="line"><span class="lineno"> 86</span> <a class="code hl_define" href="perf__os__patch__threadx_8c.html#aa7290a1d64a5cbe15d52fec89b35f1b9">ORIG_FUNC</a>(<a class="code hl_function" href="perf__os__patch__threadx_8c.html#a72166391ae25f12a0741f945ba30e422">_tx_execution_thread_enter</a>)();</div>
<div class="line"><span class="lineno"> 87</span><span class="preprocessor">#endif</span></div>
<div class="line"><span class="lineno"> 88</span>}</div>
<div class="ttc" id="aperf__os__patch__threadx_8c_html_a72166391ae25f12a0741f945ba30e422"><div class="ttname"><a href="perf__os__patch__threadx_8c.html#a72166391ae25f12a0741f945ba30e422">_tx_execution_thread_enter</a></div><div class="ttdeci">void _tx_execution_thread_enter(void)</div><div class="ttdef"><b>Definition:</b> <a href="perf__os__patch__threadx_8c_source.html#l00075">perf_os_patch_threadx.c:75</a></div></div>
<div class="ttc" id="aperf__os__patch__threadx_8c_html_aa7290a1d64a5cbe15d52fec89b35f1b9"><div class="ttname"><a href="perf__os__patch__threadx_8c.html#aa7290a1d64a5cbe15d52fec89b35f1b9">ORIG_FUNC</a></div><div class="ttdeci">#define ORIG_FUNC(__NAME)</div><div class="ttdef"><b>Definition:</b> <a href="perf__os__patch__threadx_8c_source.html#l00044">perf_os_patch_threadx.c:44</a></div></div>
<div class="ttc" id="aperf__os__patch__threadx_8c_html_aded00de9fbde9be7f8872f85685b36a4"><div class="ttname"><a href="perf__os__patch__threadx_8c.html#aded00de9fbde9be7f8872f85685b36a4">__on_context_switch_in</a></div><div class="ttdeci">void __on_context_switch_in(uint32_t *pwStack)</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00646">perf_counter.c:646</a></div></div>
</div><!-- fragment -->
<p class="reference">References <a class="el" href="perf__counter_8c_source.html#l00646">__on_context_switch_in()</a>, <a class="el" href="perf__os__patch__threadx_8c_source.html#l00075">_tx_execution_thread_enter()</a>, and <a class="el" href="perf__os__patch__threadx_8c_source.html#l00044">ORIG_FUNC</a>.</p>
<p class="reference">Referenced by <a class="el" href="perf__os__patch__threadx_8c_source.html#l00075">_tx_execution_thread_enter()</a>.</p>
</div>
</div>
<a id="a85297ebd81eb8d1ed014ea7b55323ac2" name="a85297ebd81eb8d1ed014ea7b55323ac2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a85297ebd81eb8d1ed014ea7b55323ac2">&#9670;&nbsp;</a></span>_tx_execution_thread_exit()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void _tx_execution_thread_exit </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="perf__os__patch__threadx_8c_source.html#l00093">93</a> of file <a class="el" href="perf__os__patch__threadx_8c_source.html">perf_os_patch_threadx.c</a>.</p>
<div class="fragment"><div class="line"><span class="lineno"> 95</span>{</div>
<div class="line"><span class="lineno"> 96</span> TX_THREAD * ptThread = NULL;</div>
<div class="line"><span class="lineno"> 97</span> TX_THREAD_GET_CURRENT(ptThread);</div>
<div class="line"><span class="lineno"> 98</span> </div>
<div class="line"><span class="lineno"> 99</span> <span class="keywordflow">if</span> (NULL != ptThread) {</div>
<div class="line"><span class="lineno"> 100</span> <a class="code hl_function" href="perf__os__patch__threadx_8c.html#aee2926404ade74811fa658786035f745">__on_context_switch_out</a>(ptThread-&gt;tx_thread_stack_start);</div>
<div class="line"><span class="lineno"> 101</span> }</div>
<div class="line"><span class="lineno"> 102</span><span class="preprocessor">#if defined(TX_EXECUTION_PROFILE_ENABLE)</span></div>
<div class="line"><span class="lineno"> 103</span> <span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code hl_define" href="perf__os__patch__threadx_8c.html#aa7290a1d64a5cbe15d52fec89b35f1b9">ORIG_FUNC</a>(<a class="code hl_function" href="perf__os__patch__threadx_8c.html#a85297ebd81eb8d1ed014ea7b55323ac2">_tx_execution_thread_exit</a>)(void);</div>
<div class="line"><span class="lineno"> 104</span> </div>
<div class="line"><span class="lineno"> 105</span> <a class="code hl_define" href="perf__os__patch__threadx_8c.html#aa7290a1d64a5cbe15d52fec89b35f1b9">ORIG_FUNC</a>(<a class="code hl_function" href="perf__os__patch__threadx_8c.html#a85297ebd81eb8d1ed014ea7b55323ac2">_tx_execution_thread_exit</a>)();</div>
<div class="line"><span class="lineno"> 106</span><span class="preprocessor">#endif</span></div>
<div class="line"><span class="lineno"> 107</span>}</div>
<div class="ttc" id="aperf__os__patch__threadx_8c_html_a85297ebd81eb8d1ed014ea7b55323ac2"><div class="ttname"><a href="perf__os__patch__threadx_8c.html#a85297ebd81eb8d1ed014ea7b55323ac2">_tx_execution_thread_exit</a></div><div class="ttdeci">void _tx_execution_thread_exit(void)</div><div class="ttdef"><b>Definition:</b> <a href="perf__os__patch__threadx_8c_source.html#l00093">perf_os_patch_threadx.c:93</a></div></div>
<div class="ttc" id="aperf__os__patch__threadx_8c_html_aee2926404ade74811fa658786035f745"><div class="ttname"><a href="perf__os__patch__threadx_8c.html#aee2926404ade74811fa658786035f745">__on_context_switch_out</a></div><div class="ttdeci">void __on_context_switch_out(uint32_t *pwStack)</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00668">perf_counter.c:668</a></div></div>
</div><!-- fragment -->
<p class="reference">References <a class="el" href="perf__counter_8c_source.html#l00668">__on_context_switch_out()</a>, <a class="el" href="perf__os__patch__threadx_8c_source.html#l00093">_tx_execution_thread_exit()</a>, and <a class="el" href="perf__os__patch__threadx_8c_source.html#l00044">ORIG_FUNC</a>.</p>
<p class="reference">Referenced by <a class="el" href="perf__os__patch__threadx_8c_source.html#l00093">_tx_execution_thread_exit()</a>.</p>
</div>
</div>
<a id="aafe74ae771ab855185531aae1e42657c" name="aafe74ae771ab855185531aae1e42657c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aafe74ae771ab855185531aae1e42657c">&#9670;&nbsp;</a></span>get_rtos_task_cycle_info()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structtask__cycle__info__t.html">task_cycle_info_t</a> * get_rtos_task_cycle_info </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="perf__os__patch__threadx_8c_source.html#l00121">121</a> of file <a class="el" href="perf__os__patch__threadx_8c_source.html">perf_os_patch_threadx.c</a>.</p>
<div class="fragment"><div class="line"><span class="lineno"> 122</span>{ </div>
<div class="line"><span class="lineno"> 123</span> TX_THREAD * ptThread = NULL;</div>
<div class="line"><span class="lineno"> 124</span> TX_THREAD_GET_CURRENT(ptThread);</div>
<div class="line"><span class="lineno"> 125</span> </div>
<div class="line"><span class="lineno"> 126</span> <span class="keywordflow">return</span> &amp;(((<span class="keyword">struct </span><a class="code hl_struct" href="struct____task__cycle__info__t.html">__task_cycle_info_t</a> *)ptThread-&gt;tx_thread_stack_start)-&gt;tInfo);</div>
<div class="line"><span class="lineno"> 127</span>}</div>
</div><!-- fragment -->
</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="perf__os__patch__threadx_8c.html">perf_os_patch_threadx.c</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.4 </li>
</ul>
</div>
</body>
</html>

View File

@ -0,0 +1,13 @@
var perf__os__patch__threadx_8c =
[
[ "__task_cycle_info_t", "struct____task__cycle__info__t.html", "struct____task__cycle__info__t" ],
[ "ORIG_FUNC", "perf__os__patch__threadx_8c.html#aa7290a1d64a5cbe15d52fec89b35f1b9", null ],
[ "WRAP_FUNC", "perf__os__patch__threadx_8c.html#a34b5fd2f760a3a19875464d26bdb71df", null ],
[ "__on_context_switch_in", "perf__os__patch__threadx_8c.html#aded00de9fbde9be7f8872f85685b36a4", null ],
[ "__on_context_switch_out", "perf__os__patch__threadx_8c.html#aee2926404ade74811fa658786035f745", null ],
[ "_tx_execution_isr_enter", "perf__os__patch__threadx_8c.html#af4e84b75796479b38375b2097a5a7673", null ],
[ "_tx_execution_isr_exit", "perf__os__patch__threadx_8c.html#ad24217ee7fe98a52f4bfd3c1bedbd3b5", null ],
[ "_tx_execution_thread_enter", "perf__os__patch__threadx_8c.html#a72166391ae25f12a0741f945ba30e422", null ],
[ "_tx_execution_thread_exit", "perf__os__patch__threadx_8c.html#a85297ebd81eb8d1ed014ea7b55323ac2", null ],
[ "get_rtos_task_cycle_info", "perf__os__patch__threadx_8c.html#aafe74ae771ab855185531aae1e42657c", null ]
];

View File

@ -0,0 +1,242 @@
<!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=11"/>
<meta name="generator" content="Doxygen 1.9.4"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>perf_counter: perf_os_patch_threadx.c 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 id="projectrow">
<td id="projectalign">
<div id="projectname">perf_counter
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.4 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @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:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(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:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('perf__os__patch__threadx_8c_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">perf_os_patch_threadx.c</div></div>
</div><!--header-->
<div class="contents">
<a href="perf__os__patch__threadx_8c.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="comment">/****************************************************************************</span></div>
<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span><span class="comment">* Copyright 2022 Gorgon Meducer (Email:embedded_zhuoran@hotmail.com) *</span></div>
<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span><span class="comment">* *</span></div>
<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span><span class="comment">* Licensed under the Apache License, Version 2.0 (the &quot;License&quot;); *</span></div>
<div class="line"><a id="l00005" name="l00005"></a><span class="lineno"> 5</span><span class="comment">* you may not use this file except in compliance with the License. *</span></div>
<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span><span class="comment">* You may obtain a copy of the License at *</span></div>
<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span><span class="comment">* *</span></div>
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span><span class="comment">* http://www.apache.org/licenses/LICENSE-2.0 *</span></div>
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span><span class="comment">* *</span></div>
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span><span class="comment">* Unless required by applicable law or agreed to in writing, software *</span></div>
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span><span class="comment">* distributed under the License is distributed on an &quot;AS IS&quot; BASIS, *</span></div>
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="comment">* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. *</span></div>
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="comment">* See the License for the specific language governing permissions and *</span></div>
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span><span class="comment">* limitations under the License. *</span></div>
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span><span class="comment">* *</span></div>
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span><span class="comment">****************************************************************************/</span></div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span> </div>
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span> </div>
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span><span class="comment">/*============================ INCLUDES ======================================*/</span></div>
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span> </div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span><span class="preprocessor">#include &quot;tx_api.h&quot;</span></div>
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span><span class="preprocessor">#include &quot;tx_thread.h&quot;</span></div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span> </div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span><span class="preprocessor">#include &quot;<a class="code" href="perf__counter_8h.html">perf_counter.h</a>&quot;</span></div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span><span class="preprocessor">#include &quot;cmsis_compiler.h&quot;</span></div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> </div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span><span class="comment">/*============================ MACROS ========================================*/</span></div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> </div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span><span class="preprocessor">#undef __WRAP_FUNC</span></div>
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span><span class="preprocessor">#undef WRAP_FUNC</span></div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span><span class="preprocessor">#if defined(__IS_COMPILER_ARM_COMPILER__) &amp;&amp; __IS_COMPILER_ARM_COMPILER__ </span></div>
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span> </div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span><span class="preprocessor"># define __WRAP_FUNC(__NAME) $Sub$$##__NAME</span></div>
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span><span class="preprocessor"># define __ORIG_FUNC(__NAME) $Super$$##__NAME</span></div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> </div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span><span class="preprocessor">#elif (defined(__IS_COMPILER_LLVM__) &amp;&amp; __IS_COMPILER_LLVM__) \</span></div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span><span class="preprocessor"> || (defined(__IS_COMPILER_GCC__) &amp;&amp; __IS_COMPILER_GCC__)</span></div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> </div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span><span class="preprocessor"># define __WRAP_FUNC(__NAME) __wrap_##__NAME</span></div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span><span class="preprocessor"># define __ORIG_FUNC(__NAME) __real_##__NAME</span></div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> </div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"><a class="line" href="perf__os__patch__threadx_8c.html#a34b5fd2f760a3a19875464d26bdb71df"> 43</a></span><span class="preprocessor">#define WRAP_FUNC(__NAME) __WRAP_FUNC(__NAME)</span></div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"><a class="line" href="perf__os__patch__threadx_8c.html#aa7290a1d64a5cbe15d52fec89b35f1b9"> 44</a></span><span class="preprocessor">#define ORIG_FUNC(__NAME) __ORIG_FUNC(__NAME)</span></div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> </div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> </div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span><span class="preprocessor">#ifndef TX_ENABLE_EXECUTION_CHANGE_NOTIFY</span></div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span><span class="preprocessor">#error In order to use perf_counter:ThreadX-Patch, please define\</span></div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span><span class="preprocessor"> TX_ENABLE_EXECUTION_CHANGE_NOTIFY in the project configuration.\</span></div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span><span class="preprocessor"> If you don&#39;t want to use this patch, please un-select it in RTE\</span></div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span><span class="preprocessor"> or remove this patch from the compilation.</span></div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> </div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> </div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span><span class="comment">/*============================ TYPES =========================================*/</span></div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span><span class="keyword">struct </span><a class="code hl_struct" href="struct____task__cycle__info__t.html">__task_cycle_info_t</a> {</div>
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> <a class="code hl_struct" href="structtask__cycle__info__t.html">task_cycle_info_t</a> <a class="code hl_variable" href="struct____task__cycle__info__t.html#a8af024785267321e4ef544e7f25d80dc">tInfo</a>;</div>
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> int64_t <a class="code hl_variable" href="struct____task__cycle__info__t.html#ae2aae11f91e3eea654ceeac9b81706cb">lLastTimeStamp</a>;</div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> <a class="code hl_struct" href="structtask__cycle__info__agent__t.html">task_cycle_info_agent_t</a> <a class="code hl_variable" href="struct____task__cycle__info__t.html#a7d50a2272c4a1b65f927e8c6d1242b33">tList</a>;</div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> uint32_t <a class="code hl_variable" href="struct____task__cycle__info__t.html#a88c8aad5ae23ae04fa44b2892081561b">wMagicWord</a>;</div>
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span>} ;</div>
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span> </div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span> </div>
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span><span class="comment">/*============================ GLOBAL VARIABLES ==============================*/</span></div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span><span class="comment">/*============================ LOCAL VARIABLES ===============================*/</span></div>
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span><span class="comment">/*============================ PROTOTYPES ====================================*/</span></div>
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span><span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code hl_function" href="perf__os__patch__threadx_8c.html#aded00de9fbde9be7f8872f85685b36a4">__on_context_switch_in</a>(uint32_t *pwStack);</div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span><span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code hl_function" href="perf__os__patch__threadx_8c.html#aee2926404ade74811fa658786035f745">__on_context_switch_out</a>(uint32_t *pwStack);</div>
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span> </div>
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span><span class="comment">/*============================ IMPLEMENTATION ================================*/</span></div>
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span> </div>
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span><span class="preprocessor">#if defined(TX_EXECUTION_PROFILE_ENABLE)</span></div>
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span><span class="keywordtype">void</span> <a class="code hl_define" href="perf__os__patch__threadx_8c.html#a34b5fd2f760a3a19875464d26bdb71df">WRAP_FUNC</a>(<a class="code hl_function" href="perf__os__patch__threadx_8c.html#a72166391ae25f12a0741f945ba30e422">_tx_execution_thread_enter</a>)(void) </div>
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span>#<span class="keywordflow">else</span></div>
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"><a class="line" href="perf__os__patch__threadx_8c.html#a72166391ae25f12a0741f945ba30e422"> 75</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="perf__os__patch__threadx_8c.html#a72166391ae25f12a0741f945ba30e422">_tx_execution_thread_enter</a> (<span class="keywordtype">void</span>) </div>
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span>{</div>
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span> TX_THREAD * ptThread = NULL;</div>
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span> TX_THREAD_GET_CURRENT(ptThread);</div>
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span> </div>
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span> <a class="code hl_function" href="perf__os__patch__threadx_8c.html#aded00de9fbde9be7f8872f85685b36a4">__on_context_switch_in</a>(ptThread-&gt;tx_thread_stack_start);</div>
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span> </div>
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span><span class="preprocessor">#if defined(TX_EXECUTION_PROFILE_ENABLE)</span></div>
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span> <span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code hl_define" href="perf__os__patch__threadx_8c.html#aa7290a1d64a5cbe15d52fec89b35f1b9">ORIG_FUNC</a>(<a class="code hl_function" href="perf__os__patch__threadx_8c.html#a72166391ae25f12a0741f945ba30e422">_tx_execution_thread_enter</a>)(void);</div>
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span> </div>
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span> <a class="code hl_define" href="perf__os__patch__threadx_8c.html#aa7290a1d64a5cbe15d52fec89b35f1b9">ORIG_FUNC</a>(<a class="code hl_function" href="perf__os__patch__threadx_8c.html#a72166391ae25f12a0741f945ba30e422">_tx_execution_thread_enter</a>)();</div>
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span>}</div>
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span> </div>
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span><span class="preprocessor">#if defined(TX_EXECUTION_PROFILE_ENABLE)</span></div>
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span><span class="keywordtype">void</span> <a class="code hl_define" href="perf__os__patch__threadx_8c.html#a34b5fd2f760a3a19875464d26bdb71df">WRAP_FUNC</a>(<a class="code hl_function" href="perf__os__patch__threadx_8c.html#a85297ebd81eb8d1ed014ea7b55323ac2">_tx_execution_thread_exit</a>)(void) </div>
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span>#<span class="keywordflow">else</span></div>
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"><a class="line" href="perf__os__patch__threadx_8c.html#a85297ebd81eb8d1ed014ea7b55323ac2"> 93</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="perf__os__patch__threadx_8c.html#a85297ebd81eb8d1ed014ea7b55323ac2">_tx_execution_thread_exit</a>(<span class="keywordtype">void</span>) </div>
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span>{</div>
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span> TX_THREAD * ptThread = NULL;</div>
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span> TX_THREAD_GET_CURRENT(ptThread);</div>
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span> </div>
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span> <span class="keywordflow">if</span> (NULL != ptThread) {</div>
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span> <a class="code hl_function" href="perf__os__patch__threadx_8c.html#aee2926404ade74811fa658786035f745">__on_context_switch_out</a>(ptThread-&gt;tx_thread_stack_start);</div>
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span> }</div>
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span><span class="preprocessor">#if defined(TX_EXECUTION_PROFILE_ENABLE)</span></div>
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span> <span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code hl_define" href="perf__os__patch__threadx_8c.html#aa7290a1d64a5cbe15d52fec89b35f1b9">ORIG_FUNC</a>(<a class="code hl_function" href="perf__os__patch__threadx_8c.html#a85297ebd81eb8d1ed014ea7b55323ac2">_tx_execution_thread_exit</a>)(void);</div>
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span> </div>
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span> <a class="code hl_define" href="perf__os__patch__threadx_8c.html#aa7290a1d64a5cbe15d52fec89b35f1b9">ORIG_FUNC</a>(<a class="code hl_function" href="perf__os__patch__threadx_8c.html#a85297ebd81eb8d1ed014ea7b55323ac2">_tx_execution_thread_exit</a>)();</div>
<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"> 106</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span>}</div>
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span> </div>
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span><span class="preprocessor">#if !defined(TX_EXECUTION_PROFILE_ENABLE)</span></div>
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"><a class="line" href="perf__os__patch__threadx_8c.html#ad24217ee7fe98a52f4bfd3c1bedbd3b5"> 110</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="perf__os__patch__threadx_8c.html#ad24217ee7fe98a52f4bfd3c1bedbd3b5">_tx_execution_isr_exit</a>(<span class="keywordtype">void</span>) </div>
<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"> 111</span>{</div>
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span> </div>
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span>}</div>
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span> </div>
<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"><a class="line" href="perf__os__patch__threadx_8c.html#af4e84b75796479b38375b2097a5a7673"> 115</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="perf__os__patch__threadx_8c.html#af4e84b75796479b38375b2097a5a7673">_tx_execution_isr_enter</a>(<span class="keywordtype">void</span>) </div>
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"> 116</span>{</div>
<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"> 117</span> </div>
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</span>}</div>
<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"> 119</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00120" name="l00120"></a><span class="lineno"> 120</span> </div>
<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"><a class="line" href="perf__os__patch__threadx_8c.html#aafe74ae771ab855185531aae1e42657c"> 121</a></span><a class="code hl_struct" href="structtask__cycle__info__t.html">task_cycle_info_t</a> * <a class="code hl_function" href="perf__os__patch__threadx_8c.html#aafe74ae771ab855185531aae1e42657c">get_rtos_task_cycle_info</a>(<span class="keywordtype">void</span>)</div>
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span>{ </div>
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span> TX_THREAD * ptThread = NULL;</div>
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span> TX_THREAD_GET_CURRENT(ptThread);</div>
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span> </div>
<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span> <span class="keywordflow">return</span> &amp;(((<span class="keyword">struct </span><a class="code hl_struct" href="struct____task__cycle__info__t.html">__task_cycle_info_t</a> *)ptThread-&gt;tx_thread_stack_start)-&gt;tInfo);</div>
<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"> 127</span>}</div>
<div class="ttc" id="aperf__counter_8h_html"><div class="ttname"><a href="perf__counter_8h.html">perf_counter.h</a></div></div>
<div class="ttc" id="aperf__os__patch__threadx_8c_html_a34b5fd2f760a3a19875464d26bdb71df"><div class="ttname"><a href="perf__os__patch__threadx_8c.html#a34b5fd2f760a3a19875464d26bdb71df">WRAP_FUNC</a></div><div class="ttdeci">#define WRAP_FUNC(__NAME)</div><div class="ttdef"><b>Definition:</b> <a href="perf__os__patch__threadx_8c_source.html#l00043">perf_os_patch_threadx.c:43</a></div></div>
<div class="ttc" id="aperf__os__patch__threadx_8c_html_a72166391ae25f12a0741f945ba30e422"><div class="ttname"><a href="perf__os__patch__threadx_8c.html#a72166391ae25f12a0741f945ba30e422">_tx_execution_thread_enter</a></div><div class="ttdeci">void _tx_execution_thread_enter(void)</div><div class="ttdef"><b>Definition:</b> <a href="perf__os__patch__threadx_8c_source.html#l00075">perf_os_patch_threadx.c:75</a></div></div>
<div class="ttc" id="aperf__os__patch__threadx_8c_html_a85297ebd81eb8d1ed014ea7b55323ac2"><div class="ttname"><a href="perf__os__patch__threadx_8c.html#a85297ebd81eb8d1ed014ea7b55323ac2">_tx_execution_thread_exit</a></div><div class="ttdeci">void _tx_execution_thread_exit(void)</div><div class="ttdef"><b>Definition:</b> <a href="perf__os__patch__threadx_8c_source.html#l00093">perf_os_patch_threadx.c:93</a></div></div>
<div class="ttc" id="aperf__os__patch__threadx_8c_html_aa7290a1d64a5cbe15d52fec89b35f1b9"><div class="ttname"><a href="perf__os__patch__threadx_8c.html#aa7290a1d64a5cbe15d52fec89b35f1b9">ORIG_FUNC</a></div><div class="ttdeci">#define ORIG_FUNC(__NAME)</div><div class="ttdef"><b>Definition:</b> <a href="perf__os__patch__threadx_8c_source.html#l00044">perf_os_patch_threadx.c:44</a></div></div>
<div class="ttc" id="aperf__os__patch__threadx_8c_html_aafe74ae771ab855185531aae1e42657c"><div class="ttname"><a href="perf__os__patch__threadx_8c.html#aafe74ae771ab855185531aae1e42657c">get_rtos_task_cycle_info</a></div><div class="ttdeci">task_cycle_info_t * get_rtos_task_cycle_info(void)</div><div class="ttdef"><b>Definition:</b> <a href="perf__os__patch__threadx_8c_source.html#l00121">perf_os_patch_threadx.c:121</a></div></div>
<div class="ttc" id="aperf__os__patch__threadx_8c_html_ad24217ee7fe98a52f4bfd3c1bedbd3b5"><div class="ttname"><a href="perf__os__patch__threadx_8c.html#ad24217ee7fe98a52f4bfd3c1bedbd3b5">_tx_execution_isr_exit</a></div><div class="ttdeci">void _tx_execution_isr_exit(void)</div><div class="ttdef"><b>Definition:</b> <a href="perf__os__patch__threadx_8c_source.html#l00110">perf_os_patch_threadx.c:110</a></div></div>
<div class="ttc" id="aperf__os__patch__threadx_8c_html_aded00de9fbde9be7f8872f85685b36a4"><div class="ttname"><a href="perf__os__patch__threadx_8c.html#aded00de9fbde9be7f8872f85685b36a4">__on_context_switch_in</a></div><div class="ttdeci">void __on_context_switch_in(uint32_t *pwStack)</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00646">perf_counter.c:646</a></div></div>
<div class="ttc" id="aperf__os__patch__threadx_8c_html_aee2926404ade74811fa658786035f745"><div class="ttname"><a href="perf__os__patch__threadx_8c.html#aee2926404ade74811fa658786035f745">__on_context_switch_out</a></div><div class="ttdeci">void __on_context_switch_out(uint32_t *pwStack)</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00668">perf_counter.c:668</a></div></div>
<div class="ttc" id="aperf__os__patch__threadx_8c_html_af4e84b75796479b38375b2097a5a7673"><div class="ttname"><a href="perf__os__patch__threadx_8c.html#af4e84b75796479b38375b2097a5a7673">_tx_execution_isr_enter</a></div><div class="ttdeci">void _tx_execution_isr_enter(void)</div><div class="ttdef"><b>Definition:</b> <a href="perf__os__patch__threadx_8c_source.html#l00115">perf_os_patch_threadx.c:115</a></div></div>
<div class="ttc" id="astruct____task__cycle__info__t_html"><div class="ttname"><a href="struct____task__cycle__info__t.html">__task_cycle_info_t</a></div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00161">perf_counter.c:161</a></div></div>
<div class="ttc" id="astruct____task__cycle__info__t_html_a7d50a2272c4a1b65f927e8c6d1242b33"><div class="ttname"><a href="struct____task__cycle__info__t.html#a7d50a2272c4a1b65f927e8c6d1242b33">__task_cycle_info_t::tList</a></div><div class="ttdeci">task_cycle_info_agent_t tList</div><div class="ttdoc">the root of the agent list</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00164">perf_counter.c:164</a></div></div>
<div class="ttc" id="astruct____task__cycle__info__t_html_a88c8aad5ae23ae04fa44b2892081561b"><div class="ttname"><a href="struct____task__cycle__info__t.html#a88c8aad5ae23ae04fa44b2892081561b">__task_cycle_info_t::wMagicWord</a></div><div class="ttdeci">uint32_t wMagicWord</div><div class="ttdoc">an magic word for validation</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00165">perf_counter.c:165</a></div></div>
<div class="ttc" id="astruct____task__cycle__info__t_html_a8af024785267321e4ef544e7f25d80dc"><div class="ttname"><a href="struct____task__cycle__info__t.html#a8af024785267321e4ef544e7f25d80dc">__task_cycle_info_t::tInfo</a></div><div class="ttdeci">task_cycle_info_t tInfo</div><div class="ttdoc">cycle information</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00162">perf_counter.c:162</a></div></div>
<div class="ttc" id="astruct____task__cycle__info__t_html_ae2aae11f91e3eea654ceeac9b81706cb"><div class="ttname"><a href="struct____task__cycle__info__t.html#ae2aae11f91e3eea654ceeac9b81706cb">__task_cycle_info_t::lLastTimeStamp</a></div><div class="ttdeci">int64_t lLastTimeStamp</div><div class="ttdoc">previous timestamp</div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8c_source.html#l00163">perf_counter.c:163</a></div></div>
<div class="ttc" id="astructtask__cycle__info__agent__t_html"><div class="ttname"><a href="structtask__cycle__info__agent__t.html">task_cycle_info_agent_t</a></div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8h_source.html#l00337">perf_counter.h:337</a></div></div>
<div class="ttc" id="astructtask__cycle__info__t_html"><div class="ttname"><a href="structtask__cycle__info__t.html">task_cycle_info_t</a></div><div class="ttdef"><b>Definition:</b> <a href="perf__counter_8h_source.html#l00326">perf_counter.h:326</a></div></div>
</div><!-- fragment --></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="perf__os__patch__threadx_8c.html">perf_os_patch_threadx.c</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.4 </li>
</ul>
</div>
</body>
</html>

150
documents/html/resize.js Normal file
View File

@ -0,0 +1,150 @@
/*
@licstart The following is the entire license notice for the JavaScript code in this file.
The MIT License (MIT)
Copyright (C) 1997-2020 by Dimitri van Heesch
Permission is hereby granted, free of charge, to any person obtaining a copy of this software
and associated documentation files (the "Software"), to deal in the Software without restriction,
including without limitation the rights to use, copy, modify, merge, publish, distribute,
sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or
substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@licend The above is the entire license notice for the JavaScript code in this file
*/
function initResizable()
{
var cookie_namespace = 'doxygen';
var sidenav,navtree,content,header,collapsed,collapsedWidth=0,barWidth=6,desktop_vp=768,titleHeight;
function readCookie(cookie)
{
var myCookie = cookie_namespace+"_"+cookie+"=";
if (document.cookie) {
var index = document.cookie.indexOf(myCookie);
if (index != -1) {
var valStart = index + myCookie.length;
var valEnd = document.cookie.indexOf(";", valStart);
if (valEnd == -1) {
valEnd = document.cookie.length;
}
var val = document.cookie.substring(valStart, valEnd);
return val;
}
}
return 0;
}
function writeCookie(cookie, val, expiration)
{
if (val==undefined) return;
if (expiration == null) {
var date = new Date();
date.setTime(date.getTime()+(10*365*24*60*60*1000)); // default expiration is one week
expiration = date.toGMTString();
}
document.cookie = cookie_namespace + "_" + cookie + "=" + val + "; SameSite=Lax; expires=" + expiration+"; path=/";
}
function resizeWidth()
{
var windowWidth = $(window).width() + "px";
var sidenavWidth = $(sidenav).outerWidth();
content.css({marginLeft:parseInt(sidenavWidth)+"px"});
writeCookie('width',sidenavWidth-barWidth, null);
}
function restoreWidth(navWidth)
{
var windowWidth = $(window).width() + "px";
content.css({marginLeft:parseInt(navWidth)+barWidth+"px"});
sidenav.css({width:navWidth + "px"});
}
function resizeHeight()
{
var headerHeight = header.outerHeight();
var footerHeight = footer.outerHeight();
var windowHeight = $(window).height();
var contentHeight,navtreeHeight,sideNavHeight;
if (typeof page_layout==='undefined' || page_layout==0) { /* DISABLE_INDEX=NO */
contentHeight = windowHeight - headerHeight - footerHeight;
navtreeHeight = contentHeight;
sideNavHeight = contentHeight;
} else if (page_layout==1) { /* DISABLE_INDEX=YES */
contentHeight = windowHeight - footerHeight;
navtreeHeight = windowHeight - headerHeight;
sideNavHeight = windowHeight;
}
content.css({height:contentHeight + "px"});
navtree.css({height:navtreeHeight + "px"});
sidenav.css({height:sideNavHeight + "px"});
var width=$(window).width();
if (width!=collapsedWidth) {
if (width<desktop_vp && collapsedWidth>=desktop_vp) {
if (!collapsed) {
collapseExpand();
}
} else if (width>desktop_vp && collapsedWidth<desktop_vp) {
if (collapsed) {
collapseExpand();
}
}
collapsedWidth=width;
}
if (location.hash.slice(1)) {
(document.getElementById(location.hash.slice(1))||document.body).scrollIntoView();
}
}
function collapseExpand()
{
if (sidenav.width()>0) {
restoreWidth(0);
collapsed=true;
}
else {
var width = readCookie('width');
if (width>200 && width<$(window).width()) { restoreWidth(width); } else { restoreWidth(200); }
collapsed=false;
}
}
header = $("#top");
sidenav = $("#side-nav");
content = $("#doc-content");
navtree = $("#nav-tree");
footer = $("#nav-path");
$(".side-nav-resizable").resizable({resize: function(e, ui) { resizeWidth(); } });
$(sidenav).resizable({ minWidth: 0 });
$(window).resize(function() { resizeHeight(); });
var device = navigator.userAgent.toLowerCase();
var touch_device = device.match(/(iphone|ipod|ipad|android)/);
if (touch_device) { /* wider split bar for touch only devices */
$(sidenav).css({ paddingRight:'20px' });
$('.ui-resizable-e').css({ width:'20px' });
$('#nav-sync').css({ right:'34px' });
barWidth=20;
}
var width = readCookie('width');
if (width) { restoreWidth(width); } else { resizeWidth(); }
resizeHeight();
var url = location.href;
var i=url.indexOf("#");
if (i>=0) window.location.hash=url.substr(i);
var _preventDefault = function(evt) { evt.preventDefault(); };
$("#splitbar").bind("dragstart", _preventDefault).bind("selectstart", _preventDefault);
$(".ui-resizable-handle").dblclick(collapseExpand);
$(window).on('load',resizeHeight);
}
/* @license-end */

View File

@ -0,0 +1,37 @@
<!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><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta name="generator" content="Doxygen 1.9.4"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="all_0.js"></script>
<script type="text/javascript" src="search.js"></script>
</head>
<body class="SRPage">
<div id="SRIndex">
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
createResults();
/* @license-end */
</script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
var searchResults = new SearchResults("searchResults");
searchResults.Search();
window.addEventListener("message", function(event) {
if (event.data == "take_focus") {
var elem = searchResults.NavNext(0);
if (elem) elem.focus();
}
});
/* @license-end */
</script>
</div>
</body>
</html>

View File

@ -0,0 +1,50 @@
var searchData=
[
['_5f_5fconnect2_0',['__CONNECT2',['../perf__counter_8h.html#ae490fc8ce9ed8d7853ab956e76ebf1b8',1,'perf_counter.h']]],
['_5f_5fconnect3_1',['__CONNECT3',['../perf__counter_8h.html#af40f44eb68f59549a3e5d6c91429c3c9',1,'perf_counter.h']]],
['_5f_5fconnect4_2',['__CONNECT4',['../perf__counter_8h.html#ade59615465df27344e32b05c3629ef03',1,'perf_counter.h']]],
['_5f_5fconnect5_3',['__CONNECT5',['../perf__counter_8h.html#ab6fd44a39b7fdd5c8c3b7309992e1a00',1,'perf_counter.h']]],
['_5f_5fconnect6_4',['__CONNECT6',['../perf__counter_8h.html#ae2d17b539ab98e8b0435fce5d8aff2b4',1,'perf_counter.h']]],
['_5f_5fconnect7_5',['__CONNECT7',['../perf__counter_8h.html#a2b3247f9df3a6702c90468722994bf49',1,'perf_counter.h']]],
['_5f_5fconnect8_6',['__CONNECT8',['../perf__counter_8h.html#a798b1c8c5d91763e99d63fc7c326dead',1,'perf_counter.h']]],
['_5f_5fconnect9_7',['__CONNECT9',['../perf__counter_8h.html#a78dee228d830879c65edae8392fbf159',1,'perf_counter.h']]],
['_5f_5fcycleof_5f_5f_8',['__cycleof__',['../perf__counter_8h.html#a147d3eb2e96136dc1758aa8d3e2a089c',1,'perf_counter.h']]],
['_5f_5ffreertos_5fevr_5fon_5ftask_5fswitched_5fin_9',['__freertos_evr_on_task_switched_in',['../perf__os__patch__freertos_8c.html#a411ff611b06926d6bcde27c0c621895c',1,'perf_os_patch_freertos.c']]],
['_5f_5ffreertos_5fevr_5fon_5ftask_5fswitched_5fout_10',['__freertos_evr_on_task_switched_out',['../perf__os__patch__freertos_8c.html#a5d7733a0a2eec8eb3c6782ddfd6bf44c',1,'perf_os_patch_freertos.c']]],
['_5f_5fi_11',['__I',['../perf__counter_8c.html#af63697ed9952cc71e1225efe205f6cd3',1,'perf_counter.c']]],
['_5f_5fim_12',['__IM',['../perf__counter_8c.html#a4cc1649793116d7c2d8afce7a4ffce43',1,'perf_counter.c']]],
['_5f_5fimplement_5fperf_5fcounter_13',['__IMPLEMENT_PERF_COUNTER',['../perf__counter_8c.html#afedb615b5c48d33ad8523f92078bf66c',1,'perf_counter.c']]],
['_5f_5fio_14',['__IO',['../perf__counter_8c.html#aec43007d9998a0a0e01faede4133d6be',1,'perf_counter.c']]],
['_5f_5fiom_15',['__IOM',['../perf__counter_8c.html#ab6caba5853a60a17e8e04499b52bf691',1,'perf_counter.c']]],
['_5f_5firq_5fsafe_16',['__IRQ_SAFE',['../perf__counter_8h.html#a966a3eb20671a2a8c44d63d459f5472e',1,'perf_counter.h']]],
['_5f_5fmacro_5fexpanding_17',['__MACRO_EXPANDING',['../perf__counter_8h.html#a39273cdd59b6f17525f429d61f242a73',1,'perf_counter.h']]],
['_5f_5fo_18',['__O',['../perf__counter_8c.html#a7e25d9380f9ef903923964322e71f2f6',1,'perf_counter.c']]],
['_5f_5fom_19',['__OM',['../perf__counter_8c.html#a0ea2009ed8fd9ef35b48708280fdb758',1,'perf_counter.c']]],
['_5f_5fon_5fcontext_5fswitch_20',['__on_context_switch',['../perf__os__patch__rtx5_8c.html#a3a82490931e58666b859d4f6d08cfb5d',1,'perf_os_patch_rtx5.c']]],
['_5f_5fon_5fcontext_5fswitch_5fin_21',['__on_context_switch_in',['../perf__os__patch__threadx_8c.html#aded00de9fbde9be7f8872f85685b36a4',1,'__on_context_switch_in(uint32_t *pwStack):&#160;perf_counter.c'],['../perf__os__patch__rtx5_8c.html#aded00de9fbde9be7f8872f85685b36a4',1,'__on_context_switch_in(uint32_t *pwStack):&#160;perf_counter.c'],['../perf__counter_8c.html#aded00de9fbde9be7f8872f85685b36a4',1,'__on_context_switch_in(uint32_t *pwStack):&#160;perf_counter.c'],['../perf__os__patch__freertos_8c.html#aded00de9fbde9be7f8872f85685b36a4',1,'__on_context_switch_in(uint32_t *pwStack):&#160;perf_counter.c'],['../perf__os__patch__rt__thread_8c.html#aded00de9fbde9be7f8872f85685b36a4',1,'__on_context_switch_in(uint32_t *pwStack):&#160;perf_counter.c']]],
['_5f_5fon_5fcontext_5fswitch_5fout_22',['__on_context_switch_out',['../perf__counter_8c.html#aee2926404ade74811fa658786035f745',1,'__on_context_switch_out(uint32_t *pwStack):&#160;perf_counter.c'],['../perf__os__patch__freertos_8c.html#aee2926404ade74811fa658786035f745',1,'__on_context_switch_out(uint32_t *pwStack):&#160;perf_counter.c'],['../perf__os__patch__rt__thread_8c.html#aee2926404ade74811fa658786035f745',1,'__on_context_switch_out(uint32_t *pwStack):&#160;perf_counter.c'],['../perf__os__patch__rtx5_8c.html#aee2926404ade74811fa658786035f745',1,'__on_context_switch_out(uint32_t *pwStack):&#160;perf_counter.c'],['../perf__os__patch__threadx_8c.html#aee2926404ade74811fa658786035f745',1,'__on_context_switch_out(uint32_t *pwStack):&#160;perf_counter.c']]],
['_5f_5fpad0_5f_5f_23',['__pad0__',['../structtask__cycle__info__t.html#a77132c2c26a75f5b8751b235cda23828',1,'task_cycle_info_t']]],
['_5f_5fper_5fcounter_5fver_5f_5f_24',['__PER_COUNTER_VER__',['../perf__counter_8h.html#a41124119fd6c23775692729a2ec26d71',1,'perf_counter.h']]],
['_5f_5fperf_5fcounter_5fver_5fmajor_5f_5f_25',['__PERF_COUNTER_VER_MAJOR__',['../perf__counter_8h.html#a2e49e3ac701e3e087719d74f2a4ef840',1,'perf_counter.h']]],
['_5f_5fperf_5fcounter_5fver_5fminor_5f_5f_26',['__PERF_COUNTER_VER_MINOR__',['../perf__counter_8h.html#adb870e7ae89ad2c5c7aeb70ba16eeaf6',1,'perf_counter.h']]],
['_5f_5fperf_5fcounter_5fver_5frevise_5f_5f_27',['__PERF_COUNTER_VER_REVISE__',['../perf__counter_8h.html#a62d05224187a7f224d1803a64951cf3f',1,'perf_counter.h']]],
['_5f_5fperf_5fcounter_5fver_5fstr_5f_5f_28',['__PERF_COUNTER_VER_STR__',['../perf__counter_8h.html#afc04dcb2bf83faaf5b14559d632c6b19',1,'perf_counter.h']]],
['_5f_5fperf_5fos_5fpatch_5finit_29',['__perf_os_patch_init',['../perf__counter_8c.html#a4781d1de67a0b4fd21656377d0a2a0bc',1,'__perf_os_patch_init(void):&#160;perf_counter.c'],['../perf__os__patch__rt__thread_8c.html#a6d5a15a297eb8d32f4d96b163bce36d9',1,'__perf_os_patch_init(void):&#160;perf_os_patch_rt_thread.c']]],
['_5f_5fplooc_5fva_5fnum_5fargs_30',['__PLOOC_VA_NUM_ARGS',['../perf__counter_8h.html#a9d1c7b8467fca7e2fcf0426ef294a171',1,'perf_counter.h']]],
['_5f_5fplooc_5fva_5fnum_5fargs_5fimpl_31',['__PLOOC_VA_NUM_ARGS_IMPL',['../perf__counter_8h.html#adb244281cf7a9410d7dc12823e105d02',1,'perf_counter.h']]],
['_5f_5frt_5fthread_5fscheduler_5fhook_32',['__rt_thread_scheduler_hook',['../perf__os__patch__rt__thread_8c.html#abaf903de1b645f8ecdba87f4366322ec',1,'perf_os_patch_rt_thread.c']]],
['_5f_5fstart_5ftask_5fcycle_5fcounter_33',['__start_task_cycle_counter',['../perf__counter_8c.html#ad17c3ab8fb4c68ebc676562ab00770a1',1,'perf_counter.c']]],
['_5f_5fstop_5ftask_5fcycle_5fcounter_34',['__stop_task_cycle_counter',['../perf__counter_8c.html#a81a5dabf3ca19922587390de6c9f0ff5',1,'perf_counter.c']]],
['_5f_5fsuper_5floop_5fmonitor_5f_5f_35',['__super_loop_monitor__',['../perf__counter_8h.html#acfa3bf174dd68eeca5c7e4a16cdc24ea',1,'perf_counter.h']]],
['_5f_5ftask_5fcycle_5finfo_5ft_36',['__task_cycle_info_t',['../struct____task__cycle__info__t.html',1,'']]],
['_5f_5fusing1_37',['__using1',['../perf__counter_8h.html#ac489b777985cc6133a3658d95dd424e1',1,'perf_counter.h']]],
['_5f_5fusing2_38',['__using2',['../perf__counter_8h.html#af2456eddcc03ba108e670a583367342e',1,'perf_counter.h']]],
['_5f_5fusing3_39',['__using3',['../perf__counter_8h.html#a3447ab4da15b7a4e81830839202ee0be',1,'perf_counter.h']]],
['_5f_5fusing4_40',['__using4',['../perf__counter_8h.html#a1a10811d7e12a6be9be6ccdf1ef824e8',1,'perf_counter.h']]],
['_5f_5fwith2_41',['__with2',['../perf__counter_8h.html#a7e7af9eb2708d17ce5ec5ea01cb914f1',1,'perf_counter.h']]],
['_5f_5fwith3_42',['__with3',['../perf__counter_8h.html#aafef7ac0d7697d31814ff152d9eae0cc',1,'perf_counter.h']]],
['_5ftx_5fexecution_5fisr_5fenter_43',['_tx_execution_isr_enter',['../perf__os__patch__threadx_8c.html#af4e84b75796479b38375b2097a5a7673',1,'perf_os_patch_threadx.c']]],
['_5ftx_5fexecution_5fisr_5fexit_44',['_tx_execution_isr_exit',['../perf__os__patch__threadx_8c.html#ad24217ee7fe98a52f4bfd3c1bedbd3b5',1,'perf_os_patch_threadx.c']]],
['_5ftx_5fexecution_5fthread_5fenter_45',['_tx_execution_thread_enter',['../perf__os__patch__threadx_8c.html#a72166391ae25f12a0741f945ba30e422',1,'perf_os_patch_threadx.c']]],
['_5ftx_5fexecution_5fthread_5fexit_46',['_tx_execution_thread_exit',['../perf__os__patch__threadx_8c.html#a85297ebd81eb8d1ed014ea7b55323ac2',1,'perf_os_patch_threadx.c']]]
];

View File

@ -0,0 +1,37 @@
<!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><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta name="generator" content="Doxygen 1.9.4"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="all_1.js"></script>
<script type="text/javascript" src="search.js"></script>
</head>
<body class="SRPage">
<div id="SRIndex">
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
createResults();
/* @license-end */
</script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
var searchResults = new SearchResults("searchResults");
searchResults.Search();
window.addEventListener("message", function(event) {
if (event.data == "take_focus") {
var elem = searchResults.NavNext(0);
if (elem) elem.focus();
}
});
/* @license-end */
</script>
</div>
</body>
</html>

View File

@ -0,0 +1,7 @@
var searchData=
[
['adr_0',['ADR',['../struct_s_c_b___type.html#a72572af6d5dece4947453aeabd52575f',1,'SCB_Type']]],
['afsr_1',['AFSR',['../struct_s_c_b___type.html#a3ef0057e48fdef798f2ee12125a80d9f',1,'SCB_Type']]],
['aircr_2',['AIRCR',['../struct_s_c_b___type.html#a9b6ccd9c0c0865f8facad77ea37240b0',1,'SCB_Type']]],
['alt_5fconnect2_3',['ALT_CONNECT2',['../perf__counter_8h.html#ac8f325950e08c3662d3c94233cf40e13',1,'perf_counter.h']]]
];

View File

@ -0,0 +1,37 @@
<!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><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta name="generator" content="Doxygen 1.9.4"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="all_10.js"></script>
<script type="text/javascript" src="search.js"></script>
</head>
<body class="SRPage">
<div id="SRIndex">
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
createResults();
/* @license-end */
</script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
var searchResults = new SearchResults("searchResults");
searchResults.Search();
window.addEventListener("message", function(event) {
if (event.data == "take_focus") {
var elem = searchResults.NavNext(0);
if (elem) elem.focus();
}
});
/* @license-end */
</script>
</div>
</body>
</html>

View File

@ -0,0 +1,43 @@
var searchData=
[
['safe_5fatom_5fcode_0',['safe_atom_code',['../perf__counter_8h.html#a1616b4eef4bbd94969a9010c4114b488',1,'perf_counter.h']]],
['safe_5fname_1',['SAFE_NAME',['../perf__counter_8h.html#af2d5b85528ace8bbe8954d1ece9a3c51',1,'perf_counter.h']]],
['scb_2',['SCB',['../perf__counter_8c.html#aaaf6477c2bde2f00f99e3c2fd1060b01',1,'perf_counter.c']]],
['scb_5fbase_3',['SCB_BASE',['../perf__counter_8c.html#ad55a7ddb8d4b2398b0c1cfec76c0d9fd',1,'perf_counter.c']]],
['scb_5ficsr_5fpendstclr_5fmsk_4',['SCB_ICSR_PENDSTCLR_Msk',['../perf__counter_8c.html#ab241827d2a793269d8cd99b9b28c2157',1,'perf_counter.c']]],
['scb_5ficsr_5fpendstclr_5fpos_5',['SCB_ICSR_PENDSTCLR_Pos',['../perf__counter_8c.html#adbe25e4b333ece1341beb1a740168fdc',1,'perf_counter.c']]],
['scb_5ficsr_5fpendstset_5fmsk_6',['SCB_ICSR_PENDSTSET_Msk',['../perf__counter_8c.html#a7325b61ea0ec323ef2d5c893b112e546',1,'perf_counter.c']]],
['scb_5ficsr_5fpendstset_5fpos_7',['SCB_ICSR_PENDSTSET_Pos',['../perf__counter_8c.html#a9dbb3358c6167c9c3f85661b90fb2794',1,'perf_counter.c']]],
['scb_5ftype_8',['SCB_Type',['../struct_s_c_b___type.html',1,'']]],
['scr_9',['SCR',['../struct_s_c_b___type.html#acac65f229cb3fcb5369a0a9e0393b8c0',1,'SCB_Type']]],
['scs_5fbase_10',['SCS_BASE',['../perf__counter_8c.html#a3c14ed93192c8d9143322bbf77ebf770',1,'perf_counter.c']]],
['shcsr_11',['SHCSR',['../struct_s_c_b___type.html#a44ad5c292dbd77e72f310902375a8a06',1,'SCB_Type']]],
['shp_12',['SHP',['../struct_s_c_b___type.html#a293826a2c44f754e80af03d62f62f9e6',1,'SCB_Type']]],
['start_5fcycle_5fcounter_13',['start_cycle_counter',['../perf__counter_8c.html#af33fd92801223d4befa49c610332ddd4',1,'start_cycle_counter(void):&#160;perf_counter.c'],['../perf__counter_8h.html#af33fd92801223d4befa49c610332ddd4',1,'start_cycle_counter(void):&#160;perf_counter.c']]],
['start_5ftask_5fcycle_5fcounter_14',['start_task_cycle_counter',['../perf__counter_8h.html#ab84fa299db0fc4c0a897eb0a3aab6233',1,'perf_counter.h']]],
['stop_5fcycle_5fcounter_15',['stop_cycle_counter',['../perf__counter_8c.html#a014af75d3945894c4740773e8a28d723',1,'stop_cycle_counter(void):&#160;perf_counter.c'],['../perf__counter_8h.html#a014af75d3945894c4740773e8a28d723',1,'stop_cycle_counter(void):&#160;perf_counter.c']]],
['stop_5ftask_5fcycle_5fcounter_16',['stop_task_cycle_counter',['../perf__counter_8h.html#ad9e3470ff82262ac6daca041607c31da',1,'perf_counter.h']]],
['systemcoreclock_17',['SystemCoreClock',['../perf__counter_8c.html#aa3cd3e43291e81e795d642b79b6088e6',1,'perf_counter.c']]],
['systick_18',['SysTick',['../perf__counter_8c.html#acd96c53beeaff8f603fcda425eb295de',1,'perf_counter.c']]],
['systick_5fbase_19',['SysTick_BASE',['../perf__counter_8c.html#a58effaac0b93006b756d33209e814646',1,'perf_counter.c']]],
['systick_5fcalib_5fnoref_5fmsk_20',['SysTick_CALIB_NOREF_Msk',['../perf__counter_8c.html#a3af0d891fdd99bcc8d8912d37830edb6',1,'perf_counter.c']]],
['systick_5fcalib_5fnoref_5fpos_21',['SysTick_CALIB_NOREF_Pos',['../perf__counter_8c.html#a534dbe414e7a46a6ce4c1eca1fbff409',1,'perf_counter.c']]],
['systick_5fcalib_5fskew_5fmsk_22',['SysTick_CALIB_SKEW_Msk',['../perf__counter_8c.html#a8a6a85a87334776f33d77fd147587431',1,'perf_counter.c']]],
['systick_5fcalib_5fskew_5fpos_23',['SysTick_CALIB_SKEW_Pos',['../perf__counter_8c.html#add0c9cd6641b9f6a0c618e7982954860',1,'perf_counter.c']]],
['systick_5fcalib_5ftenms_5fmsk_24',['SysTick_CALIB_TENMS_Msk',['../perf__counter_8c.html#af1e68865c5aece2ad58971225bd3e95e',1,'perf_counter.c']]],
['systick_5fcalib_5ftenms_5fpos_25',['SysTick_CALIB_TENMS_Pos',['../perf__counter_8c.html#acae558f6e75a0bed5d826f606d8e695e',1,'perf_counter.c']]],
['systick_5fconfig_26',['SysTick_Config',['../perf__counter_8c.html#ae4e8f0238527c69f522029b93c8e5b78',1,'perf_counter.c']]],
['systick_5fctrl_5fclksource_5fmsk_27',['SysTick_CTRL_CLKSOURCE_Msk',['../perf__counter_8c.html#aa41d06039797423a46596bd313d57373',1,'perf_counter.c']]],
['systick_5fctrl_5fclksource_5fpos_28',['SysTick_CTRL_CLKSOURCE_Pos',['../perf__counter_8c.html#a24fbc69a5f0b78d67fda2300257baff1',1,'perf_counter.c']]],
['systick_5fctrl_5fcountflag_5fmsk_29',['SysTick_CTRL_COUNTFLAG_Msk',['../perf__counter_8c.html#a1bf3033ecccf200f59baefe15dbb367c',1,'perf_counter.c']]],
['systick_5fctrl_5fcountflag_5fpos_30',['SysTick_CTRL_COUNTFLAG_Pos',['../perf__counter_8c.html#adbb65d4a815759649db41df216ed4d60',1,'perf_counter.c']]],
['systick_5fctrl_5fenable_5fmsk_31',['SysTick_CTRL_ENABLE_Msk',['../perf__counter_8c.html#a16c9fee0ed0235524bdeb38af328fd1f',1,'perf_counter.c']]],
['systick_5fctrl_5fenable_5fpos_32',['SysTick_CTRL_ENABLE_Pos',['../perf__counter_8c.html#a0b48cc1e36d92a92e4bf632890314810',1,'perf_counter.c']]],
['systick_5fctrl_5ftickint_5fmsk_33',['SysTick_CTRL_TICKINT_Msk',['../perf__counter_8c.html#a95bb984266ca764024836a870238a027',1,'perf_counter.c']]],
['systick_5fctrl_5ftickint_5fpos_34',['SysTick_CTRL_TICKINT_Pos',['../perf__counter_8c.html#a88f45bbb89ce8df3cd2b2613c7b48214',1,'perf_counter.c']]],
['systick_5fload_5freload_5fmsk_35',['SysTick_LOAD_RELOAD_Msk',['../perf__counter_8c.html#a265912a7962f0e1abd170336e579b1b1',1,'perf_counter.c']]],
['systick_5fload_5freload_5fpos_36',['SysTick_LOAD_RELOAD_Pos',['../perf__counter_8c.html#af44d10df359dc5bf5752b0894ae3bad2',1,'perf_counter.c']]],
['systick_5ftype_37',['SysTick_Type',['../struct_sys_tick___type.html',1,'']]],
['systick_5fval_5fcurrent_5fmsk_38',['SysTick_VAL_CURRENT_Msk',['../perf__counter_8c.html#afc77b56d568930b49a2474debc75ab45',1,'perf_counter.c']]],
['systick_5fval_5fcurrent_5fpos_39',['SysTick_VAL_CURRENT_Pos',['../perf__counter_8c.html#a3208104c3b019b5de35ae8c21d5c34dd',1,'perf_counter.c']]]
];

View File

@ -0,0 +1,37 @@
<!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><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta name="generator" content="Doxygen 1.9.4"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="all_11.js"></script>
<script type="text/javascript" src="search.js"></script>
</head>
<body class="SRPage">
<div id="SRIndex">
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
createResults();
/* @license-end */
</script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
var searchResults = new SearchResults("searchResults");
searchResults.Search();
window.addEventListener("message", function(event) {
if (event.data == "take_focus") {
var elem = searchResults.NavNext(0);
if (elem) elem.focus();
}
});
/* @license-end */
</script>
</div>
</body>
</html>

View File

@ -0,0 +1,10 @@
var searchData=
[
['task_5fcycle_5finfo_5fagent_5ft_0',['task_cycle_info_agent_t',['../structtask__cycle__info__agent__t.html',1,'task_cycle_info_agent_t'],['../perf__counter_8h.html#ac118677bc3eb6a806eb1381d656b6c25',1,'task_cycle_info_agent_t():&#160;perf_counter.h']]],
['task_5fcycle_5finfo_5ft_1',['task_cycle_info_t',['../structtask__cycle__info__t.html',1,'']]],
['tcb_5ft_2',['TCB_t',['../perf__os__patch__freertos_8c.html#aa3c2dda92a6dc22860bbdb36e42a0453',1,'perf_os_patch_freertos.c']]],
['tinfo_3',['tInfo',['../struct____task__cycle__info__t.html#a8af024785267321e4ef544e7f25d80dc',1,'__task_cycle_info_t']]],
['tlist_4',['tList',['../struct____task__cycle__info__t.html#a7d50a2272c4a1b65f927e8c6d1242b33',1,'__task_cycle_info_t']]],
['tsktaskcontrolblock_5',['tskTaskControlBlock',['../structtsk_task_control_block.html',1,'']]],
['tsktcb_6',['tskTCB',['../perf__os__patch__freertos_8c.html#a67b1ddede4e49c946dd720d83c5838a5',1,'perf_os_patch_freertos.c']]]
];

View File

@ -0,0 +1,37 @@
<!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><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta name="generator" content="Doxygen 1.9.4"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="all_12.js"></script>
<script type="text/javascript" src="search.js"></script>
</head>
<body class="SRPage">
<div id="SRIndex">
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
createResults();
/* @license-end */
</script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
var searchResults = new SearchResults("searchResults");
searchResults.Search();
window.addEventListener("message", function(event) {
if (event.data == "take_focus") {
var elem = searchResults.NavNext(0);
if (elem) elem.focus();
}
});
/* @license-end */
</script>
</div>
</body>
</html>

View File

@ -0,0 +1,8 @@
var searchData=
[
['unregister_5ftask_5fcycle_5fagent_0',['unregister_task_cycle_agent',['../perf__counter_8h.html#afdd7c2e511c981ad62525076f53a762e',1,'unregister_task_cycle_agent():&#160;perf_counter.h'],['../perf__counter_8c.html#ae8c905d7221a7299fba5edbbfe1f449f',1,'unregister_task_cycle_agent(task_cycle_info_agent_t *ptAgent):&#160;perf_counter.c']]],
['unused_5fparam_1',['UNUSED_PARAM',['../perf__counter_8h.html#a4e95e8dc0d6a7f273a26c9e4bc239f83',1,'perf_counter.h']]],
['user_5fcode_5finsert_5fto_5fsystick_5fhandler_2',['user_code_insert_to_systick_handler',['../perf__counter_8c.html#a0a6e5160f19f152b0b9a502e5e24adb7',1,'user_code_insert_to_systick_handler(void):&#160;perf_counter.c'],['../perf__counter_8h.html#a0a6e5160f19f152b0b9a502e5e24adb7',1,'user_code_insert_to_systick_handler(void):&#160;perf_counter.c']]],
['using_3',['using',['../perf__counter_8h.html#ad90955bd356a41041a7dcb112a450766',1,'perf_counter.h']]],
['uxpriority_4',['uxPriority',['../structtsk_task_control_block.html#a0befed3dd0fe55b4314158f4814f50ae',1,'tskTaskControlBlock']]]
];

View File

@ -0,0 +1,37 @@
<!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><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta name="generator" content="Doxygen 1.9.4"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="all_13.js"></script>
<script type="text/javascript" src="search.js"></script>
</head>
<body class="SRPage">
<div id="SRIndex">
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
createResults();
/* @license-end */
</script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
var searchResults = new SearchResults("searchResults");
searchResults.Search();
window.addEventListener("message", function(event) {
if (event.data == "take_focus") {
var elem = searchResults.NavNext(0);
if (elem) elem.focus();
}
});
/* @license-end */
</script>
</div>
</body>
</html>

View File

@ -0,0 +1,5 @@
var searchData=
[
['val_0',['VAL',['../struct_sys_tick___type.html#ae7a655a853654127f3dfb7fa32c3f457',1,'SysTick_Type']]],
['vtor_1',['VTOR',['../struct_s_c_b___type.html#ae457d2615e203c3d5904a43a1bc9df71',1,'SCB_Type']]]
];

View File

@ -0,0 +1,37 @@
<!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><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta name="generator" content="Doxygen 1.9.4"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="all_14.js"></script>
<script type="text/javascript" src="search.js"></script>
</head>
<body class="SRPage">
<div id="SRIndex">
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
createResults();
/* @license-end */
</script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
var searchResults = new SearchResults("searchResults");
searchResults.Search();
window.addEventListener("message", function(event) {
if (event.data == "take_focus") {
var elem = searchResults.NavNext(0);
if (elem) elem.focus();
}
});
/* @license-end */
</script>
</div>
</body>
</html>

View File

@ -0,0 +1,6 @@
var searchData=
[
['with_0',['with',['../perf__counter_8h.html#afc5b077f9764ca6f11075ce72357dd65',1,'perf_counter.h']]],
['wmagicword_1',['wMagicWord',['../struct____task__cycle__info__t.html#a88c8aad5ae23ae04fa44b2892081561b',1,'__task_cycle_info_t']]],
['wrap_5ffunc_2',['WRAP_FUNC',['../perf__os__patch__freertos_8c.html#a34b5fd2f760a3a19875464d26bdb71df',1,'WRAP_FUNC():&#160;perf_os_patch_freertos.c'],['../perf__os__patch__rt__thread_8c.html#a34b5fd2f760a3a19875464d26bdb71df',1,'WRAP_FUNC():&#160;perf_os_patch_rt_thread.c'],['../perf__os__patch__rtx5_8c.html#a34b5fd2f760a3a19875464d26bdb71df',1,'WRAP_FUNC():&#160;perf_os_patch_rtx5.c'],['../perf__os__patch__threadx_8c.html#a34b5fd2f760a3a19875464d26bdb71df',1,'WRAP_FUNC():&#160;perf_os_patch_threadx.c']]]
];

View File

@ -0,0 +1,37 @@
<!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><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta name="generator" content="Doxygen 1.9.4"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="all_15.js"></script>
<script type="text/javascript" src="search.js"></script>
</head>
<body class="SRPage">
<div id="SRIndex">
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
createResults();
/* @license-end */
</script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
var searchResults = new SearchResults("searchResults");
searchResults.Search();
window.addEventListener("message", function(event) {
if (event.data == "take_focus") {
var elem = searchResults.NavNext(0);
if (elem) elem.focus();
}
});
/* @license-end */
</script>
</div>
</body>
</html>

View File

@ -0,0 +1,5 @@
var searchData=
[
['xeventlistitem_0',['xEventListItem',['../structtsk_task_control_block.html#a139605d93d834601f34be927ecba3a15',1,'tskTaskControlBlock']]],
['xstatelistitem_1',['xStateListItem',['../structtsk_task_control_block.html#a2575f6a579ef61db0db66d7b1b52ec48',1,'tskTaskControlBlock']]]
];

View File

@ -0,0 +1,37 @@
<!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><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta name="generator" content="Doxygen 1.9.4"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="all_2.js"></script>
<script type="text/javascript" src="search.js"></script>
</head>
<body class="SRPage">
<div id="SRIndex">
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
createResults();
/* @license-end */
</script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
var searchResults = new SearchResults("searchResults");
searchResults.Search();
window.addEventListener("message", function(event) {
if (event.data == "take_focus") {
var elem = searchResults.NavNext(0);
if (elem) elem.focus();
}
});
/* @license-end */
</script>
</div>
</body>
</html>

View File

@ -0,0 +1,5 @@
var searchData=
[
['benabled_0',['bEnabled',['../structtask__cycle__info__t.html#a8a4c67264f8440bb83dec68c4312ff09',1,'task_cycle_info_t']]],
['bfar_1',['BFAR',['../struct_s_c_b___type.html#a3fde073744418e2fe476333cb4d55d0d',1,'SCB_Type']]]
];

View File

@ -0,0 +1,37 @@
<!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><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta name="generator" content="Doxygen 1.9.4"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="all_3.js"></script>
<script type="text/javascript" src="search.js"></script>
</head>
<body class="SRPage">
<div id="SRIndex">
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
createResults();
/* @license-end */
</script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
var searchResults = new SearchResults("searchResults");
searchResults.Search();
window.addEventListener("message", function(event) {
if (event.data == "take_focus") {
var elem = searchResults.NavNext(0);
if (elem) elem.focus();
}
});
/* @license-end */
</script>
</div>
</body>
</html>

View File

@ -0,0 +1,20 @@
var searchData=
[
['calib_0',['CALIB',['../struct_sys_tick___type.html#aedf0dff29a9cacdaa2fb7eec6b116a13',1,'SysTick_Type']]],
['ccr_1',['CCR',['../struct_s_c_b___type.html#ad68b5c1f2d9845ef4247cf2d9b041336',1,'SCB_Type']]],
['cfsr_2',['CFSR',['../struct_s_c_b___type.html#a0f9e27357254e6e953a94f95bda040b1',1,'SCB_Type']]],
['check_5fsystick_3',['check_systick',['../perf__counter_8c.html#a21ccde78f8ad778f05be60855c5a8283',1,'perf_counter.c']]],
['cmsis_20global_20defines_4',['CMSIS Global Defines',['../group___c_m_s_i_s__glob__defs.html',1,'']]],
['connect_5',['CONNECT',['../perf__counter_8h.html#a1409defa6d3e973b7efee74d2de7386d',1,'perf_counter.h']]],
['connect2_6',['CONNECT2',['../perf__counter_8h.html#ae0db1f91522f0c020e1068d8bb2034cb',1,'perf_counter.h']]],
['connect3_7',['CONNECT3',['../perf__counter_8h.html#a3994906c1038cf4f04e9578079429555',1,'perf_counter.h']]],
['connect4_8',['CONNECT4',['../perf__counter_8h.html#a4be8346e8c8e544e3dc4da819f03d636',1,'perf_counter.h']]],
['connect5_9',['CONNECT5',['../perf__counter_8h.html#a397bd70fecd355461d99b228d02d01f8',1,'perf_counter.h']]],
['connect6_10',['CONNECT6',['../perf__counter_8h.html#a3bbbfb88c43244289b9a4e4521caf7cb',1,'perf_counter.h']]],
['connect7_11',['CONNECT7',['../perf__counter_8h.html#a8deb36935d07c69646a26993ab15328a',1,'perf_counter.h']]],
['connect8_12',['CONNECT8',['../perf__counter_8h.html#a9ce80b30ee8f4bb424c23f785b3481b8',1,'perf_counter.h']]],
['connect9_13',['CONNECT9',['../perf__counter_8h.html#a67d6d69c5ea260de9bdf81edf9672af3',1,'perf_counter.h']]],
['cpacr_14',['CPACR',['../struct_s_c_b___type.html#ab8e9dd6ca5f31244ea352ed0c19155d8',1,'SCB_Type']]],
['cpuid_15',['CPUID',['../struct_s_c_b___type.html#adbf8292503748ba6421a523bdee6819d',1,'SCB_Type']]],
['ctrl_16',['CTRL',['../struct_sys_tick___type.html#ac81efc171e9852a36caeb47122bfec5b',1,'SysTick_Type']]]
];

View File

@ -0,0 +1,37 @@
<!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><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta name="generator" content="Doxygen 1.9.4"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="all_4.js"></script>
<script type="text/javascript" src="search.js"></script>
</head>
<body class="SRPage">
<div id="SRIndex">
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
createResults();
/* @license-end */
</script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
var searchResults = new SearchResults("searchResults");
searchResults.Search();
window.addEventListener("message", function(event) {
if (event.data == "take_focus") {
var elem = searchResults.NavNext(0);
if (elem) elem.focus();
}
});
/* @license-end */
</script>
</div>
</body>
</html>

View File

@ -0,0 +1,9 @@
var searchData=
[
['delay_5fms_0',['delay_ms',['../perf__counter_8c.html#a2add8ab5b23b568bba6d46f9c977dbce',1,'delay_ms(int32_t nMs):&#160;perf_counter.c'],['../perf__counter_8h.html#a2add8ab5b23b568bba6d46f9c977dbce',1,'delay_ms(int32_t nMs):&#160;perf_counter.c']]],
['delay_5fus_1',['delay_us',['../perf__counter_8c.html#a9776dfed871d0e0775c876f16e7618f7',1,'delay_us(int32_t nUs):&#160;perf_counter.c'],['../perf__counter_8h.html#a9776dfed871d0e0775c876f16e7618f7',1,'delay_us(int32_t nUs):&#160;perf_counter.c']]],
['dfr_2',['DFR',['../struct_s_c_b___type.html#ae2b3d4530d1b0c05593b634dc46348bd',1,'SCB_Type']]],
['dfsr_3',['DFSR',['../struct_s_c_b___type.html#a3b590075aa07880ce686d5cfb4e61c5c',1,'SCB_Type']]],
['dimof_4',['dimof',['../perf__counter_8h.html#a7b6c484887a402bba1af11b457264553',1,'perf_counter.h']]],
['disable_5ftask_5fcycle_5finfo_5',['disable_task_cycle_info',['../perf__counter_8h.html#af3fceb4da6cc89dd20a874bd147c2414',1,'disable_task_cycle_info():&#160;perf_counter.h'],['../perf__counter_8c.html#a01d6cd52b6c48c1e0c8a68b48ad87b0c',1,'disable_task_cycle_info(task_cycle_info_t *ptInfo):&#160;perf_counter.c']]]
];

View File

@ -0,0 +1,37 @@
<!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><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta name="generator" content="Doxygen 1.9.4"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="all_5.js"></script>
<script type="text/javascript" src="search.js"></script>
</head>
<body class="SRPage">
<div id="SRIndex">
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
createResults();
/* @license-end */
</script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
var searchResults = new SearchResults("searchResults");
searchResults.Search();
window.addEventListener("message", function(event) {
if (event.data == "take_focus") {
var elem = searchResults.NavNext(0);
if (elem) elem.focus();
}
});
/* @license-end */
</script>
</div>
</body>
</html>

View File

@ -0,0 +1,7 @@
var searchData=
[
['enable_5ftask_5fcycle_5finfo_0',['enable_task_cycle_info',['../perf__counter_8h.html#a96f0ed25511e535714003ec4ca738415',1,'enable_task_cycle_info():&#160;perf_counter.h'],['../perf__counter_8c.html#ae2c015694f2e89240466e9b1d423c6ec',1,'enable_task_cycle_info(task_cycle_info_t *ptInfo):&#160;perf_counter.c']]],
['evtfreertostasks_5ftaskswitchedin_1',['EvtFreeRTOSTasks_TaskSwitchedIn',['../perf__os__patch__freertos_8c.html#aea3ef800c9428b732ffbe8445eefee66',1,'perf_os_patch_freertos.c']]],
['evtfreertostasks_5ftaskswitchedout_2',['EvtFreeRTOSTasks_TaskSwitchedOut',['../perf__os__patch__freertos_8c.html#a324f9bb05f8ce010d19ec560b4e1da95',1,'perf_os_patch_freertos.c']]],
['evtfreertostasksno_3',['EvtFreeRTOSTasksNo',['../perf__os__patch__freertos_8c.html#af1545bfa164313b88b851eb84f466541',1,'perf_os_patch_freertos.c']]]
];

View File

@ -0,0 +1,37 @@
<!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><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta name="generator" content="Doxygen 1.9.4"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="all_6.js"></script>
<script type="text/javascript" src="search.js"></script>
</head>
<body class="SRPage">
<div id="SRIndex">
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
createResults();
/* @license-end */
</script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
var searchResults = new SearchResults("searchResults");
searchResults.Search();
window.addEventListener("message", function(event) {
if (event.data == "take_focus") {
var elem = searchResults.NavNext(0);
if (elem) elem.focus();
}
});
/* @license-end */
</script>
</div>
</body>
</html>

View File

@ -0,0 +1,6 @@
var searchData=
[
['foreach_0',['foreach',['../perf__counter_8h.html#a623a729e6571efedb0c5528689d6120d',1,'perf_counter.h']]],
['foreach2_1',['foreach2',['../perf__counter_8h.html#ac4e7ceea5fc047d059b6b1898a697cb4',1,'perf_counter.h']]],
['foreach3_2',['foreach3',['../perf__counter_8h.html#a2c93a7704596f19ff84cbfec513c3a5a',1,'perf_counter.h']]]
];

View File

@ -0,0 +1,37 @@
<!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><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta name="generator" content="Doxygen 1.9.4"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="all_7.js"></script>
<script type="text/javascript" src="search.js"></script>
</head>
<body class="SRPage">
<div id="SRIndex">
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
createResults();
/* @license-end */
</script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
var searchResults = new SearchResults("searchResults");
searchResults.Search();
window.addEventListener("message", function(event) {
if (event.data == "take_focus") {
var elem = searchResults.NavNext(0);
if (elem) elem.focus();
}
});
/* @license-end */
</script>
</div>
</body>
</html>

View File

@ -0,0 +1,6 @@
var searchData=
[
['get_5frtos_5ftask_5fcycle_5finfo_0',['get_rtos_task_cycle_info',['../perf__counter_8c.html#a87abe08a2093c8c69e5f813f565a1d31',1,'get_rtos_task_cycle_info(void):&#160;perf_counter.c'],['../perf__os__patch__freertos_8c.html#aafe74ae771ab855185531aae1e42657c',1,'get_rtos_task_cycle_info(void):&#160;perf_os_patch_freertos.c'],['../perf__os__patch__rt__thread_8c.html#aafe74ae771ab855185531aae1e42657c',1,'get_rtos_task_cycle_info(void):&#160;perf_os_patch_rt_thread.c'],['../perf__os__patch__rtx5_8c.html#aafe74ae771ab855185531aae1e42657c',1,'get_rtos_task_cycle_info(void):&#160;perf_os_patch_rtx5.c'],['../perf__os__patch__threadx_8c.html#aafe74ae771ab855185531aae1e42657c',1,'get_rtos_task_cycle_info(void):&#160;perf_os_patch_threadx.c']]],
['get_5fsystem_5fms_1',['get_system_ms',['../perf__counter_8c.html#a98c51d83fdb448a2733d0a309366149c',1,'get_system_ms(void):&#160;perf_counter.c'],['../perf__counter_8h.html#a98c51d83fdb448a2733d0a309366149c',1,'get_system_ms(void):&#160;perf_counter.c']]],
['get_5fsystem_5fticks_2',['get_system_ticks',['../perf__counter_8c.html#a32dabfe5b863f89f71735b20a0caf1ea',1,'get_system_ticks(void):&#160;perf_counter.c'],['../perf__counter_8h.html#a32dabfe5b863f89f71735b20a0caf1ea',1,'get_system_ticks(void):&#160;perf_counter.c']]]
];

View File

@ -0,0 +1,37 @@
<!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><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta name="generator" content="Doxygen 1.9.4"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="all_8.js"></script>
<script type="text/javascript" src="search.js"></script>
</head>
<body class="SRPage">
<div id="SRIndex">
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
createResults();
/* @license-end */
</script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
var searchResults = new SearchResults("searchResults");
searchResults.Search();
window.addEventListener("message", function(event) {
if (event.data == "take_focus") {
var elem = searchResults.NavNext(0);
if (elem) elem.focus();
}
});
/* @license-end */
</script>
</div>
</body>
</html>

View File

@ -0,0 +1,5 @@
var searchData=
[
['hfsr_0',['HFSR',['../struct_s_c_b___type.html#ab974e7ceb2e52a3fbcaa84e06e52922d',1,'SCB_Type']]],
['hwactivecount_1',['hwActiveCount',['../structtask__cycle__info__t.html#a84d3729a2d49dd2e43ef8727fcd6f9b0',1,'task_cycle_info_t']]]
];

View File

@ -0,0 +1,37 @@
<!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><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta name="generator" content="Doxygen 1.9.4"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="all_9.js"></script>
<script type="text/javascript" src="search.js"></script>
</head>
<body class="SRPage">
<div id="SRIndex">
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
createResults();
/* @license-end */
</script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
var searchResults = new SearchResults("searchResults");
searchResults.Search();
window.addEventListener("message", function(event) {
if (event.data == "take_focus") {
var elem = searchResults.NavNext(0);
if (elem) elem.focus();
}
});
/* @license-end */
</script>
</div>
</body>
</html>

View File

@ -0,0 +1,8 @@
var searchData=
[
['icsr_0',['ICSR',['../struct_s_c_b___type.html#aced895d6aba03d72b0d865fcc5ce44ee',1,'SCB_Type']]],
['init_5fcycle_5fcounter_1',['init_cycle_counter',['../perf__counter_8c.html#a9097d62a30ad2b4f75462c78d7200fa8',1,'init_cycle_counter(bool bIsSysTickOccupied):&#160;perf_counter.c'],['../perf__counter_8h.html#a9097d62a30ad2b4f75462c78d7200fa8',1,'init_cycle_counter(bool bIsSysTickOccupied):&#160;perf_counter.c']]],
['init_5ftask_5fcycle_5fcounter_2',['init_task_cycle_counter',['../perf__counter_8h.html#a00278751616ee5d95ce4bea4ffb59ce7',1,'init_task_cycle_counter():&#160;perf_counter.h'],['../perf__counter_8c.html#a74d7160e4b3588456a85fcdce6cee6ab',1,'init_task_cycle_counter(void):&#160;perf_counter.c']]],
['init_5ftask_5fcycle_5finfo_3',['init_task_cycle_info',['../perf__counter_8h.html#a607df0241b0f85868159e1e15f44acdc',1,'init_task_cycle_info():&#160;perf_counter.h'],['../perf__counter_8c.html#af5404b4b72cfaf910fb2ebeb8d7a4448',1,'init_task_cycle_info(task_cycle_info_t *ptInfo):&#160;perf_counter.c']]],
['isar_4',['ISAR',['../struct_s_c_b___type.html#af2950df748750d535d5d65ac1c209563',1,'SCB_Type']]]
];

View File

@ -0,0 +1,37 @@
<!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><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta name="generator" content="Doxygen 1.9.4"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="all_a.js"></script>
<script type="text/javascript" src="search.js"></script>
</head>
<body class="SRPage">
<div id="SRIndex">
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
createResults();
/* @license-end */
</script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
var searchResults = new SearchResults("searchResults");
searchResults.Search();
window.addEventListener("message", function(event) {
if (event.data == "take_focus") {
var elem = searchResults.NavNext(0);
if (elem) elem.focus();
}
});
/* @license-end */
</script>
</div>
</body>
</html>

View File

@ -0,0 +1,7 @@
var searchData=
[
['llasttimestamp_0',['lLastTimeStamp',['../struct____task__cycle__info__t.html#ae2aae11f91e3eea654ceeac9b81706cb',1,'__task_cycle_info_t']]],
['load_1',['LOAD',['../struct_sys_tick___type.html#a0c1333686137b7e25a46bd548a5b5bc3',1,'SysTick_Type']]],
['lstart_2',['lStart',['../structtask__cycle__info__t.html#a3b941eea48497afb204462c694bc2d12',1,'task_cycle_info_t']]],
['lusedtotal_3',['lUsedTotal',['../structtask__cycle__info__t.html#a19a46cbd05039f568b01e326d65d6b80',1,'task_cycle_info_t']]]
];

View File

@ -0,0 +1,37 @@
<!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><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta name="generator" content="Doxygen 1.9.4"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="all_b.js"></script>
<script type="text/javascript" src="search.js"></script>
</head>
<body class="SRPage">
<div id="SRIndex">
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
createResults();
/* @license-end */
</script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
var searchResults = new SearchResults("searchResults");
searchResults.Search();
window.addEventListener("message", function(event) {
if (event.data == "take_focus") {
var elem = searchResults.NavNext(0);
if (elem) elem.focus();
}
});
/* @license-end */
</script>
</div>
</body>
</html>

View File

@ -0,0 +1,8 @@
var searchData=
[
['magic_5fword_5fagent_5flist_5fvalid_0',['MAGIC_WORD_AGENT_LIST_VALID',['../perf__counter_8c.html#a5ed2b69d382ff960de71b5aa2e0b0deb',1,'perf_counter.c']]],
['magic_5fword_5fcanary_1',['MAGIC_WORD_CANARY',['../perf__counter_8c.html#acd6c9ac2bce565b27fef68a011411100',1,'perf_counter.c']]],
['mmfar_2',['MMFAR',['../struct_s_c_b___type.html#ae9d94d186615d57d38c9253cb842d244',1,'SCB_Type']]],
['mmfr_3',['MMFR',['../struct_s_c_b___type.html#ab6c914b579d22d7eb86d0e3d9a5fde71',1,'SCB_Type']]],
['mpu_5fwrappers_5fincluded_5ffrom_5fapi_5ffile_4',['MPU_WRAPPERS_INCLUDED_FROM_API_FILE',['../perf__os__patch__freertos_8c.html#ab622d8c674f2a417a666a7ed89109e79',1,'perf_os_patch_freertos.c']]]
];

View File

@ -0,0 +1,37 @@
<!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><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta name="generator" content="Doxygen 1.9.4"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="all_c.js"></script>
<script type="text/javascript" src="search.js"></script>
</head>
<body class="SRPage">
<div id="SRIndex">
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
createResults();
/* @license-end */
</script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
var searchResults = new SearchResults("searchResults");
searchResults.Search();
window.addEventListener("message", function(event) {
if (event.data == "take_focus") {
var elem = searchResults.NavNext(0);
if (elem) elem.focus();
}
});
/* @license-end */
</script>
</div>
</body>
</html>

View File

@ -0,0 +1,4 @@
var searchData=
[
['nusedrecent_0',['nUsedRecent',['../structtask__cycle__info__t.html#a0250b43cfb57ddf17f7f40c4cc587249',1,'task_cycle_info_t']]]
];

View File

@ -0,0 +1,37 @@
<!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><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta name="generator" content="Doxygen 1.9.4"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="all_d.js"></script>
<script type="text/javascript" src="search.js"></script>
</head>
<body class="SRPage">
<div id="SRIndex">
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
createResults();
/* @license-end */
</script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
var searchResults = new SearchResults("searchResults");
searchResults.Search();
window.addEventListener("message", function(event) {
if (event.data == "take_focus") {
var elem = searchResults.NavNext(0);
if (elem) elem.focus();
}
});
/* @license-end */
</script>
</div>
</body>
</html>

View File

@ -0,0 +1,4 @@
var searchData=
[
['orig_5ffunc_0',['ORIG_FUNC',['../perf__os__patch__freertos_8c.html#aa7290a1d64a5cbe15d52fec89b35f1b9',1,'ORIG_FUNC():&#160;perf_os_patch_freertos.c'],['../perf__os__patch__rt__thread_8c.html#aa7290a1d64a5cbe15d52fec89b35f1b9',1,'ORIG_FUNC():&#160;perf_os_patch_rt_thread.c'],['../perf__os__patch__rtx5_8c.html#aa7290a1d64a5cbe15d52fec89b35f1b9',1,'ORIG_FUNC():&#160;perf_os_patch_rtx5.c'],['../perf__os__patch__threadx_8c.html#aa7290a1d64a5cbe15d52fec89b35f1b9',1,'ORIG_FUNC():&#160;perf_os_patch_threadx.c']]]
];

Some files were not shown because too many files have changed in this diff Show More