gnuk/ChibiOS_2.0.6/docs/html/group__debug.html

388 lines
34 KiB
HTML
Raw Normal View History

2010-08-10 03:11:02 +00:00
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>ChibiOS/RT: Debug</title>
<link href="custom.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<table style="text-align: center; width: 100%;" border="0"
cellpadding="2" cellspacing="2">
<tbody>
<tr>
<td style="width: 80px;"><img alt="ChibiOS/RT Logo" src="logo_small.png"></td>
<td><big><big>ChibiOS/RT</big></big><br><br>Architecture - Reference Manual - Guides</td>
<td style="width: 80px;"></td>
</tr>
</tbody>
</table>
<hr size="1">
2010-11-22 05:53:37 +00:00
<!-- Generated by Doxygen 1.7.1 -->
2010-08-10 03:11:02 +00:00
<div class="navigation" id="top">
<div class="tabs">
2010-11-22 05:53:37 +00:00
<ul class="tablist">
2010-08-10 03:11:02 +00:00
<li><a href="main.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
</div>
2010-11-22 05:53:37 +00:00
<div class="header">
<div class="summary">
<a href="#nested-classes">Data Structures</a> &#124;
<a href="#define-members">Defines</a> &#124;
<a href="#func-members">Functions</a> &#124;
<a href="#var-members">Variables</a> </div>
<div class="headertitle">
2010-08-10 03:11:02 +00:00
<h1>Debug<br/>
<small>
[<a class="el" href="group__kernel.html">Kernel</a>]</small>
2010-11-22 05:53:37 +00:00
</h1> </div>
</div>
<div class="contents">
2010-08-10 03:11:02 +00:00
<p><div class="dynheader">
Collaboration diagram for Debug:</div>
2010-11-22 05:53:37 +00:00
<div class="dyncontent">
<center><table><tr><td><img src="group__debug.png" border="0" alt="" usemap="#group____debug"/>
<map name="group____debug" id="group____debug">
<area shape="rect" id="node1" href="group__kernel.html" title="Kernel" alt="" coords="5,5,59,32"/> </map>
</td></tr></table></center>
2010-08-10 03:11:02 +00:00
</div>
</p>
<hr/><a name="_details"></a><h2>Description</h2>
<p>Debug APIs and services:</p>
<ul>
<li>Trace buffer.</li>
<li>Parameters check.</li>
<li>Kernel assertions.</li>
</ul>
2010-11-22 05:53:37 +00:00
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="nested-classes"></a>
Data Structures</h2></td></tr>
2010-08-10 03:11:02 +00:00
<tr><td class="memItemLeft" align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ctx_swc_event.html">CtxSwcEvent</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Trace buffer record. <a href="struct_ctx_swc_event.html#_details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_trace_buffer.html">TraceBuffer</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Trace buffer header. <a href="struct_trace_buffer.html#_details">More...</a><br/></td></tr>
2010-11-22 05:53:37 +00:00
<tr><td colspan="2"><h2><a name="define-members"></a>
Defines</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__debug.html#ga85f9a678e5f44d97a8a21adab8c065b7">TRACE_BUFFER_SIZE</a>&nbsp;&nbsp;&nbsp;64</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Trace buffer entries. <a href="#ga85f9a678e5f44d97a8a21adab8c065b7"></a><br/></td></tr>
2010-08-10 03:11:02 +00:00
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__debug.html#ga1379fe3590594def45a6a6c7a4faa41b">STACK_FILL_VALUE</a>&nbsp;&nbsp;&nbsp;0x55</td></tr>
2010-11-22 05:53:37 +00:00
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Fill value for thread stack area in debug mode. <a href="#ga1379fe3590594def45a6a6c7a4faa41b"></a><br/></td></tr>
2010-08-10 03:11:02 +00:00
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__debug.html#gad8d58eb160d991692ecc3bd4e04e0cbd">THREAD_FILL_VALUE</a>&nbsp;&nbsp;&nbsp;0xFF</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Fill value for thread area in debug mode. <a href="#gad8d58eb160d991692ecc3bd4e04e0cbd"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__debug.html#ga6bb6c0f97caab3a66332c8bfbf7a3844">chDbgCheck</a>(c, func)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Function parameter check. <a href="#ga6bb6c0f97caab3a66332c8bfbf7a3844"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__debug.html#ga43d50c69eb730d0f024eb832d61f30c9">chDbgAssert</a>(c, m, r)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Condition assertion. <a href="#ga43d50c69eb730d0f024eb832d61f30c9"></a><br/></td></tr>
2010-11-22 05:53:37 +00:00
<tr><td colspan="2"><h2><a name="func-members"></a>
Functions</h2></td></tr>
2010-08-10 03:11:02 +00:00
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__debug.html#ga5ef5d43e7c59f0ee9c490ea4e423c008">trace_init</a> (void)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Trace circular buffer subsystem initialization. <a href="#ga5ef5d43e7c59f0ee9c490ea4e423c008"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__debug.html#gac7f8f0653faf2e3a93108ff5333821b7">chDbgTrace</a> (<a class="el" href="struct_thread.html">Thread</a> *otp)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Inserts in the circular debug trace buffer a context switch record. <a href="#gac7f8f0653faf2e3a93108ff5333821b7"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__debug.html#ga3cfb02183cd13f939b9b666810511157">chDbgPanic</a> (char *msg)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Prints a panic message on the console and then halts the system. <a href="#ga3cfb02183cd13f939b9b666810511157"></a><br/></td></tr>
2010-11-22 05:53:37 +00:00
<tr><td colspan="2"><h2><a name="var-members"></a>
Variables</h2></td></tr>
2010-08-10 03:11:02 +00:00
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="struct_trace_buffer.html">TraceBuffer</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__debug.html#ga8293a8dffdb533372e469fafd5a12f21">trace_buffer</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Public trace buffer. <a href="#ga8293a8dffdb533372e469fafd5a12f21"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__debug.html#ga218d35701e90bead41b249f80f58aac4">panic_msg</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Pointer to the panic message. <a href="#ga218d35701e90bead41b249f80f58aac4"></a><br/></td></tr>
</table>
<hr/><h2>Define Documentation</h2>
2010-11-22 05:53:37 +00:00
<a class="anchor" id="ga85f9a678e5f44d97a8a21adab8c065b7"></a><!-- doxytag: member="chdebug.h::TRACE_BUFFER_SIZE" ref="ga85f9a678e5f44d97a8a21adab8c065b7" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define TRACE_BUFFER_SIZE&nbsp;&nbsp;&nbsp;64</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Trace buffer entries. </p>
<p>Definition at line <a class="el" href="chdebug_8h_source.html#l00042">42</a> of file <a class="el" href="chdebug_8h_source.html">chdebug.h</a>.</p>
<p>Referenced by <a class="el" href="group__debug.html#gac7f8f0653faf2e3a93108ff5333821b7">chDbgTrace()</a>.</p>
</div>
</div>
2010-08-10 03:11:02 +00:00
<a class="anchor" id="ga1379fe3590594def45a6a6c7a4faa41b"></a><!-- doxytag: member="chdebug.h::STACK_FILL_VALUE" ref="ga1379fe3590594def45a6a6c7a4faa41b" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define STACK_FILL_VALUE&nbsp;&nbsp;&nbsp;0x55</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Fill value for thread stack area in debug mode. </p>
<p>Definition at line <a class="el" href="chdebug_8h_source.html#l00049">49</a> of file <a class="el" href="chdebug_8h_source.html">chdebug.h</a>.</p>
2010-11-22 05:53:37 +00:00
<p>Referenced by <a class="el" href="group__threads.html#ga50b84e3e82a4e09c1066e1d422e4c780">chThdCreateFromHeap()</a>, <a class="el" href="group__threads.html#gad3ccc1a6f054c543258ed2fe97ed2f58">chThdCreateFromMemoryPool()</a>, and <a class="el" href="group__threads.html#ga048e588238dd336c6059133b3d0c3435">chThdCreateStatic()</a>.</p>
2010-08-10 03:11:02 +00:00
</div>
</div>
<a class="anchor" id="gad8d58eb160d991692ecc3bd4e04e0cbd"></a><!-- doxytag: member="chdebug.h::THREAD_FILL_VALUE" ref="gad8d58eb160d991692ecc3bd4e04e0cbd" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define THREAD_FILL_VALUE&nbsp;&nbsp;&nbsp;0xFF</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Fill value for thread area in debug mode. </p>
<dl class="note"><dt><b>Note:</b></dt><dd>The chosen default value is 0xFF in order to make evident which thread fields were not initialized when inspecting the memory with a debugger. A uninitialized field is not an error in itself but it better to know it. </dd></dl>
<p>Definition at line <a class="el" href="chdebug_8h_source.html#l00060">60</a> of file <a class="el" href="chdebug_8h_source.html">chdebug.h</a>.</p>
2010-11-22 05:53:37 +00:00
<p>Referenced by <a class="el" href="group__threads.html#ga50b84e3e82a4e09c1066e1d422e4c780">chThdCreateFromHeap()</a>, <a class="el" href="group__threads.html#gad3ccc1a6f054c543258ed2fe97ed2f58">chThdCreateFromMemoryPool()</a>, and <a class="el" href="group__threads.html#ga048e588238dd336c6059133b3d0c3435">chThdCreateStatic()</a>.</p>
2010-08-10 03:11:02 +00:00
</div>
</div>
<a class="anchor" id="ga6bb6c0f97caab3a66332c8bfbf7a3844"></a><!-- doxytag: member="chdebug.h::chDbgCheck" ref="ga6bb6c0f97caab3a66332c8bfbf7a3844" args="(c, func)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define chDbgCheck</td>
<td>(</td>
2010-11-22 05:53:37 +00:00
<td class="paramtype">&nbsp;</td>
<td class="paramname">c, </td>
2010-08-10 03:11:02 +00:00
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
2010-11-22 05:53:37 +00:00
<td class="paramtype">&nbsp;</td>
<td class="paramname">func</td><td>&nbsp;</td>
</tr>
<tr>
2010-08-10 03:11:02 +00:00
<td></td>
2010-11-22 05:53:37 +00:00
<td>)</td>
<td></td><td></td><td></td>
2010-08-10 03:11:02 +00:00
</tr>
</table>
</div>
<div class="memdoc">
<b>Value:</b><div class="fragment"><pre class="fragment">{ \
<span class="keywordflow">if</span> (!(c)) \
<a class="code" href="group__debug.html#ga3cfb02183cd13f939b9b666810511157" title="Prints a panic message on the console and then halts the system.">chDbgPanic</a>(__QUOTE_THIS(func)<span class="stringliteral">&quot;(), line &quot;</span>__QUOTE_THIS(__LINE__)); \
}
</pre></div>
<p>Function parameter check. </p>
<p>If the condition check fails then the kernel panics and halts. </p>
<dl class="note"><dt><b>Note:</b></dt><dd>The condition is tested only if the <code>CH_DBG_ENABLE_CHECKS</code> switch is specified in <code><a class="el" href="chconf_8h.html" title="Configuration file template.">chconf.h</a></code> else the macro does nothing.</dd></dl>
<dl><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>c</em>&nbsp;</td><td>the condition to be verified to be true </td></tr>
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>func</em>&nbsp;</td><td>the undecorated function name </td></tr>
</table>
</dd>
</dl>
<p>Definition at line <a class="el" href="chdebug_8h_source.html#l00102">102</a> of file <a class="el" href="chdebug_8h_source.html">chdebug.h</a>.</p>
2010-11-22 05:53:37 +00:00
<p>Referenced by <a class="el" href="group___a_d_c.html#ga92f8b4434b8199323b1469e0479de7f8">adcStart()</a>, <a class="el" href="group___a_d_c.html#gadb9905e3fcd0f053ca1e07e9686bf641">adcStartConversion()</a>, <a class="el" href="group___a_d_c.html#ga3caf934a28b65e6a5eda3e882ca06845">adcStop()</a>, <a class="el" href="group___a_d_c.html#gabce14d8f240e85715cded02c85b6585a">adcStopConversion()</a>, <a class="el" href="group___c_a_n.html#ga557d845167f6ab4f224b036860411db5">canReceive()</a>, <a class="el" href="group___c_a_n.html#ga97caf4f277c09588c225ea2328a74cba">canSleep()</a>, <a class="el" href="group___c_a_n.html#ga05d2448864b2cae4674ed7e6f3c576b8">canStart()</a>, <a class="el" href="group___c_a_n.html#ga4e89a7d246119e077d27431a02586133">canStop()</a>, <a class="el" href="group___c_a_n.html#gad9c686d19b4319ef586af3631b779c6c">canTransmit()</a>, <a class="el" href="group___c_a_n.html#ga09737d4ae5be724bf791a309e8a28dff">canWakeup()</a>, <a class="el" href="group__condvars.html#ga5cf1f4697985d81ee089b042391df6fc">chCondBroadcastI()</a>, <a class="el" href="group__condvars.html#ga4c698ba6ce06089c08f989e126af9873">chCondInit()</a>, <a class="el" href="group__condvars.html#gadddadb68e2a2ce061c7df0d647da9996">chCondSignal()</a>, <a class="el" href="group__condvars.html#ga7b9d882c348124fed46a1afc3db6c02c">chCondSignalI()</a>, <a class="el" href="group__condvars.html#gab6357d80b01ed8d225ef1e30a66248f9">chCondWaitS()</a>, <a class="el" href="group__condvars.html#ga9cf6ebe4c9f28cb206fab14984a18d29">chCondWaitTimeoutS()</a>, <a class="el" href="group__events.html#gaa24d9bed5b676b577200c4a8ebe3b8a3">chEvtBroadcastI()</a>, <a class="el" href="group__events.html#gaba2061f315848a8a722efcae258edc8c">chEvtDispatch()</a>, <a class="el" href="group__events.html#ga4002600fe552128aaf96a6a1d3ada3ee">chEvtRegisterMask()</a>, <a class="el" href="group__events.html#ga75a812ae99ce83a3689f51d797a038de">chEvtSignal()</a>, <a class="el" href="group__events.html#ga6c219038c3e618e2142c6e1601997907">chEvtSignalI()</a>, <a class="el" href="group__events.html#ga68d15e1c7e12e96edd40069a27981d38">chEvtUnregister()</a>, <a class="el" href="group__heaps.html#ga0fc553df0138f02e0b233be91e413c79">chHeapFree()</a>, <a class="el" href="group__heaps.html#ga7135c9ddbd1402a4a36ce44df948f4e4">chHeapInit()</a>, <a class="el" href="group__io__queues.html#gaddf6fc39af7d905c9f23afde14d8d764">chIQReadTimeout()</a>, <a class="el" href="group__mailboxes.html#gadc562242a8854497a1f9539cb9ffea09">chMBFetchS()</a>, <a class="el" href="group__mailboxes.html#gaff65b97bfdbf9144e9727a100a9be93a">chMBInit()</a>, <a class="el" href="group__mailboxes.html#gaa9c91c0b781bec0df3540407d75b1bb3">chMBPostAheadS()</a>, <a class="el" href="group__mailboxes.html#gac6514c185ae87c2633132478ea48d689">chMBPostS()</a>, <a class="el" href="group__mailboxes.html#ga4199e224456395c3dbc74dbc889dff94">chMBReset()</a>, <a class="el" href="group__messages.html#ga29a48a438e97dc47cb798a84e13764cb">chMsgSend()</a>, <a class="el" href="group__mutexes.html#gac55fe4d05aa6bbeb31594193d2e4d2b6">chMtxInit()</a>, <a class="el" href="group__mutexes.html#ga2d6350c2d147d1165c359f30798205f5">chMtxLockS()</a>, <a class="el" href="group__mutexes.html#gadbf0bd4a36b1f7e33ee41939df32ab78">chMtxTryLockS()</a>, <a class="el" href="group__io__queues.html#ga1e90d41fa021107d72b1bed81186aae8">chOQWriteTimeout()</a>, <a class="el" href="group__pools.html#ga152fb3460d6b7426f0b6803bb38a0070">chPoolAllocI()</a>, <a class="el" href="group__pools.html#gab5c6c04fd14fbeee2183ca955371c515">chPoolFreeI()</a>, <a class="el" href="group__pools.html#ga9c53c25a5ae60930534cde8620775781">chPoolInit()</a>, <a class="el" href="group__semaphores.html#gafe8fc6155a871074e8017efd908b2c58">chSemInit()</a>, <a class="el" href="group__semaphores.html#gae7972b6b22b80ac09bac5a186277ab81">chSemResetI()</a>, <a class="el" href="group__semaphores.html#ga7ec0cbda23e49e2370e0b91f20baf05e">chSemSignal()</a>, <a class="el" href="group__semaphores.html#gaca0b70cf495a9cb7569e1cf5b07e2b3d">chSemSignalI()</a>, <a class="el" href="group__semaphores.html#ga0dc7b4339506
2010-08-10 03:11:02 +00:00
</div>
</div>
<a class="anchor" id="ga43d50c69eb730d0f024eb832d61f30c9"></a><!-- doxytag: member="chdebug.h::chDbgAssert" ref="ga43d50c69eb730d0f024eb832d61f30c9" args="(c, m, r)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define chDbgAssert</td>
<td>(</td>
2010-11-22 05:53:37 +00:00
<td class="paramtype">&nbsp;</td>
<td class="paramname">c, </td>
2010-08-10 03:11:02 +00:00
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
2010-11-22 05:53:37 +00:00
<td class="paramtype">&nbsp;</td>
<td class="paramname">m, </td>
2010-08-10 03:11:02 +00:00
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
2010-11-22 05:53:37 +00:00
<td class="paramtype">&nbsp;</td>
<td class="paramname">r</td><td>&nbsp;</td>
</tr>
<tr>
2010-08-10 03:11:02 +00:00
<td></td>
2010-11-22 05:53:37 +00:00
<td>)</td>
<td></td><td></td><td></td>
2010-08-10 03:11:02 +00:00
</tr>
</table>
</div>
<div class="memdoc">
<b>Value:</b><div class="fragment"><pre class="fragment">{ \
<span class="keywordflow">if</span> (!(c)) \
<a class="code" href="group__debug.html#ga3cfb02183cd13f939b9b666810511157" title="Prints a panic message on the console and then halts the system.">chDbgPanic</a>(m); \
}
</pre></div>
<p>Condition assertion. </p>
<p>If the condition check fails then the kernel panics with the specified message and halts. </p>
<dl class="note"><dt><b>Note:</b></dt><dd>The condition is tested only if the <code>CH_DBG_ENABLE_ASSERTS</code> switch is specified in <code><a class="el" href="chconf_8h.html" title="Configuration file template.">chconf.h</a></code> else the macro does nothing. </dd>
<dd>
The convention for the message is the following:<br/>
&lt;function_name&gt;(), #&lt;assert_number&gt; </dd>
<dd>
The remark string is not currently used except for putting a comment in the code about the assertion.</dd></dl>
<dl><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>c</em>&nbsp;</td><td>the condition to be verified to be true </td></tr>
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>m</em>&nbsp;</td><td>the text message </td></tr>
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>r</em>&nbsp;</td><td>a remark string </td></tr>
</table>
</dd>
</dl>
<p>Definition at line <a class="el" href="chdebug_8h_source.html#l00128">128</a> of file <a class="el" href="chdebug_8h_source.html">chdebug.h</a>.</p>
<p>Referenced by <a class="el" href="group___a_d_c.html#ga92f8b4434b8199323b1469e0479de7f8">adcStart()</a>, <a class="el" href="group___a_d_c.html#gadb9905e3fcd0f053ca1e07e9686bf641">adcStartConversion()</a>, <a class="el" href="group___a_d_c.html#ga3caf934a28b65e6a5eda3e882ca06845">adcStop()</a>, <a class="el" href="group___a_d_c.html#gabce14d8f240e85715cded02c85b6585a">adcStopConversion()</a>, <a class="el" href="group___a_d_c.html#ga026ac46dfe36031ab177e35f3aff5b09">adcWaitConversion()</a>, <a class="el" href="group___c_a_n.html#ga557d845167f6ab4f224b036860411db5">canReceive()</a>, <a class="el" href="group___c_a_n.html#ga97caf4f277c09588c225ea2328a74cba">canSleep()</a>, <a class="el" href="group___c_a_n.html#ga05d2448864b2cae4674ed7e6f3c576b8">canStart()</a>, <a class="el" href="group___c_a_n.html#ga4e89a7d246119e077d27431a02586133">canStop()</a>, <a class="el" href="group___c_a_n.html#gad9c686d19b4319ef586af3631b779c6c">canTransmit()</a>, <a class="el" href="group___c_a_n.html#ga09737d4ae5be724bf791a309e8a28dff">canWakeup()</a>, <a class="el" href="group__condvars.html#gab6357d80b01ed8d225ef1e30a66248f9">chCondWaitS()</a>, <a class="el" href="group__condvars.html#ga9cf6ebe4c9f28cb206fab14984a18d29">chCondWaitTimeoutS()</a>, <a class="el" href="group__events.html#gaba2061f315848a8a722efcae258edc8c">chEvtDispatch()</a>, <a class="el" href="group__heaps.html#ga0fc553df0138f02e0b233be91e413c79">chHeapFree()</a>, <a class="el" href="group__messages.html#ga19a54b3b4b0e3677c47d650a3be3c7aa">chMsgRelease()</a>, <a class="el" href="group__mutexes.html#ga2d6350c2d147d1165c359f30798205f5">chMtxLockS()</a>, <a class="el" href="group__mutexes.html#gae9ae07165126c9f6c0ce0b17bdb53669">chMtxUnlock()</a>, <a class="el" href="group__mutexes.html#ga705fa60fb8aa28a6632f693e83f78c96">chMtxUnlockS()</a>, <a class="el" href="group__registry.html#gaefff43a49fb7888a596319d67cf01dab">chRegNextThread()</a>, <a class="el" href="group__threads.html#gabefc5734beaf29ae0bcd52cd41744930">chThdAddRef()</a>, <a class="el" href="group__threads.html#gaa22f80040cf192015be4607f31a0ac80">chThdRelease()</a>, <a class="el" href="group__threads.html#ga2c1ce2be73cd177af7e577b282232a7d">chThdResume()</a>, <a class="el" href="group__threads.html#ga94a5727ecdbe0f738dfc8e1ede1c3409">chThdWait()</a>, <a class="el" href="group__time.html#ga680d851a74e594cc965101e79891840f">chVTResetI()</a>, <a class="el" href="group___m_m_c___s_p_i.html#ga9ff4f12fa759c3cb4aca2b64b11f1d22">mmcConnect()</a>, <a class="el" href="group___m_m_c___s_p_i.html#gab90f252316351a93ec38b11f7eaf1f16">mmcDisconnect()</a>, <a class="el" href="group___m_m_c___s_p_i.html#ga076506461b42641a9fe632cc3e72dab5">mmcStart()</a>, <a class="el" href="group___m_m_c___s_p_i.html#ga27833cde77794f914e4802c7e65281a5">mmcStop()</a>, <a class="el" href="group___p_w_m.html#gac2679d11833a4ea9df5a9ed2e4a2c2e7">pwmDisableChannel()</a>, <a class="el" href="group___p_w_m.html#gafd6c45693467da77ab13edca8420620d">pwmEnableChannel()</a>, <a class="el" href="group___p_w_m.html#ga9c14dc1b026c78809440281786aceda3">pwmStart()</a>, <a class="el" href="group___p_w_m.html#ga8a4d0d8a47883efe286a332cade14080">pwmStop()</a>, <a class="el" href="group___s_e_r_i_a_l.html#ga5e77658b4f3b559927705dc8fbfbdfad">sdStart()</a>, <a class="el" href="group___s_e_r_i_a_l.html#gacb106a30f8007afdf9eeaf8681dbd3cf">sdStop()</a>, <a class="el" href="group___s_p_i.html#gaf1c59f3fd2f85620a5253c23d9586095">spiExchange()</a>, <a class="el" href="group___s_p_i.html#ga43889a7d4c473f653596f8c0acafce2a">spiIgnore()</a>, <a class="el" href="group___s_p_i.html#gadd99ad823b391dde114f04dedafe5e80">spiReceive()</a>, <a class="el" href="group___s_p_i.html#ga00809152c869db80192aa3e04266a99a">spiSelect()</a>, <a class="el" href="group___s_p_i.html#ga382cfbdffd2df57cf3843d45164e8bfc">spiSend()</a>, <a class="el" href="group___s_p_i.html#ga6752c9f736f8de774a5bef6dfe2aae2e">spiStart()</a>, <a class="el" href="group___s_p_i.html#gad3a359eea03e68e95899886ae93a06e4">spiStop()</a>, and <a class="el" href="group___s_p_i.html#gae291c012872da9c89dec23581f701b5f">spiUnselect(
</div>
</div>
<hr/><h2>Function Documentation</h2>
<a class="anchor" id="ga5ef5d43e7c59f0ee9c490ea4e423c008"></a><!-- doxytag: member="chdebug.c::trace_init" ref="ga5ef5d43e7c59f0ee9c490ea4e423c008" args="(void)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void trace_init </td>
<td>(</td>
<td class="paramtype">void&nbsp;</td>
<td class="paramname"></td>
<td>&nbsp;)&nbsp;</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Trace circular buffer subsystem initialization. </p>
<p>Definition at line <a class="el" href="chdebug_8c_source.html#l00051">51</a> of file <a class="el" href="chdebug_8c_source.html">chdebug.c</a>.</p>
<p>References <a class="el" href="struct_trace_buffer.html#a3e5f6e61398a217126933b092afd1cea">TraceBuffer::tb_buffer</a>, <a class="el" href="struct_trace_buffer.html#a647a0c08bf641558f87ca690fd933097">TraceBuffer::tb_ptr</a>, and <a class="el" href="struct_trace_buffer.html#aca809b9d6e80fb01c98e67f25f53aa37">TraceBuffer::tb_size</a>.</p>
<p>Referenced by <a class="el" href="group__system.html#gafe2c7de6567e98e487e009e81e3be10b">chSysInit()</a>.</p>
</div>
</div>
<a class="anchor" id="gac7f8f0653faf2e3a93108ff5333821b7"></a><!-- doxytag: member="chdebug.c::chDbgTrace" ref="gac7f8f0653faf2e3a93108ff5333821b7" args="(Thread *otp)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void chDbgTrace </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_thread.html">Thread</a> *&nbsp;</td>
<td class="paramname"> <em>otp</em></td>
<td>&nbsp;)&nbsp;</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Inserts in the circular debug trace buffer a context switch record. </p>
<dl><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>otp</em>&nbsp;</td><td>the thread being switched out </td></tr>
</table>
</dd>
</dl>
<p>Definition at line <a class="el" href="chdebug_8c_source.html#l00062">62</a> of file <a class="el" href="chdebug_8c_source.html">chdebug.c</a>.</p>
2010-11-22 05:53:37 +00:00
<p>References <a class="el" href="group__time.html#ga137c8f67c450f34416a786d169be90e2">chTimeNow</a>, <a class="el" href="struct_ctx_swc_event.html#a83d48714c7e96b1bb4f8756ea5cbaf56">CtxSwcEvent::cse_state</a>, <a class="el" href="struct_ctx_swc_event.html#ad982bde0268f45b772c07d993de65a41">CtxSwcEvent::cse_tid</a>, <a class="el" href="struct_ctx_swc_event.html#a463c08b6776d7337d18b1965243abfc9">CtxSwcEvent::cse_time</a>, <a class="el" href="struct_ctx_swc_event.html#ac28fce73613158bf501382c110c4a0fa">CtxSwcEvent::cse_wtobjp</a>, <a class="el" href="group__scheduler.html#ga1a5fddde56420e8accd0c09c1abb32a7">currp</a>, <a class="el" href="struct_thread.html#a3c3e9d6abccb62c3a5fab6ef043a391f">Thread::p_state</a>, <a class="el" href="struct_thread.html#a72cd0424b6098ca241fac1f74d21b56a">Thread::p_u</a>, <a class="el" href="struct_trace_buffer.html#a3e5f6e61398a217126933b092afd1cea">TraceBuffer::tb_buffer</a>, <a class="el" href="struct_trace_buffer.html#a647a0c08bf641558f87ca690fd933097">TraceBuffer::tb_ptr</a>, <a class="el" href="group__debug.html#ga85f9a678e5f44d97a8a21adab8c065b7">TRACE_BUFFER_SIZE</a>, and <a class="el" href="struct_thread.html#a4f016b01444741e6f9b420436b748862">Thread::wtobjp</a>.</p>
2010-08-10 03:11:02 +00:00
<p>Referenced by <a class="el" href="group__scheduler.html#ga0257cf203e72a766a52059750cb97e6e">chSchDoRescheduleI()</a>, <a class="el" href="group__scheduler.html#ga97c1c514b755a1e71caf2f19c1ccf986">chSchGoSleepS()</a>, and <a class="el" href="group__scheduler.html#gae47a8819a21ef2d521124e76bfb37c95">chSchWakeupS()</a>.</p>
</div>
</div>
<a class="anchor" id="ga3cfb02183cd13f939b9b666810511157"></a><!-- doxytag: member="chdebug.c::chDbgPanic" ref="ga3cfb02183cd13f939b9b666810511157" args="(char *msg)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void chDbgPanic </td>
<td>(</td>
<td class="paramtype">char *&nbsp;</td>
<td class="paramname"> <em>msg</em></td>
<td>&nbsp;)&nbsp;</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Prints a panic message on the console and then halts the system. </p>
<dl><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>msg</em>&nbsp;</td><td>the pointer to the panic message string </td></tr>
</table>
</dd>
</dl>
<p>Definition at line <a class="el" href="chdebug_8c_source.html#l00087">87</a> of file <a class="el" href="chdebug_8c_source.html">chdebug.c</a>.</p>
<p>References <a class="el" href="group__system.html#gad43b78f160a2c983792af3041cc4a536">chSysHalt</a>, and <a class="el" href="group__debug.html#ga218d35701e90bead41b249f80f58aac4">panic_msg</a>.</p>
</div>
</div>
<hr/><h2>Variable Documentation</h2>
<a class="anchor" id="ga8293a8dffdb533372e469fafd5a12f21"></a><!-- doxytag: member="chdebug.c::trace_buffer" ref="ga8293a8dffdb533372e469fafd5a12f21" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="struct_trace_buffer.html">TraceBuffer</a> <a class="el" href="group__debug.html#ga8293a8dffdb533372e469fafd5a12f21">trace_buffer</a></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Public trace buffer. </p>
<p>Definition at line <a class="el" href="chdebug_8c_source.html#l00046">46</a> of file <a class="el" href="chdebug_8c_source.html">chdebug.c</a>.</p>
</div>
</div>
<a class="anchor" id="ga218d35701e90bead41b249f80f58aac4"></a><!-- doxytag: member="chdebug.c::panic_msg" ref="ga218d35701e90bead41b249f80f58aac4" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">char* <a class="el" href="group__debug.html#ga218d35701e90bead41b249f80f58aac4">panic_msg</a></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Pointer to the panic message. </p>
<p>This pointer is meant to be accessed through the debugger, it is written once and then the system is halted. This variable can be set to <code>NULL</code> if the halt is caused by a stack overflow. </p>
<p>Definition at line <a class="el" href="chdebug_8c_source.html#l00080">80</a> of file <a class="el" href="chdebug_8c_source.html">chdebug.c</a>.</p>
<p>Referenced by <a class="el" href="group__debug.html#ga3cfb02183cd13f939b9b666810511157">chDbgPanic()</a>.</p>
</div>
</div>
</div>
<hr size="1"><address style="text-align: right;"><small>
2010-11-22 05:53:37 +00:00
Generated on Sun Oct 24 2010 09:40:46 for ChibiOS/RT by&nbsp;<a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.7.1</small></address>
2010-08-10 03:11:02 +00:00
</body>
</html>