Files
KSDK_2.0_MKL03Z8xxx4/docs/Kinetis SDK API Reference Manual MKL03Z4_v2.0.0/group__SHELL.html
2016-08-09 18:02:18 +02:00

693 lines
46 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.5"/>
<title>Kinetis SDK v.2.0 API Reference Manual: Shell</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="navtree.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
$(window).load(resizeHeight);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="fs_logo.gif"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">Kinetis SDK v.2.0 API Reference Manual
&#160;<span id="projectnumber">Rev. 0</span>
</div>
<div id="projectbrief">NXP Semiconductors</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.5 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="modules.html"><span>API&#160;Reference</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('group__SHELL.html','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="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="#enum-members">Enumerations</a> </div>
<div class="headertitle">
<div class="title">Shell</div> </div>
</div><!--header-->
<div class="contents">
<a name="details" id="details"></a><h2 class="groupheader">Overview</h2>
<p>This section describes the programming interface of the Shell middleware.</p>
<p>Shell controls MCUs by commands via the specified communication peripheral based on the debug console driver.</p>
<h1><a class="anchor" id="ShellFunGrps"></a>
Function groups</h1>
<h2><a class="anchor" id="ShellInit"></a>
Initialization</h2>
<p>To initialize the Shell middleware, call the <span style="color:red"><a class="el" href="group__SHELL.html#ga7a14ea6e5900c0678de08462b4ce1f8c" title="Enables the clock gate and configure the Shell module according to the configuration structure...">SHELL_Init()</a></span> function with these parameters. This function automatically enables the middleware.</p>
<div class="fragment"><div class="line"><span class="keywordtype">void</span> <a class="code" href="group__SHELL.html#ga7a14ea6e5900c0678de08462b4ce1f8c">SHELL_Init</a>(p_shell_context_t context, <a class="code" href="group__SHELL.html#ga23ea06e2a0490cd1a95735df5f803557">send_data_cb_t</a> send_cb, <a class="code" href="group__SHELL.html#ga26ad20709ea948bcf81312de58854d26">recv_data_cb_t</a> recv_cb, <span class="keywordtype">char</span> *prompt);</div>
</div><!-- fragment --><p>Then, after the initialization was successful, call a command to control MCUs.</p>
<p>This example shows how to call the <a class="el" href="group__SHELL.html#ga7a14ea6e5900c0678de08462b4ce1f8c" title="Enables the clock gate and configure the Shell module according to the configuration structure...">SHELL_Init()</a> given the user configuration structure.</p>
<div class="fragment"><div class="line"><a class="code" href="group__SHELL.html#ga7a14ea6e5900c0678de08462b4ce1f8c">SHELL_Init</a>(&amp;user_context, SHELL_SendDataCallback, SHELL_ReceiveDataCallback, <span class="stringliteral">&quot;SHELL&gt;&gt; &quot;</span>);</div>
</div><!-- fragment --><h2><a class="anchor" id="ShellAdvFeature"></a>
Advanced Feature</h2>
<ul>
<li>Support to get a character from standard input devices. <div class="fragment"><div class="line"><span class="keyword">static</span> uint8_t GetChar(p_shell_context_t context);</div>
</div><!-- fragment --></li>
</ul>
<div style="width:800px;"> <table class="doxtable">
<tr>
<th>Commands </th><th>Description </th></tr>
<tr>
<td>Help </td><td>Lists all commands which are supported by Shell. </td></tr>
<tr>
<td>Exit </td><td>Exits the Shell program. </td></tr>
<tr>
<td>strCompare </td><td>Compares the two input strings. </td></tr>
</table>
</div><div style="width:800px;"> <table class="doxtable">
<tr>
<th>Input character </th><th>Description </th></tr>
<tr>
<td>A </td><td>Gets the latest command in the history. </td></tr>
<tr>
<td>B </td><td>Gets the first command in the history. </td></tr>
<tr>
<td>C </td><td>Replaces one character at the right of the pointer. </td></tr>
<tr>
<td>D </td><td>Replaces one character at the left of the pointer. </td></tr>
<tr>
<td></td><td>Run AutoComplete function </td></tr>
<tr>
<td><br/>
</td><td>Run cmdProcess function </td></tr>
<tr>
<td><b></b> </td><td>Clears a command. </td></tr>
</table>
</div><h2><a class="anchor" id="SHELLOper"></a>
Shell Operation</h2>
<div class="fragment"><div class="line"><a class="code" href="group__SHELL.html#ga7a14ea6e5900c0678de08462b4ce1f8c">SHELL_Init</a>(&amp;user_context, SHELL_SendDataCallback, SHELL_ReceiveDataCallback, <span class="stringliteral">&quot;SHELL&gt;&gt; &quot;</span>);</div>
<div class="line"><a class="code" href="group__SHELL.html#ga6320340d77b1cf35426753607e179bed">SHELL_Main</a>(&amp;user_context);</div>
</div><!-- fragment --> <table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Data Structures</h2></td></tr>
<tr class="memitem:structshell__context__struct"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__SHELL.html#structshell__context__struct">p_shell_context_t</a></td></tr>
<tr class="memdesc:structshell__context__struct"><td class="mdescLeft">&#160;</td><td class="mdescRight">Data structure for Shell environment. <a href="group__SHELL.html#structshell__context__struct">More...</a><br/></td></tr>
<tr class="separator:structshell__context__struct"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:structshell__command__context__t"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__SHELL.html#structshell__command__context__t">shell_command_context_t</a></td></tr>
<tr class="memdesc:structshell__command__context__t"><td class="mdescLeft">&#160;</td><td class="mdescRight">User command data structure. <a href="group__SHELL.html#structshell__command__context__t">More...</a><br/></td></tr>
<tr class="separator:structshell__command__context__t"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:structshell__command__context__list__t"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__SHELL.html#structshell__command__context__list__t">shell_command_context_list_t</a></td></tr>
<tr class="memdesc:structshell__command__context__list__t"><td class="mdescLeft">&#160;</td><td class="mdescRight">Structure list command. <a href="group__SHELL.html#structshell__command__context__list__t">More...</a><br/></td></tr>
<tr class="separator:structshell__command__context__list__t"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:ga8a6eb6b751c3722a25646962df645270"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__SHELL.html#ga8a6eb6b751c3722a25646962df645270">SHELL_USE_HISTORY</a>&#160;&#160;&#160;(0U)</td></tr>
<tr class="memdesc:ga8a6eb6b751c3722a25646962df645270"><td class="mdescLeft">&#160;</td><td class="mdescRight">Macro to set on/off history feature. <a href="#ga8a6eb6b751c3722a25646962df645270">More...</a><br/></td></tr>
<tr class="separator:ga8a6eb6b751c3722a25646962df645270"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4fd76a13c6d7f46b73c70460e1967e88"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__SHELL.html#ga4fd76a13c6d7f46b73c70460e1967e88">SHELL_SEARCH_IN_HIST</a>&#160;&#160;&#160;(1U)</td></tr>
<tr class="memdesc:ga4fd76a13c6d7f46b73c70460e1967e88"><td class="mdescLeft">&#160;</td><td class="mdescRight">Macro to set on/off history feature. <a href="#ga4fd76a13c6d7f46b73c70460e1967e88">More...</a><br/></td></tr>
<tr class="separator:ga4fd76a13c6d7f46b73c70460e1967e88"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5434143d688ea02ee8ce0a4d1bf57769"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__SHELL.html#ga5434143d688ea02ee8ce0a4d1bf57769">SHELL_USE_FILE_STREAM</a>&#160;&#160;&#160;(0U)</td></tr>
<tr class="memdesc:ga5434143d688ea02ee8ce0a4d1bf57769"><td class="mdescLeft">&#160;</td><td class="mdescRight">Macro to select method stream. <a href="#ga5434143d688ea02ee8ce0a4d1bf57769">More...</a><br/></td></tr>
<tr class="separator:ga5434143d688ea02ee8ce0a4d1bf57769"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga30882f4b5fc99cbc21459cc960ef9ffe"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__SHELL.html#ga30882f4b5fc99cbc21459cc960ef9ffe">SHELL_AUTO_COMPLETE</a>&#160;&#160;&#160;(1U)</td></tr>
<tr class="memdesc:ga30882f4b5fc99cbc21459cc960ef9ffe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Macro to set on/off auto-complete feature. <a href="#ga30882f4b5fc99cbc21459cc960ef9ffe">More...</a><br/></td></tr>
<tr class="separator:ga30882f4b5fc99cbc21459cc960ef9ffe"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf98219b0fb886040896b83966903a135"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__SHELL.html#gaf98219b0fb886040896b83966903a135">SHELL_BUFFER_SIZE</a>&#160;&#160;&#160;(64U)</td></tr>
<tr class="memdesc:gaf98219b0fb886040896b83966903a135"><td class="mdescLeft">&#160;</td><td class="mdescRight">Macro to set console buffer size. <a href="#gaf98219b0fb886040896b83966903a135">More...</a><br/></td></tr>
<tr class="separator:gaf98219b0fb886040896b83966903a135"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0800d9fb741c785d0601f0c3d7125f40"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__SHELL.html#ga0800d9fb741c785d0601f0c3d7125f40">SHELL_MAX_ARGS</a>&#160;&#160;&#160;(8U)</td></tr>
<tr class="memdesc:ga0800d9fb741c785d0601f0c3d7125f40"><td class="mdescLeft">&#160;</td><td class="mdescRight">Macro to set maximum arguments in command. <a href="#ga0800d9fb741c785d0601f0c3d7125f40">More...</a><br/></td></tr>
<tr class="separator:ga0800d9fb741c785d0601f0c3d7125f40"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga09a4a7625941e02d59e91c9565936e76"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__SHELL.html#ga09a4a7625941e02d59e91c9565936e76">SHELL_HIST_MAX</a>&#160;&#160;&#160;(3U)</td></tr>
<tr class="memdesc:ga09a4a7625941e02d59e91c9565936e76"><td class="mdescLeft">&#160;</td><td class="mdescRight">Macro to set maximum count of history commands. <a href="#ga09a4a7625941e02d59e91c9565936e76">More...</a><br/></td></tr>
<tr class="separator:ga09a4a7625941e02d59e91c9565936e76"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga04918c323884fb638ee2893be9ad182c"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__SHELL.html#ga04918c323884fb638ee2893be9ad182c">SHELL_MAX_CMD</a>&#160;&#160;&#160;(6U)</td></tr>
<tr class="memdesc:ga04918c323884fb638ee2893be9ad182c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Macro to set maximum count of commands. <a href="#ga04918c323884fb638ee2893be9ad182c">More...</a><br/></td></tr>
<tr class="separator:ga04918c323884fb638ee2893be9ad182c"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:ga23ea06e2a0490cd1a95735df5f803557"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__SHELL.html#ga23ea06e2a0490cd1a95735df5f803557">send_data_cb_t</a> )(uint8_t *buf, uint32_t len)</td></tr>
<tr class="memdesc:ga23ea06e2a0490cd1a95735df5f803557"><td class="mdescLeft">&#160;</td><td class="mdescRight">Shell user send data callback prototype. <a href="#ga23ea06e2a0490cd1a95735df5f803557">More...</a><br/></td></tr>
<tr class="separator:ga23ea06e2a0490cd1a95735df5f803557"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga26ad20709ea948bcf81312de58854d26"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__SHELL.html#ga26ad20709ea948bcf81312de58854d26">recv_data_cb_t</a> )(uint8_t *buf, uint32_t len)</td></tr>
<tr class="memdesc:ga26ad20709ea948bcf81312de58854d26"><td class="mdescLeft">&#160;</td><td class="mdescRight">Shell user receiver data callback prototype. <a href="#ga26ad20709ea948bcf81312de58854d26">More...</a><br/></td></tr>
<tr class="separator:ga26ad20709ea948bcf81312de58854d26"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga35a9fb9bcd648ade9c6c5eab741d97e3"><td class="memItemLeft" align="right" valign="top">typedef int(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__SHELL.html#ga35a9fb9bcd648ade9c6c5eab741d97e3">printf_data_t</a> )(const char *format,...)</td></tr>
<tr class="memdesc:ga35a9fb9bcd648ade9c6c5eab741d97e3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Shell user printf data prototype. <a href="#ga35a9fb9bcd648ade9c6c5eab741d97e3">More...</a><br/></td></tr>
<tr class="separator:ga35a9fb9bcd648ade9c6c5eab741d97e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf8c99d19d2b8814ef91aade8e54c6233"><td class="memItemLeft" align="right" valign="top">typedef int32_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__SHELL.html#gaf8c99d19d2b8814ef91aade8e54c6233">cmd_function_t</a> )(p_shell_context_t context, int32_t argc, char **argv)</td></tr>
<tr class="memdesc:gaf8c99d19d2b8814ef91aade8e54c6233"><td class="mdescLeft">&#160;</td><td class="mdescRight">User command function prototype. <a href="#gaf8c99d19d2b8814ef91aade8e54c6233">More...</a><br/></td></tr>
<tr class="separator:gaf8c99d19d2b8814ef91aade8e54c6233"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
Enumerations</h2></td></tr>
<tr class="memitem:ga488c74d84729585aeb742d644454f358"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__SHELL.html#ga488c74d84729585aeb742d644454f358">fun_key_status_t</a> { <br/>
&#160;&#160;<a class="el" href="group__SHELL.html#gga488c74d84729585aeb742d644454f358a5c913b67ed7ce5f415efe745f414c563">kSHELL_Normal</a> = 0U,
<br/>
&#160;&#160;<a class="el" href="group__SHELL.html#gga488c74d84729585aeb742d644454f358a99b70623e7b4782308a51be3d636ff23">kSHELL_Special</a> = 1U,
<br/>
&#160;&#160;<a class="el" href="group__SHELL.html#gga488c74d84729585aeb742d644454f358a4c2dc0c2e280cec0b94dad8468bb5fb4">kSHELL_Function</a> = 2U
<br/>
}</td></tr>
<tr class="memdesc:ga488c74d84729585aeb742d644454f358"><td class="mdescLeft">&#160;</td><td class="mdescRight">A type for the handle special key. <a href="group__SHELL.html#ga488c74d84729585aeb742d644454f358">More...</a><br/></td></tr>
<tr class="separator:ga488c74d84729585aeb742d644454f358"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
Shell functional Operation</h2></td></tr>
<tr class="memitem:ga7a14ea6e5900c0678de08462b4ce1f8c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__SHELL.html#ga7a14ea6e5900c0678de08462b4ce1f8c">SHELL_Init</a> (p_shell_context_t context, <a class="el" href="group__SHELL.html#ga23ea06e2a0490cd1a95735df5f803557">send_data_cb_t</a> send_cb, <a class="el" href="group__SHELL.html#ga26ad20709ea948bcf81312de58854d26">recv_data_cb_t</a> recv_cb, <a class="el" href="group__SHELL.html#ga35a9fb9bcd648ade9c6c5eab741d97e3">printf_data_t</a> shell_printf, char *prompt)</td></tr>
<tr class="memdesc:ga7a14ea6e5900c0678de08462b4ce1f8c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enables the clock gate and configure the Shell module according to the configuration structure. <a href="#ga7a14ea6e5900c0678de08462b4ce1f8c">More...</a><br/></td></tr>
<tr class="separator:ga7a14ea6e5900c0678de08462b4ce1f8c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gabb4540c0b2c9cd519c841d581d4ede38"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__SHELL.html#gabb4540c0b2c9cd519c841d581d4ede38">SHELL_RegisterCommand</a> (const <a class="el" href="group__SHELL.html#structshell__command__context__t">shell_command_context_t</a> *command_context)</td></tr>
<tr class="memdesc:gabb4540c0b2c9cd519c841d581d4ede38"><td class="mdescLeft">&#160;</td><td class="mdescRight">Shell register command. <a href="#gabb4540c0b2c9cd519c841d581d4ede38">More...</a><br/></td></tr>
<tr class="separator:gabb4540c0b2c9cd519c841d581d4ede38"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6320340d77b1cf35426753607e179bed"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__SHELL.html#ga6320340d77b1cf35426753607e179bed">SHELL_Main</a> (p_shell_context_t context)</td></tr>
<tr class="memdesc:ga6320340d77b1cf35426753607e179bed"><td class="mdescLeft">&#160;</td><td class="mdescRight">Main loop for Shell. <a href="#ga6320340d77b1cf35426753607e179bed">More...</a><br/></td></tr>
<tr class="separator:ga6320340d77b1cf35426753607e179bed"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<hr/><h2 class="groupheader">Data Structure Documentation</h2>
<a name="structshell__context__struct" id="structshell__context__struct"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">struct shell_context_struct</td>
</tr>
</table>
</div><div class="memdoc">
<div class="textblock"></div><table class="memberdecls">
<tr><td colspan="2"><h3>Data Fields</h3></td></tr>
<tr class="memitem:a070638fa9fd3393d534f18c69522b20a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a070638fa9fd3393d534f18c69522b20a"></a>
char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__SHELL.html#a070638fa9fd3393d534f18c69522b20a">prompt</a></td></tr>
<tr class="memdesc:a070638fa9fd3393d534f18c69522b20a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Prompt string. <br/></td></tr>
<tr class="separator:a070638fa9fd3393d534f18c69522b20a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a93d1ccc6fef4596885ebb6b74b06b02b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a93d1ccc6fef4596885ebb6b74b06b02b"></a>
enum _fun_key_status&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__SHELL.html#a93d1ccc6fef4596885ebb6b74b06b02b">stat</a></td></tr>
<tr class="memdesc:a93d1ccc6fef4596885ebb6b74b06b02b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Special key status. <br/></td></tr>
<tr class="separator:a93d1ccc6fef4596885ebb6b74b06b02b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a04e8c90f93e096fa50e3c8ae52055811"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a04e8c90f93e096fa50e3c8ae52055811"></a>
char&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__SHELL.html#a04e8c90f93e096fa50e3c8ae52055811">line</a> [<a class="el" href="group__SHELL.html#gaf98219b0fb886040896b83966903a135">SHELL_BUFFER_SIZE</a>]</td></tr>
<tr class="memdesc:a04e8c90f93e096fa50e3c8ae52055811"><td class="mdescLeft">&#160;</td><td class="mdescRight">Consult buffer. <br/></td></tr>
<tr class="separator:a04e8c90f93e096fa50e3c8ae52055811"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5ab600c579998fc1141304c153dfd1ae"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5ab600c579998fc1141304c153dfd1ae"></a>
uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__SHELL.html#a5ab600c579998fc1141304c153dfd1ae">cmd_num</a></td></tr>
<tr class="memdesc:a5ab600c579998fc1141304c153dfd1ae"><td class="mdescLeft">&#160;</td><td class="mdescRight">Number of user commands. <br/></td></tr>
<tr class="separator:a5ab600c579998fc1141304c153dfd1ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9fba40e48bcf1d2c0e391311acce12c9"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9fba40e48bcf1d2c0e391311acce12c9"></a>
uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__SHELL.html#a9fba40e48bcf1d2c0e391311acce12c9">l_pos</a></td></tr>
<tr class="memdesc:a9fba40e48bcf1d2c0e391311acce12c9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Total line position. <br/></td></tr>
<tr class="separator:a9fba40e48bcf1d2c0e391311acce12c9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab68aa9c7a07d3b3cab2553d61eeac9f4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab68aa9c7a07d3b3cab2553d61eeac9f4"></a>
uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__SHELL.html#ab68aa9c7a07d3b3cab2553d61eeac9f4">c_pos</a></td></tr>
<tr class="memdesc:ab68aa9c7a07d3b3cab2553d61eeac9f4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Current line position. <br/></td></tr>
<tr class="separator:ab68aa9c7a07d3b3cab2553d61eeac9f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a111b5474e4fc3435993a9fed2dce79d2"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a111b5474e4fc3435993a9fed2dce79d2"></a>
<a class="el" href="group__SHELL.html#ga23ea06e2a0490cd1a95735df5f803557">send_data_cb_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__SHELL.html#a111b5474e4fc3435993a9fed2dce79d2">send_data_func</a></td></tr>
<tr class="memdesc:a111b5474e4fc3435993a9fed2dce79d2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Send data interface operation. <br/></td></tr>
<tr class="separator:a111b5474e4fc3435993a9fed2dce79d2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae822a114483f7b4b18deea7366c875fc"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae822a114483f7b4b18deea7366c875fc"></a>
<a class="el" href="group__SHELL.html#ga26ad20709ea948bcf81312de58854d26">recv_data_cb_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__SHELL.html#ae822a114483f7b4b18deea7366c875fc">recv_data_func</a></td></tr>
<tr class="memdesc:ae822a114483f7b4b18deea7366c875fc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Receive data interface operation. <br/></td></tr>
<tr class="separator:ae822a114483f7b4b18deea7366c875fc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac4ef2ac45acebe4773c2032b06e02ac8"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac4ef2ac45acebe4773c2032b06e02ac8"></a>
uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__SHELL.html#ac4ef2ac45acebe4773c2032b06e02ac8">hist_current</a></td></tr>
<tr class="memdesc:ac4ef2ac45acebe4773c2032b06e02ac8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Current history command in hist buff. <br/></td></tr>
<tr class="separator:ac4ef2ac45acebe4773c2032b06e02ac8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3019d6cbfed8d91dc6e1f698c94e5e23"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3019d6cbfed8d91dc6e1f698c94e5e23"></a>
uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__SHELL.html#a3019d6cbfed8d91dc6e1f698c94e5e23">hist_count</a></td></tr>
<tr class="memdesc:a3019d6cbfed8d91dc6e1f698c94e5e23"><td class="mdescLeft">&#160;</td><td class="mdescRight">Total history command in hist buff. <br/></td></tr>
<tr class="separator:a3019d6cbfed8d91dc6e1f698c94e5e23"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a988a0ba56d5bf74fad2194dee93dd5e6"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a988a0ba56d5bf74fad2194dee93dd5e6"></a>
char&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__SHELL.html#a988a0ba56d5bf74fad2194dee93dd5e6">hist_buf</a> [<a class="el" href="group__SHELL.html#ga09a4a7625941e02d59e91c9565936e76">SHELL_HIST_MAX</a>][<a class="el" href="group__SHELL.html#gaf98219b0fb886040896b83966903a135">SHELL_BUFFER_SIZE</a>]</td></tr>
<tr class="memdesc:a988a0ba56d5bf74fad2194dee93dd5e6"><td class="mdescLeft">&#160;</td><td class="mdescRight">History buffer. <br/></td></tr>
<tr class="separator:a988a0ba56d5bf74fad2194dee93dd5e6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3c86b82ef6661cc21cc8e9f9b6834a72"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3c86b82ef6661cc21cc8e9f9b6834a72"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__SHELL.html#a3c86b82ef6661cc21cc8e9f9b6834a72">exit</a></td></tr>
<tr class="memdesc:a3c86b82ef6661cc21cc8e9f9b6834a72"><td class="mdescLeft">&#160;</td><td class="mdescRight">Exit Flag. <br/></td></tr>
<tr class="separator:a3c86b82ef6661cc21cc8e9f9b6834a72"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
</div>
</div>
<a name="structshell__command__context__t" id="structshell__command__context__t"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">struct shell_command_context_t</td>
</tr>
</table>
</div><div class="memdoc">
<div class="textblock"></div><table class="memberdecls">
<tr><td colspan="2"><h3>Data Fields</h3></td></tr>
<tr class="memitem:a64e08b8add29093cea9df01c76f91622"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__SHELL.html#a64e08b8add29093cea9df01c76f91622">pcCommand</a></td></tr>
<tr class="memdesc:a64e08b8add29093cea9df01c76f91622"><td class="mdescLeft">&#160;</td><td class="mdescRight">The command that is executed. <a href="#a64e08b8add29093cea9df01c76f91622">More...</a><br/></td></tr>
<tr class="separator:a64e08b8add29093cea9df01c76f91622"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2c834721ecac02c09b8b65400d0fd5f8"><td class="memItemLeft" align="right" valign="top">char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__SHELL.html#a2c834721ecac02c09b8b65400d0fd5f8">pcHelpString</a></td></tr>
<tr class="memdesc:a2c834721ecac02c09b8b65400d0fd5f8"><td class="mdescLeft">&#160;</td><td class="mdescRight">String that describes how to use the command. <a href="#a2c834721ecac02c09b8b65400d0fd5f8">More...</a><br/></td></tr>
<tr class="separator:a2c834721ecac02c09b8b65400d0fd5f8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acbbd9fd8065d61f1d5d5dce9131ddcec"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="group__SHELL.html#gaf8c99d19d2b8814ef91aade8e54c6233">cmd_function_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__SHELL.html#acbbd9fd8065d61f1d5d5dce9131ddcec">pFuncCallBack</a></td></tr>
<tr class="memdesc:acbbd9fd8065d61f1d5d5dce9131ddcec"><td class="mdescLeft">&#160;</td><td class="mdescRight">A pointer to the callback function that returns the output generated by the command. <a href="#acbbd9fd8065d61f1d5d5dce9131ddcec">More...</a><br/></td></tr>
<tr class="separator:acbbd9fd8065d61f1d5d5dce9131ddcec"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0aa98f810e1a14e66dfcc39d98cdfd2d"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__SHELL.html#a0aa98f810e1a14e66dfcc39d98cdfd2d">cExpectedNumberOfParameters</a></td></tr>
<tr class="memdesc:a0aa98f810e1a14e66dfcc39d98cdfd2d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Commands expect a fixed number of parameters, which may be zero. <a href="#a0aa98f810e1a14e66dfcc39d98cdfd2d">More...</a><br/></td></tr>
<tr class="separator:a0aa98f810e1a14e66dfcc39d98cdfd2d"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h4 class="groupheader">Field Documentation</h4>
<a class="anchor" id="a64e08b8add29093cea9df01c76f91622"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const char* shell_command_context_t::pcCommand</td>
</tr>
</table>
</div><div class="memdoc">
<p>For example "help". It must be all lower case. </p>
</div>
</div>
<a class="anchor" id="a2c834721ecac02c09b8b65400d0fd5f8"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">char* shell_command_context_t::pcHelpString</td>
</tr>
</table>
</div><div class="memdoc">
<p>It should start with the command itself, and end with "\r\n". For example "help: Returns a list of all the commands\r\n". </p>
</div>
</div>
<a class="anchor" id="acbbd9fd8065d61f1d5d5dce9131ddcec"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const <a class="el" href="group__SHELL.html#gaf8c99d19d2b8814ef91aade8e54c6233">cmd_function_t</a> shell_command_context_t::pFuncCallBack</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a0aa98f810e1a14e66dfcc39d98cdfd2d"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint8_t shell_command_context_t::cExpectedNumberOfParameters</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
</div>
</div>
<a name="structshell__command__context__list__t" id="structshell__command__context__list__t"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">struct shell_command_context_list_t</td>
</tr>
</table>
</div><div class="memdoc">
<div class="textblock"></div><table class="memberdecls">
<tr><td colspan="2"><h3>Data Fields</h3></td></tr>
<tr class="memitem:a629a9a4facbb9938ccf45798f8530532"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a629a9a4facbb9938ccf45798f8530532"></a>
const <a class="el" href="group__SHELL.html#structshell__command__context__t">shell_command_context_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__SHELL.html#a629a9a4facbb9938ccf45798f8530532">CommandList</a> [<a class="el" href="group__SHELL.html#ga04918c323884fb638ee2893be9ad182c">SHELL_MAX_CMD</a>]</td></tr>
<tr class="memdesc:a629a9a4facbb9938ccf45798f8530532"><td class="mdescLeft">&#160;</td><td class="mdescRight">The command table list. <br/></td></tr>
<tr class="separator:a629a9a4facbb9938ccf45798f8530532"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:add47bb5adb9390a0936320f8b68a11b6"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="add47bb5adb9390a0936320f8b68a11b6"></a>
uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__SHELL.html#add47bb5adb9390a0936320f8b68a11b6">numberOfCommandInList</a></td></tr>
<tr class="memdesc:add47bb5adb9390a0936320f8b68a11b6"><td class="mdescLeft">&#160;</td><td class="mdescRight">The total command in list. <br/></td></tr>
<tr class="separator:add47bb5adb9390a0936320f8b68a11b6"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
</div>
</div>
<h2 class="groupheader">Macro Definition Documentation</h2>
<a class="anchor" id="ga8a6eb6b751c3722a25646962df645270"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define SHELL_USE_HISTORY&#160;&#160;&#160;(0U)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ga4fd76a13c6d7f46b73c70460e1967e88"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define SHELL_SEARCH_IN_HIST&#160;&#160;&#160;(1U)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ga5434143d688ea02ee8ce0a4d1bf57769"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define SHELL_USE_FILE_STREAM&#160;&#160;&#160;(0U)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ga30882f4b5fc99cbc21459cc960ef9ffe"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define SHELL_AUTO_COMPLETE&#160;&#160;&#160;(1U)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="gaf98219b0fb886040896b83966903a135"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define SHELL_BUFFER_SIZE&#160;&#160;&#160;(64U)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ga0800d9fb741c785d0601f0c3d7125f40"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define SHELL_MAX_ARGS&#160;&#160;&#160;(8U)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ga09a4a7625941e02d59e91c9565936e76"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define SHELL_HIST_MAX&#160;&#160;&#160;(3U)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ga04918c323884fb638ee2893be9ad182c"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define SHELL_MAX_CMD&#160;&#160;&#160;(6U)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<h2 class="groupheader">Typedef Documentation</h2>
<a class="anchor" id="ga23ea06e2a0490cd1a95735df5f803557"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef void(* send_data_cb_t)(uint8_t *buf, uint32_t len)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ga26ad20709ea948bcf81312de58854d26"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef void(* recv_data_cb_t)(uint8_t *buf, uint32_t len)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ga35a9fb9bcd648ade9c6c5eab741d97e3"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef int(* printf_data_t)(const char *format,...)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="gaf8c99d19d2b8814ef91aade8e54c6233"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef int32_t(* cmd_function_t)(p_shell_context_t context, int32_t argc, char **argv)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<h2 class="groupheader">Enumeration Type Documentation</h2>
<a class="anchor" id="ga488c74d84729585aeb742d644454f358"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="group__SHELL.html#ga488c74d84729585aeb742d644454f358">fun_key_status_t</a></td>
</tr>
</table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="gga488c74d84729585aeb742d644454f358a5c913b67ed7ce5f415efe745f414c563"></a>kSHELL_Normal</em>&nbsp;</td><td class="fielddoc">
<p>Normal key. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga488c74d84729585aeb742d644454f358a99b70623e7b4782308a51be3d636ff23"></a>kSHELL_Special</em>&nbsp;</td><td class="fielddoc">
<p>Special key. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga488c74d84729585aeb742d644454f358a4c2dc0c2e280cec0b94dad8468bb5fb4"></a>kSHELL_Function</em>&nbsp;</td><td class="fielddoc">
<p>Function key. </p>
</td></tr>
</table>
</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="ga7a14ea6e5900c0678de08462b4ce1f8c"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void SHELL_Init </td>
<td>(</td>
<td class="paramtype">p_shell_context_t&#160;</td>
<td class="paramname"><em>context</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__SHELL.html#ga23ea06e2a0490cd1a95735df5f803557">send_data_cb_t</a>&#160;</td>
<td class="paramname"><em>send_cb</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__SHELL.html#ga26ad20709ea948bcf81312de58854d26">recv_data_cb_t</a>&#160;</td>
<td class="paramname"><em>recv_cb</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__SHELL.html#ga35a9fb9bcd648ade9c6c5eab741d97e3">printf_data_t</a>&#160;</td>
<td class="paramname"><em>shell_printf</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">char *&#160;</td>
<td class="paramname"><em>prompt</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function must be called before calling all other Shell functions. Call operation the Shell commands with user-defined settings. The example below shows how to set up the middleware Shell and how to call the SHELL_Init function by passing in these parameters: Example: </p>
<div class="fragment"><div class="line">* <a class="code" href="group__SHELL.html#structshell__context__struct">shell_context_struct</a> user_context;</div>
<div class="line">* <a class="code" href="group__SHELL.html#ga7a14ea6e5900c0678de08462b4ce1f8c">SHELL_Init</a>(&amp;user_context, SendDataFunc, ReceiveDataFunc, <span class="stringliteral">&quot;SHELL&gt;&gt; &quot;</span>);</div>
<div class="line">* </div>
</div><!-- fragment --> <dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">context</td><td>The pointer to the Shell environment and runtime states. </td></tr>
<tr><td class="paramname">send_cb</td><td>The pointer to call back send data function. </td></tr>
<tr><td class="paramname">recv_cb</td><td>The pointer to call back receive data function. </td></tr>
<tr><td class="paramname">prompt</td><td>The string prompt of Shell </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="gabb4540c0b2c9cd519c841d581d4ede38"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int32_t SHELL_RegisterCommand </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="group__SHELL.html#structshell__command__context__t">shell_command_context_t</a> *&#160;</td>
<td class="paramname"><em>command_context</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">command_context</td><td>The pointer to the command data structure. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>-1 if error or 0 if success </dd></dl>
</div>
</div>
<a class="anchor" id="ga6320340d77b1cf35426753607e179bed"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int32_t SHELL_Main </td>
<td>(</td>
<td class="paramtype">p_shell_context_t&#160;</td>
<td class="paramname"><em>context</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Main loop for Shell; After this function is called, Shell begins to initialize the basic variables and starts to work. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">context</td><td>The pointer to the Shell environment and runtime states. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>this function does not return until Shell command exit was called. </dd></dl>
</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- HTML footer for doxygen 1.8.5-->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul class="foot">
<li class="footer">&copy; 2016 Freescale Semiconductor, Inc. All rights reserved.
</li>
</ul>
</div>
</body>
</html>