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 Page< / span > < / a > < / li >
< li > < a href = "modules.html" > < span > Modules< / span > < / a > < / li >
< li > < a href = "annotated.html" > < span > Data 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 > |
< a href = "#define-members" > Defines< / a > |
< a href = "#func-members" > Functions< / a > |
< 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 < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "struct_ctx_swc_event.html" > CtxSwcEvent< / a > < / td > < / tr >
< tr > < td class = "mdescLeft" > < / 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 < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "struct_trace_buffer.html" > TraceBuffer< / a > < / td > < / tr >
< tr > < td class = "mdescLeft" > < / 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 < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "group__debug.html#ga85f9a678e5f44d97a8a21adab8c065b7" > TRACE_BUFFER_SIZE< / a > 64< / td > < / tr >
< tr > < td class = "mdescLeft" > < / 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 < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "group__debug.html#ga1379fe3590594def45a6a6c7a4faa41b" > STACK_FILL_VALUE< / a > 0x55< / td > < / tr >
2010-11-22 05:53:37 +00:00
< tr > < td class = "mdescLeft" > < / 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 < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "group__debug.html#gad8d58eb160d991692ecc3bd4e04e0cbd" > THREAD_FILL_VALUE< / a > 0xFF< / td > < / tr >
< tr > < td class = "mdescLeft" > < / 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 < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "group__debug.html#ga6bb6c0f97caab3a66332c8bfbf7a3844" > chDbgCheck< / a > (c, func)< / td > < / tr >
< tr > < td class = "mdescLeft" > < / td > < td class = "mdescRight" > Function parameter check. < a href = "#ga6bb6c0f97caab3a66332c8bfbf7a3844" > < / a > < br / > < / td > < / tr >
< tr > < td class = "memItemLeft" align = "right" valign = "top" > #define < / 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" > < / 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 < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "group__debug.html#ga5ef5d43e7c59f0ee9c490ea4e423c008" > trace_init< / a > (void)< / td > < / tr >
< tr > < td class = "mdescLeft" > < / 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 < / 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" > < / 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 < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "group__debug.html#ga3cfb02183cd13f939b9b666810511157" > chDbgPanic< / a > (char *msg)< / td > < / tr >
< tr > < td class = "mdescLeft" > < / 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 > < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "group__debug.html#ga8293a8dffdb533372e469fafd5a12f21" > trace_buffer< / a > < / td > < / tr >
< tr > < td class = "mdescLeft" > < / td > < td class = "mdescRight" > Public trace buffer. < a href = "#ga8293a8dffdb533372e469fafd5a12f21" > < / a > < br / > < / td > < / tr >
< tr > < td class = "memItemLeft" align = "right" valign = "top" > char * < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "group__debug.html#ga218d35701e90bead41b249f80f58aac4" > panic_msg< / a > < / td > < / tr >
< tr > < td class = "mdescLeft" > < / 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 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 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 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" > < / 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" > < / td >
< td class = "paramname" > func< / td > < td > < / 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" > " (), line " < / 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 > < / td > < td valign = "top" > < em > c< / em > < / td > < td > the condition to be verified to be true < / td > < / tr >
< tr > < td valign = "top" > < tt > [in]< / tt > < / td > < td valign = "top" > < em > func< / em > < / 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" > < / 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" > < / 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" > < / td >
< td class = "paramname" > r< / td > < td > < / 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 / >
< function_name> (), #< assert_number> < / 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 > < / td > < td valign = "top" > < em > c< / em > < / td > < td > the condition to be verified to be true < / td > < / tr >
< tr > < td valign = "top" > < tt > [in]< / tt > < / td > < td valign = "top" > < em > m< / em > < / td > < td > the text message < / td > < / tr >
< tr > < td valign = "top" > < tt > [in]< / tt > < / td > < td valign = "top" > < em > r< / em > < / 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 < / td >
< td class = "paramname" > < / td >
< td > ) < / 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 > * < / td >
< td class = "paramname" > < em > otp< / em > < / td >
< td > ) < / 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 > < / td > < td valign = "top" > < em > otp< / em > < / 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 * < / td >
< td class = "paramname" > < em > msg< / em > < / td >
< td > ) < / 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 > < / td > < td valign = "top" > < em > msg< / em > < / 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-30 04:54:43 +00:00
Generated on Sun Nov 28 2010 14:09:56 for ChibiOS/RT by < 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 >