matlab_stm_emulate/DOCS/html/mcu__wrapper_8c.html

273 lines
20 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!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" lang="en-US">
<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.10.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>STM MATLAB Simulator: F:/Work/Projects/MATLAB/matlab_stm_emulate/MCU_Wrapper/mcu_wrapper.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>
<script type="text/javascript" src="clipboard.js"></script>
<script type="text/javascript" src="cookie.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>
<script type="text/javascript" src="darkmode_toggle.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">STM MATLAB Simulator
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.10.0 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "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');
$(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<!-- 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">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_5bc05bcf5fafad3c8688aee149210d07.html">MCU_Wrapper</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> &#124;
<a href="#var-members">Variables</a> </div>
<div class="headertitle"><div class="title">mcu_wrapper.c File Reference</div></div>
</div><!--header-->
<div class="contents">
<p>Исходный код оболочки МК.
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &quot;<a class="el" href="mcu__wrapper__conf_8h_source.html">mcu_wrapper_conf.h</a>&quot;</code><br />
</div><div class="textblock"><div id="dynsection-0" onclick="return dynsection.toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
<img id="dynsection-0-trigger" src="closed.png" alt="+"/> Include dependency graph for mcu_wrapper.c:</div>
<div id="dynsection-0-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-0-content" class="dyncontent" style="display:none;">
<div class="center"><img src="mcu__wrapper_8c__incl.png" border="0" usemap="#a_f_1_2_work_2_projects_2_m_a_t_l_a_b_2matlab__stm__emulate_2_m_c_u___wrapper_2mcu__wrapper_8c" alt=""/></div>
<map name="a_f_1_2_work_2_projects_2_m_a_t_l_a_b_2matlab__stm__emulate_2_m_c_u___wrapper_2mcu__wrapper_8c" id="a_f_1_2_work_2_projects_2_m_a_t_l_a_b_2matlab__stm__emulate_2_m_c_u___wrapper_2mcu__wrapper_8c">
<area shape="rect" title="Исходный код оболочки МК." alt="" coords="338,5,520,64"/>
<area shape="rect" href="mcu__wrapper__conf_8h.html" title="Заголовочный файл для оболочки МК." alt="" coords="358,112,500,139"/>
<area shape="poly" title=" " alt="" coords="432,64,432,96,426,96,426,64"/>
<area shape="rect" href="stm32f4xx__matlab__conf_8h.html" title="Заголовочный файл для конфигурации симулятора МК." alt="" coords="192,187,364,213"/>
<area shape="poly" title=" " alt="" coords="404,142,319,182,317,177,401,137"/>
<area shape="rect" title=" " alt="" coords="534,336,617,363"/>
<area shape="poly" title=" " alt="" coords="450,137,510,186,542,220,567,260,577,291,579,320,574,321,571,292,562,262,537,224,506,189,446,141"/>
<area shape="rect" title=" " alt="" coords="627,187,705,213"/>
<area shape="poly" title=" " alt="" coords="471,137,613,180,611,185,469,142"/>
<area shape="rect" href="stm32f4xx__matlab__rcc_8h.html" title="Заголовочный файл для симулятора клока." alt="" coords="5,261,170,288"/>
<area shape="poly" title=" " alt="" coords="246,216,136,258,134,253,244,211"/>
<area shape="rect" href="stm32f4xx__matlab__gpio_8h.html" title="Заголовочный файл для симулятора портов." alt="" coords="382,261,553,288"/>
<area shape="poly" title=" " alt="" coords="312,211,421,253,419,258,310,216"/>
<area shape="rect" href="stm32f4xx__matlab__tim_8h.html" title="Заголовочный файл для симулятора таймеров." alt="" coords="193,261,358,288"/>
<area shape="poly" title=" " alt="" coords="280,214,279,246,274,246,275,214"/>
<area shape="poly" title=" " alt="" coords="95,259,129,222,153,202,180,184,219,166,261,152,342,134,343,139,263,157,221,171,182,189,156,206,133,226,99,263"/>
<area shape="poly" title=" " alt="" coords="462,262,433,154,439,153,467,260"/>
<area shape="rect" title=" " alt="" coords="380,336,497,363"/>
<area shape="poly" title=" " alt="" coords="465,290,451,323,446,321,460,288"/>
<area shape="poly" title=" " alt="" coords="488,286,545,325,542,329,485,291"/>
<area shape="poly" title=" " alt="" coords="303,258,339,239,374,211,397,182,415,152,419,154,402,185,377,215,342,243,306,263"/>
<area shape="poly" title=" " alt="" coords="305,286,397,327,395,332,303,291"/>
<area shape="rect" title=" " alt="" coords="222,336,329,363"/>
<area shape="poly" title=" " alt="" coords="278,289,278,320,273,320,273,289"/>
</map>
</div>
</div>
<p><a href="mcu__wrapper_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="func-members" name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a840291bc02cba5474a4cb46a9b9566fe" id="r_a840291bc02cba5474a4cb46a9b9566fe"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a840291bc02cba5474a4cb46a9b9566fe">main</a> (void)</td></tr>
<tr class="memdesc:a840291bc02cba5474a4cb46a9b9566fe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Главная функция приложения МК. <br /></td></tr>
<tr class="separator:a840291bc02cba5474a4cb46a9b9566fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1ea76a95b9b28061fb34ece9f6f0a85f" id="r_a1ea76a95b9b28061fb34ece9f6f0a85f"><td class="memItemLeft" align="right" valign="top">unsigned __stdcall&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a1ea76a95b9b28061fb34ece9f6f0a85f">MCU_App_Thread</a> (void)</td></tr>
<tr class="memdesc:a1ea76a95b9b28061fb34ece9f6f0a85f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Поток приложения МК. <br /></td></tr>
<tr class="separator:a1ea76a95b9b28061fb34ece9f6f0a85f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad3c4ea41584d0367dfbfb697f5e57456" id="r_gad3c4ea41584d0367dfbfb697f5e57456"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___m_c_u___w_r_a_p_p_e_r.html#gad3c4ea41584d0367dfbfb697f5e57456">MCU_Step_Simulation</a> (SimStruct *S, time_T time)</td></tr>
<tr class="memdesc:gad3c4ea41584d0367dfbfb697f5e57456"><td class="mdescLeft">&#160;</td><td class="mdescRight">Симуляция МК на один такт симуляции. <br /></td></tr>
<tr class="separator:gad3c4ea41584d0367dfbfb697f5e57456"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaccdef5b45f3d1646f248304e02b00e54" id="r_gaccdef5b45f3d1646f248304e02b00e54"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___m_c_u___w_r_a_p_p_e_r.html#gaccdef5b45f3d1646f248304e02b00e54">MCU_Periph_Simulation</a> (void)</td></tr>
<tr class="memdesc:gaccdef5b45f3d1646f248304e02b00e54"><td class="mdescLeft">&#160;</td><td class="mdescRight">Симуляция периферии МК <br /></td></tr>
<tr class="separator:gaccdef5b45f3d1646f248304e02b00e54"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga15045e0feba8ddf08e20958fd1e36cd5" id="r_ga15045e0feba8ddf08e20958fd1e36cd5"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___m_c_u___w_r_a_p_p_e_r.html#ga15045e0feba8ddf08e20958fd1e36cd5">MCU_readInputs</a> (SimStruct *S)</td></tr>
<tr class="memdesc:ga15045e0feba8ddf08e20958fd1e36cd5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Считывание входов S-Function в порты ввода-вывода. <br /></td></tr>
<tr class="separator:ga15045e0feba8ddf08e20958fd1e36cd5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad6b7bb9233d746d7709276f9ea1914c2" id="r_gad6b7bb9233d746d7709276f9ea1914c2"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___m_c_u___w_r_a_p_p_e_r.html#gad6b7bb9233d746d7709276f9ea1914c2">MCU_writeOutputs</a> (SimStruct *S)</td></tr>
<tr class="memdesc:gad6b7bb9233d746d7709276f9ea1914c2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Запись портов ввода-вывода в буфер выхода S-Function. <br /></td></tr>
<tr class="separator:gad6b7bb9233d746d7709276f9ea1914c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a47b40a9825bcaeb3a1dfba8b27a0be3f" id="r_a47b40a9825bcaeb3a1dfba8b27a0be3f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a47b40a9825bcaeb3a1dfba8b27a0be3f">SIM_writeOutputs</a> (SimStruct *S)</td></tr>
<tr class="memdesc:a47b40a9825bcaeb3a1dfba8b27a0be3f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Формирование выходов S-Function. <br /></td></tr>
<tr class="separator:a47b40a9825bcaeb3a1dfba8b27a0be3f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga54429d6d68b1d72ce16bab374e3ffa08" id="r_ga54429d6d68b1d72ce16bab374e3ffa08"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___m_c_u___w_r_a_p_p_e_r.html#ga54429d6d68b1d72ce16bab374e3ffa08">SIM_Initialize_Simulation</a> (void)</td></tr>
<tr class="memdesc:ga54429d6d68b1d72ce16bab374e3ffa08"><td class="mdescLeft">&#160;</td><td class="mdescRight">Инициализация симуляции МК. <br /></td></tr>
<tr class="separator:ga54429d6d68b1d72ce16bab374e3ffa08"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6f04b162923bada308d9668743425b92" id="r_ga6f04b162923bada308d9668743425b92"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___m_c_u___w_r_a_p_p_e_r.html#ga6f04b162923bada308d9668743425b92">SIM_deInitialize_Simulation</a> (void)</td></tr>
<tr class="memdesc:ga6f04b162923bada308d9668743425b92"><td class="mdescLeft">&#160;</td><td class="mdescRight">Деинициализация симуляции МК. <br /></td></tr>
<tr class="separator:ga6f04b162923bada308d9668743425b92"><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:ga7bd77e7f9825a3661f357e430246bfe8" id="r_ga7bd77e7f9825a3661f357e430246bfe8"><td class="memItemLeft" align="right" valign="top"><a class="el" href="struct_s_i_m_____m_c_u_handle_type_def.html">SIM__MCUHandleTypeDef</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___w_r_a_p_p_e_r___c_o_n_f.html#ga7bd77e7f9825a3661f357e430246bfe8">hmcu</a></td></tr>
<tr class="memdesc:ga7bd77e7f9825a3661f357e430246bfe8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Хендл для управления потоком программы МК <br /></td></tr>
<tr class="separator:ga7bd77e7f9825a3661f357e430246bfe8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf1cb3ba542e380d1f12d30579598c48c" id="r_gaf1cb3ba542e380d1f12d30579598c48c"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___w_r_a_p_p_e_r___c_o_n_f.html#gaf1cb3ba542e380d1f12d30579598c48c">SystemClockDouble</a> = 0</td></tr>
<tr class="memdesc:gaf1cb3ba542e380d1f12d30579598c48c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Счетчик в формате double для точной симуляции системных тиков С промежуточными значений <br /></td></tr>
<tr class="separator:gaf1cb3ba542e380d1f12d30579598c48c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6a1676e08289f73141f9fa8419311385" id="r_ga6a1676e08289f73141f9fa8419311385"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___w_r_a_p_p_e_r___c_o_n_f.html#ga6a1676e08289f73141f9fa8419311385">SystemClock</a></td></tr>
<tr class="memdesc:ga6a1676e08289f73141f9fa8419311385"><td class="mdescLeft">&#160;</td><td class="mdescRight">Счетчик тактов для симуляции системных тиков (в целочисленном формате) <br /></td></tr>
<tr class="separator:ga6a1676e08289f73141f9fa8419311385"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae50392991204ce9a89dd9aa8bf43634f" id="r_gae50392991204ce9a89dd9aa8bf43634f"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___w_r_a_p_p_e_r___c_o_n_f.html#gae50392991204ce9a89dd9aa8bf43634f">SystemClock_step</a> = 0</td></tr>
<tr class="memdesc:gae50392991204ce9a89dd9aa8bf43634f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Шаг тиков для их симуляции, в формате double. <br /></td></tr>
<tr class="separator:gae50392991204ce9a89dd9aa8bf43634f"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Исходный код оболочки МК. </p>
<p>Данный файл содержит функции для симуляции МК в Simulink (S-Function). </p>
<p class="definition">Definition in file <a class="el" href="mcu__wrapper_8c_source.html">mcu_wrapper.c</a>.</p>
</div><h2 class="groupheader">Function Documentation</h2>
<a id="a840291bc02cba5474a4cb46a9b9566fe" name="a840291bc02cba5474a4cb46a9b9566fe"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a840291bc02cba5474a4cb46a9b9566fe">&#9670;&#160;</a></span>main()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int main </td>
<td>(</td>
<td class="paramtype">void</td> <td class="paramname"><span class="paramname"></span></td><td>)</td>
<td></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>Главная функция приложения МК. </p>
<p>Функция с которой начинается выполнение кода МК. Выход из данной функции происходит только в конце симуляции <a class="el" href="group___w_r_a_p_p_e_r___s_f_u_n_c.html#ga343acfd8b3b5308d6c94bbf40efbbac5">mdlTerminate</a> </p>
</div>
</div>
<a id="a1ea76a95b9b28061fb34ece9f6f0a85f" name="a1ea76a95b9b28061fb34ece9f6f0a85f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1ea76a95b9b28061fb34ece9f6f0a85f">&#9670;&#160;</a></span>MCU_App_Thread()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">unsigned __stdcall MCU_App_Thread </td>
<td>(</td>
<td class="paramtype">void</td> <td class="paramname"><span class="paramname"></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Поток приложения МК. </p>
<p>Поток, который запускает и выполняет код МК (<a class="el" href="#a840291bc02cba5474a4cb46a9b9566fe">main</a>). </p>
<p class="definition">Definition at line <a class="el" href="mcu__wrapper_8c_source.html#l00037">37</a> of file <a class="el" href="mcu__wrapper_8c_source.html">mcu_wrapper.c</a>.</p>
<div id="dynsection-1" onclick="return dynsection.toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
<img id="dynsection-1-trigger" src="closed.png" alt="+"/> Here is the call graph for this function:</div>
<div id="dynsection-1-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-1-content" class="dyncontent" style="display:none;">
<div class="center"><img src="mcu__wrapper_8c_a1ea76a95b9b28061fb34ece9f6f0a85f_cgraph.png" border="0" usemap="#amcu__wrapper_8c_a1ea76a95b9b28061fb34ece9f6f0a85f_cgraph" alt=""/></div>
<map name="amcu__wrapper_8c_a1ea76a95b9b28061fb34ece9f6f0a85f_cgraph" id="amcu__wrapper_8c_a1ea76a95b9b28061fb34ece9f6f0a85f_cgraph">
<area shape="rect" title="Поток приложения МК." alt="" coords="5,5,135,32"/>
<area shape="rect" href="mcu__wrapper_8c.html#a840291bc02cba5474a4cb46a9b9566fe" title="Главная функция приложения МК." alt="" coords="183,5,232,32"/>
<area shape="poly" title=" " alt="" coords="135,16,167,16,167,21,135,21"/>
</map>
</div>
</div>
</div>
<a id="a47b40a9825bcaeb3a1dfba8b27a0be3f" name="a47b40a9825bcaeb3a1dfba8b27a0be3f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a47b40a9825bcaeb3a1dfba8b27a0be3f">&#9670;&#160;</a></span>SIM_writeOutputs()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void SIM_writeOutputs </td>
<td>(</td>
<td class="paramtype">SimStruct *</td> <td class="paramname"><span class="paramname"><em>S</em></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Формирование выходов S-Function. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">S</td><td>- указатель на структуру S-Function из "simstruc.h"</td></tr>
</table>
</dd>
</dl>
<p>Пользовательский код, который записывает выходы S-Function из буфера. </p>
<p class="definition">Definition at line <a class="el" href="mcu__wrapper_8c_source.html#l00122">122</a> of file <a class="el" href="mcu__wrapper_8c_source.html">mcu_wrapper.c</a>.</p>
</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.10.0
</small></address>
</body>
</html>