1 <?xml version="1.0" encoding="utf-8"?>
2 <component_viewer schemaVersion="0.1" xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="Component_Viewer.xsd">
3 <component name="FreeRTOS" version="9.0.0"/>
6 <typedef name="ListItem_t" size="20" info="List object definition (list.h)">
7 <!-- Excluded integrity check value -->
8 <member name="xItemValue" type="uint32_t" offset="0"/>
9 <member name="pxNext" type="*ListItem_t" offset="4"/>
10 <member name="pxPrevious" type="*ListItem_t" offset="8"/>
11 <member name="pvOwner" type="uint32_t" offset="12"/>
12 <member name="pvContainer" type="uint32_t" offset="16"/>
13 <!-- Excluded integrity check value -->
16 <typedef name="List_t" size="20" info="List definition (list.h)">
17 <!-- Excluded integrity check value -->
18 <member name="uxNumberOfItems" type="uint32_t" offset="0"/>
19 <member name="pxIndex" type="*ListItem_t" offset="4"/>
20 <!-- Inlined "MiniListItem_t" structure -->
21 <member name="xListEnd_xItemValue" type="*ListItem_t" offset="8+0"/>
22 <member name="xListEnd_pxNext" type="*ListItem_t" offset="8+4"/>
23 <member name="xListEnd_pxPrevious" type="*ListItem_t" offset="8+8"/>
24 <!-- Excluded integrity check value -->
27 <typedef name="Queue_t" size="20" info="Queue definition (queue.c)">
28 <member name="pcHead" type="uint32_t" offset="0" info="(type is *int32_t)"/>
29 <member name="pcTail" type="uint32_t" offset="4" info="(type is *int32_t)"/>
30 <member name="pcWriteTo" type="uint32_t" offset="8" info="(type is *int32_t)"/>
32 <member name="u_pcReadFrom" type="uint32_t" offset="12" info="(type is *int32_t)"/>
33 <member name="u_uxRecursiveCallCount" type="uint32_t" offset="12"/>
34 <!-- Inlined "List_t" structure -->
35 <member name="xTasksWaitingToSend_uxNumberOfItems" type="uint32_t" offset="16+0"/>
36 <member name="xTasksWaitingToSend_pxIndex" type="*ListItem_t" offset="16+4"/>
37 <member name="xTasksWaitingToSend_xListEnd_xItemValue" type="*ListItem_t" offset="16+8"/>
38 <member name="xTasksWaitingToSend_xListEnd_pxNext" type="*ListItem_t" offset="16+12"/>
39 <member name="xTasksWaitingToSend_xListEnd_pxPrevious" type="*ListItem_t" offset="16+16"/>
40 <!-- Inlined "List_t" structure -->
41 <member name="xTasksWaitingToReceive_uxNumberOfItems" type="uint32_t" offset="32+0"/>
42 <member name="xTasksWaitingToReceive_pxIndex" type="*ListItem_t" offset="32+4"/>
43 <member name="xTasksWaitingToReceive_xListEnd_xItemValue" type="*ListItem_t" offset="32+8"/>
44 <member name="xTasksWaitingToReceive_xListEnd_pxNext" type="*ListItem_t" offset="32+12"/>
45 <member name="xTasksWaitingToReceive_xListEnd_pxPrevious" type="*ListItem_t" offset="32+16"/>
47 <member name="uxMessagesWaiting" type="uint32_t" offset="52"/>
48 <member name="uxLength" type="uint32_t" offset="56"/>
49 <member name="uxItemSize" type="uint32_t" offset="60"/>
50 <member name="cRxLock" type="int32_t" offset="64"/>
51 <member name="cTxLock" type="int32_t" offset="68"/>
53 <!-- #if((configSUPPORT_STATIC_ALLOCATION == 1) && (configSUPPORT_DYNAMIC_ALLOCATION == 1)) -->
54 <!-- <member name="ucStaticallyAllocated" type="uint8_t" offset="72"/> -->
56 <!-- #if (configUSE_QUEUE_SETS == 1) -->
57 <!-- <member name="pxQueueSetContainer" type="uint32_t" offset="76"/> -->
59 <!-- #if (configUSE_TRACE_FACILITY == 1) -->
60 <!-- <member name="uxQueueNumber" type="uint32_t" offset="80"/> -->
61 <!-- <member name="uxQueueType" type="uint8_t" offset="84"/> -->
65 <typedef name="QueueRegistryItem_t" size="8">
66 <member name="pcQueueName" type="uint32_t" offset="0" info="(type is const char *)"/>
67 <member name="xHandle" type="uint32_t" offset="4" info="(type is QueueHandle_t)"/>
71 <typedef name="TCB_t" size="128" info="Task Control Block definition (tasks.c)">
72 <member name="pxTopOfStack" type="uint32_t" offset="0" info="Location of the last item placed on the tasks stack (type is StackType_t *)"/>
73 <!-- Inlined "ListItem_t" structure -->
74 <member name="xStateListItem_xItemValue" type="uint32_t" offset="4+0" info=""/>
75 <member name="xStateListItem_pxNext" type="*ListItem_t" offset="4+4" info=""/>
76 <member name="xStateListItem_pxPrevious" type="*ListItem_t" offset="4+8" info=""/>
77 <member name="xStateListItem_pvOwner" type="uint32_t" offset="4+12" info=""/>
78 <member name="xStateListItem_pvContainer" type="uint32_t" offset="4+16" info=""/>
79 <!-- Inlined "ListItem_t" structure -->
80 <member name="xEventListItem_xItemValue" type="uint32_t" offset="24+0" info=""/>
81 <member name="xEventListItem_pxNext" type="*ListItem_t" offset="24+4" info=""/>
82 <member name="xEventListItem_pxPrevious" type="*ListItem_t" offset="24+8" info=""/>
83 <member name="xEventListItem_pvOwner" type="uint32_t" offset="24+12" info=""/>
84 <member name="xEventListItem_pvContainer" type="uint32_t" offset="24+16" info=""/>
86 <member name="uxPriority" type="uint32_t" offset="44" info=""/>
87 <member name="pxStack" type="uint32_t" offset="48" info=""/>
88 <member name="pcTaskName" type="uint8_t" size="16" offset="52" info="Task name (size is defined by configMAX_TASK_NAME_LEN)"/>
90 <!-- #if(portCRITICAL_NESTING_IN_TCB == 1) -->
91 <!-- <member name="uxCriticalNesting" type="uint32_t" info=""/> -->
94 <!-- #if(configUSE_TRACE_FACILITY == 1) -->
95 <!-- <member name="uxTCBNumber" type="uint32_t" offset="68" info=""/> -->
96 <!-- <member name="uxTaskNumber" type="uint32_t" offset="72" info=""/> -->
99 <!-- #if(configUSE_MUTEXES == 1) -->
100 <!-- <member name="uxBasePriority" type="uint32_t" offset="74" info=""/> -->
101 <!-- <member name="uxMutexesHeld" type="uint32_t" offset="78" info=""/> -->
104 <!-- #if(configUSE_APPLICATION_TASK_TAG == 1) -->
105 <!-- <member name="pxTaskTag" type="uint32_t" info="(type is TaskHookFunction_t)"/> -->
108 <!-- #if(configNUM_THREAD_LOCAL_STORAGE_POINTERS > 0) -->
109 <!-- <member name="pvThreadLocalStoragePointers" type="uint32_t" size="10" info="(type is void *)"/> --> <!-- size="configNUM_THREAD_LOCAL_STORAGE_POINTERS" (size is defined by configNUM_THREAD_LOCAL_STORAGE_POINTERS) -->
112 <!-- #if(configGENERATE_RUN_TIME_STATS == 1) -->
113 <!-- <member name="ulRunTimeCounter" type="uint32_t" info=""/> -->
116 <!-- #if(configUSE_TASK_NOTIFICATIONS == 1) -->
117 <!-- <member name="ulNotifiedValue" type="uint32_t" offset="82" info=""/> -->
118 <!-- <member name="ucNotifyState" type="uint8_t" offset="86" info=""/> -->
121 <!-- #if(tskSTATIC_AND_DYNAMIC_ALLOCATION_POSSIBLE != 0) -->
122 <!-- <member name="ucStaticallyAllocated" type="uint8_t" offset="90" info=""/> -->
125 <!-- #if(INCLUDE_xTaskAbortDelay == 1) -->
126 <!-- <member name="ucDelayAborted" type="uint32_t" info=""/> -->
129 <var name="StackAvailable" type="uint32_t" info="Available stack (unused): current (in bytes)"/>
130 <var name="StackOverflow" type="uint32_t" info="Stack overflow flag"/>
133 <typedef name="Timer_t" size="45" info="Timer Control Block definition (timers.c)">
134 <member name="pcTimerName" type="uint32_t" offset="0" info="Timer name (type is const char *)."/>
135 <!-- Inlined "ListItem_t" structure -->
136 <member name="xTimerListItem_xItemValue" type="uint32_t" offset="4+0" info=""/>
137 <member name="xTimerListItem_pxNext" type="*ListItem_t" offset="4+4" info=""/>
138 <member name="xTimerListItem_pxPrevious" type="*ListItem_t" offset="4+8" info=""/>
139 <member name="xTimerListItem_pvOwner" type="uint32_t" offset="4+12" info=""/>
140 <member name="xTimerListItem_pvContainer" type="uint32_t" offset="4+16" info=""/>
142 <member name="xTimerPeriodInTicks" type="uint32_t" offset="24" info="How quickly and often the timer expires."/>
143 <member name="uxAutoReload" type="uint32_t" offset="28" info="Set to pdTRUE if the timer should be automatically restarted once expired."/>
144 <member name="pvTimerID" type="uint32_t" offset="32" info="An ID to identify the timer (type is void *)."/>
145 <member name="pxCallbackFunction" type="uint32_t" offset="36" info="The function that will be called when the timer expires."/>
147 <!-- #if(configUSE_TRACE_FACILITY == 1) -->
148 <!-- <member name="uxTimerNumber" type="uint32_t" offset="40" info="An ID assigned by trace tools such as FreeRTOS+Trace."/> -->
151 <!-- #if((configSUPPORT_STATIC_ALLOCATION == 1) && (configSUPPORT_DYNAMIC_ALLOCATION == 1)) -->
152 <!-- <member name="ucStaticallyAllocated" type="uint8_t" offset="44" info="Set to pdTRUE if the timer was created statically."/> -->
155 <var name="Name" type="uint8_t" info="Timer name string" size="64"/>
161 <object name="FreeRTOS Object">
162 <var name="i" type="uint32_t" value="0"/>
163 <var name="j" type="uint32_t" value="0"/>
164 <var name="sp" type="uint32_t" value="0"/>
166 <read name="xSchedulerRunning" type="uint32_t" symbol="tasks.c/xSchedulerRunning"/>
167 <read name="xTickCount" type="uint32_t" symbol="tasks.c/xTickCount"/>
168 <read name="xNumOfOverflows" type="uint32_t" symbol="tasks.c/xNumOfOverflows"/>
169 <read name="uxPendedTicks" type="uint32_t" symbol="tasks.c/uxPendedTicks"/>
170 <read name="pxCurrentTCB" type="uint32_t" symbol="tasks.c/pxCurrentTCB"/>
171 <read name="uxCurrentNumberOfTasks" type="uint32_t" symbol="tasks.c/uxCurrentNumberOfTasks"/>
173 <read name="xIdleTaskHandle" type="uint32_t" symbol="tasks.c/xIdleTaskHandle"/>
174 <read name="xTimerTaskHandle" type="uint32_t" symbol="timers.c/xTimerTaskHandle"/>
175 <read name="xTimerQueue" type="uint32_t" symbol="timers.c/xTimerQueue"/>
177 <!-- Running Task -->
178 <read name="Running_TCB" type="TCB_t" offset="pxCurrentTCB"/>
181 sp = __GetRegVal ("PSP");
183 Running_TCB.StackAvailable = sp - Running_TCB.pxStack;
184 Running_TCB.StackOverflow = (sp <= Running_TCB.pxStack);
189 <readlist name="pxReadyTasksLists" type="List_t" symbol="tasks.c/pxReadyTasksLists" count="__size_of("tasks.c/pxReadyTasksLists")" init="1"/>
191 <list name="i" start="0" limit="pxReadyTasksLists._count">
192 <readlist cond="pxReadyTasksLists[i].uxNumberOfItems" name="pxReadyTasks" type="ListItem_t" offset="pxReadyTasksLists[i].pxIndex" next="pxNext"/>
195 <list name="i" start="0" limit="pxReadyTasks._count">
196 <readlist cond="pxReadyTasks[i].pvOwner && !(xSchedulerRunning==1 && (pxReadyTasks[i].pvOwner == pxCurrentTCB))" name="Ready_TCB" type="TCB_t" offset="pxReadyTasks[i].pvOwner"/>
199 <!-- Process control blocks -->
200 <list name="i" start="0" limit="Ready_TCB._count">
202 sp = Ready_TCB[i].pxTopOfStack;
204 Ready_TCB[i].StackAvailable = sp - Ready_TCB[i].pxStack;
205 Ready_TCB[i].StackOverflow = (sp <= Ready_TCB[i].pxStack);
209 <!-- Pending Ready Tasks -->
210 <read name="xPendingReadyList" type="List_t" symbol="tasks.c/xPendingReadyList"/>
212 <readlist cond="uxCurrentNumberOfTasks && xPendingReadyList.uxNumberOfItems" name="pxPendingReadyTasks" type="ListItem_t" offset="xPendingReadyList.xListEnd_pxNext" next="pxNext"/>
214 <list name="i" start="0" limit="xPendingReadyList.uxNumberOfItems">
215 <readlist name="PendingReady_TCB" type="TCB_t" offset="pxPendingReadyTasks[i].pvOwner"/>
218 <!-- Process control blocks -->
219 <list name="i" start="0" limit="PendingReady_TCB._count">
221 sp = PendingReady_TCB[i].pxTopOfStack;
223 PendingReady_TCB[i].StackAvailable = sp - PendingReady_TCB[i].pxStack;
224 PendingReady_TCB[i].StackOverflow = (sp <= PendingReady_TCB[i].pxStack);
228 <!-- Delayed Tasks -->
229 <read name="DelayListAddr" type="uint32_t" symbol="tasks.c/pxDelayedTaskList"/>
231 <read cond="DelayListAddr" name="pxDelayedTaskList" type="List_t" offset="DelayListAddr"/>
232 <readlist cond="DelayListAddr" name="pxDelayedTasks" type="ListItem_t" offset="pxDelayedTaskList.xListEnd_pxNext" next="pxNext"/>
234 <list name="i" start="0" limit="pxDelayedTaskList.uxNumberOfItems" cond="DelayListAddr">
235 <readlist name="Delayed_TCB" type="TCB_t" offset="pxDelayedTasks[i].pvOwner"/>
238 <!-- Process control blocks -->
239 <list name="i" start="0" limit="Delayed_TCB._count">
241 sp = Delayed_TCB[i].pxTopOfStack;
243 Delayed_TCB[i].StackAvailable = sp - Delayed_TCB[i].pxStack;
244 Delayed_TCB[i].StackOverflow = (sp <= Delayed_TCB[i].pxStack);
248 <!-- Overflow Delayed Tasks -->
249 <read name="OverflowDelayListAddr" type="uint32_t" symbol="tasks.c/pxOverflowDelayedTaskList"/>
251 <read cond="OverflowDelayListAddr" name="pxOverflowDelayedTaskList" type="List_t" offset="OverflowDelayListAddr"/>
252 <readlist cond="OverflowDelayListAddr" name="pxOverflowDelayedTasks" type="ListItem_t" offset="pxOverflowDelayedTaskList.xListEnd_pxNext" next="pxNext"/>
254 <list name="i" start="0" limit="pxOverflowDelayedTaskList.uxNumberOfItems" cond="OverflowDelayListAddr" >
255 <readlist name="OverflowDelayed_TCB" type="TCB_t" offset="pxOverflowDelayedTasks[i].pvOwner"/>
258 <!-- Process control blocks -->
259 <list name="i" start="0" limit="OverflowDelayed_TCB._count">
261 sp = OverflowDelayed_TCB[i].pxTopOfStack;
263 OverflowDelayed_TCB[i].StackAvailable = sp - OverflowDelayed_TCB[i].pxStack;
264 OverflowDelayed_TCB[i].StackOverflow = (sp <= OverflowDelayed_TCB[i].pxStack);
268 <!-- Suspended Tasks (Note: #if (INCLUDE_vTaskSuspend == 1)) -->
269 <read name="xSuspendedTaskList" type="List_t" symbol="tasks.c/xSuspendedTaskList"/>
271 <readlist cond="uxCurrentNumberOfTasks && xSuspendedTaskList.uxNumberOfItems" name="pxSuspendedTasks" type="ListItem_t" offset="xSuspendedTaskList.xListEnd_pxNext" next="pxNext"/>
273 <list name="i" start="0" limit="xSuspendedTaskList.uxNumberOfItems">
274 <readlist name="Suspended_TCB" type="TCB_t" offset="pxSuspendedTasks[i].pvOwner"/>
277 <!-- Process control blocks -->
278 <list name="i" start="0" limit="Suspended_TCB._count">
280 sp = Suspended_TCB[i].pxTopOfStack;
282 Suspended_TCB[i].StackAvailable = sp - Suspended_TCB[i].pxStack;
283 Suspended_TCB[i].StackOverflow = (sp <= Suspended_TCB[i].pxStack);
287 <!-- Tasks Waiting Termination (Note: #if(INCLUDE_vTaskDelete == 1)) -->
288 <read name="xTasksWaitingTermination" type="List_t" symbol="tasks.c/xTasksWaitingTermination"/>
290 <readlist cond="uxCurrentNumberOfTasks && xTasksWaitingTermination.uxNumberOfItems" name="pxTasksWaitingTermination" type="ListItem_t" offset="xTasksWaitingTermination.xListEnd_pxNext" next="pxNext"/>
292 <list name="i" start="0" limit="xTasksWaitingTermination.uxNumberOfItems">
293 <readlist name="WaitTermination_TCB" type="TCB_t" offset="pxTasksWaitingTermination[i].pvOwner"/>
296 <!-- Process control blocks -->
297 <list name="i" start="0" limit="WaitTermination_TCB._count">
299 sp = WaitTermination_TCB[i].pxTopOfStack;
301 WaitTermination_TCB[i].StackAvailable = sp - WaitTermination_TCB[i].pxStack;
302 WaitTermination_TCB[i].StackOverflow = (sp <= WaitTermination_TCB[i].pxStack);
307 <read name="TimerListAddr" type="uint32_t" symbol="timers.c/pxCurrentTimerList"/>
308 <read name="pxCurrentTimerList" type="List_t" offset="TimerListAddr" />
310 <readlist cond="TimerListAddr && pxCurrentTimerList.uxNumberOfItems" name="pxCurrentTimers" type="ListItem_t" offset="pxCurrentTimerList.pxIndex" next="pxNext"/>
312 <list name="i" start="0" limit="pxCurrentTimers._count">
313 <readlist cond="pxCurrentTimers[i].pvOwner" name="Timer_CB" type="Timer_t" offset="pxCurrentTimers[i].pvOwner"/>
316 <!-- Process Timer control blocks -->
317 <list name="i" start="0" limit="Timer_CB._count">
318 <!-- Read name string -->
319 <list cond="Timer_CB[i].pcTimerName" name="j" start="0" limit="64">
320 <read name="ch_0" type="uint8_t" offset="Timer_CB[i].pcTimerName + j"/>
323 Timer_CB[i].Name[j] = ch_0;
326 <calc cond="ch_0 == 0">
332 <!-- Overflow Timers -->
333 <read name="OverflowTimerListAddr" type="uint32_t" symbol="timers.c/pxOverflowTimerList"/>
334 <read name="pxOverflowTimerList" type="List_t" offset="OverflowTimerListAddr" />
336 <readlist cond="OverflowTimerListAddr && pxOverflowTimerList.uxNumberOfItems" name="pxOverflowTimers" type="ListItem_t" offset="pxOverflowTimerList.pxIndex" next="pxNext"/>
338 <list name="i" start="0" limit="pxOverflowTimers._count">
339 <readlist cond="pxOverflowTimers[i].pvOwner" name="OverflowTimer_CB" type="Timer_t" offset="pxOverflowTimers[i].pvOwner"/>
342 <!-- Process Timer control blocks -->
343 <list name="i" start="0" limit="OverflowTimer_CB._count">
344 <!-- Read name string -->
345 <list cond="OverflowTimer_CB[i].pcTimerName" name="j" start="0" limit="64">
346 <read name="ch_1" type="uint8_t" offset="OverflowTimer_CB[i].pcTimerName + j"/>
349 OverflowTimer_CB[i].Name[j] = ch_1;
352 <calc cond="ch_1 == 0">
359 <out name="FreeRTOS RTOS">
360 <item property="Kernel" value="">
361 <item property="Scheduler State" value="%t[xSchedulerRunning ? "Running" : "Not running"]"/>
362 <item property="Tick Pending" value="%d[uxPendedTicks]" cond="uxPendedTicks"/>
363 <item property="Tick Count" value="%d[xTickCount]"/>
364 <item property="Tick Count Overflows" value="%d[xNumOfOverflows]" cond="xNumOfOverflows"/>
365 <item property="Task Count" value="%d[uxCurrentNumberOfTasks]"/>
368 <item property="Running Task" value="" cond="xSchedulerRunning">
369 <item property="h: %x[pxCurrentTCB] %t[Running_TCB.pcTaskName]" value="">
370 <item property="Priority" value="%d[Running_TCB.uxPriority]" />
371 <item property="Stack Limit" value="%x[Running_TCB.pxStack]" />
372 <item property="Stack Top" value="%x[Running_TCB.pxTopOfStack]" />
374 <print cond="Running_TCB.StackOverflow == 0" property="Stack Available" value="%d[Running_TCB.StackAvailable] bytes"/>
375 <print cond="Running_TCB.StackOverflow != 0" property="Stack Overflow" value="%d[Running_TCB.StackAvailable] bytes" bold="1" alert="1"/>
380 <item property="Ready Tasks (%d[Ready_TCB._count])" value="">
381 <list name="i" start="0" limit="Ready_TCB._count">
382 <item property="h: %x[Ready_TCB[i]._addr] %t[Ready_TCB[i].pcTaskName]" value="">
383 <item property="Priority" value="%d[Ready_TCB[i].uxPriority]" />
384 <item property="Stack Limit" value="%x[Ready_TCB[i].pxStack]" />
385 <item property="Stack Top" value="%x[Ready_TCB[i].pxTopOfStack]" />
387 <print cond="Ready_TCB[i].StackOverflow == 0" property="Stack Available" value="%d[Ready_TCB[i].StackAvailable] bytes"/>
388 <print cond="Ready_TCB[i].StackOverflow != 0" property="Stack Overflow" value="%d[Ready_TCB[i].StackAvailable] bytes" bold="1" alert="1"/>
394 <item property="Pending Ready Tasks (%d[PendingReady_TCB._count])" value="" cond="PendingReady_TCB._count">
395 <list name="i" start="0" limit="PendingReady_TCB._count">
396 <item property="h: %x[PendingReady_TCB[i]._addr] %t[PendingReady_TCB[i].pcTaskName]" value="">
397 <item property="Priority" value="%d[PendingReady_TCB[i].uxPriority]" />
398 <item property="Stack Limit" value="%x[PendingReady_TCB[i].pxStack]" />
399 <item property="Stack Top" value="%x[PendingReady_TCB[i].pxTopOfStack]" />
401 <print cond="PendingReady_TCB[i].StackOverflow == 0" property="Stack Available" value="%d[PendingReady_TCB[i].StackAvailable] bytes"/>
402 <print cond="PendingReady_TCB[i].StackOverflow != 0" property="Stack Overflow" value="%d[PendingReady_TCB[i].StackAvailable] bytes" bold="1" alert="1"/>
408 <item property="Delayed Tasks (%d[Delayed_TCB._count])" value="">
409 <list name="i" start="0" limit="Delayed_TCB._count">
410 <item property="h: %x[Delayed_TCB[i]._addr] %t[Delayed_TCB[i].pcTaskName]" value="">
411 <item property="Wake time" value="%d[Delayed_TCB[i].xStateListItem_xItemValue]" />
412 <item property="Priority" value="%d[Delayed_TCB[i].uxPriority]" />
413 <item property="Stack Limit" value="%x[Delayed_TCB[i].pxStack]" />
414 <item property="Stack Top" value="%x[Delayed_TCB[i].pxTopOfStack]" />
416 <print cond="Delayed_TCB[i].StackOverflow == 0" property="Stack Available" value="%d[Delayed_TCB[i].StackAvailable] bytes"/>
417 <print cond="Delayed_TCB[i].StackOverflow != 0" property="Stack Overflow" value="%d[Delayed_TCB[i].StackAvailable] bytes" bold="1" alert="1"/>
423 <item property="Overflow Delayed Tasks (%d[OverflowDelayed_TCB._count])" value="" cond="OverflowDelayed_TCB._count">
424 <list name="i" start="0" limit="OverflowDelayed_TCB._count">
425 <item property="h: %x[OverflowDelayed_TCB[i]._addr] %t[OverflowDelayed_TCB[i].pcTaskName]" value="">
426 <item property="Wake time" value="%d[OverflowDelayed_TCB[i].xStateListItem_xItemValue]" />
427 <item property="Priority" value="%d[OverflowDelayed_TCB[i].uxPriority]" />
428 <item property="Stack Limit" value="%x[OverflowDelayed_TCB[i].pxStack]" />
429 <item property="Stack Top" value="%x[OverflowDelayed_TCB[i].pxTopOfStack]" />
431 <print cond="OverflowDelayed_TCB[i].StackOverflow == 0" property="Stack Available" value="%d[OverflowDelayed_TCB[i].StackAvailable] bytes"/>
432 <print cond="OverflowDelayed_TCB[i].StackOverflow != 0" property="Stack Overflow" value="%d[OverflowDelayed_TCB[i].StackAvailable] bytes" bold="1" alert="1"/>
438 <item property="Suspended Tasks (%d[Suspended_TCB._count])" value="">
439 <list name="i" start="0" limit="Suspended_TCB._count">
440 <item property="h: %x[Suspended_TCB[i]._addr] %t[Suspended_TCB[i].pcTaskName]" value="">
441 <item property="Priority" value="%d[Suspended_TCB[i].uxPriority]" />
442 <item property="Stack Limit" value="%x[Suspended_TCB[i].pxStack]" />
443 <item property="Stack Top" value="%x[Suspended_TCB[i].pxTopOfStack]" />
445 <print cond="Suspended_TCB[i].StackOverflow == 0" property="Stack Available" value="%d[Suspended_TCB[i].StackAvailable] bytes"/>
446 <print cond="Suspended_TCB[i].StackOverflow != 0" property="Stack Overflow" value="%d[Suspended_TCB[i].StackAvailable] bytes" bold="1" alert="1"/>
452 <item property="Waiting Termination Tasks (%d[WaitTermination_TCB._count])" value="" cond="WaitTermination_TCB._count">
453 <list name="i" start="0" limit="WaitTermination_TCB._count">
454 <item property="h: %x[WaitTermination_TCB[i]._addr] %t[WaitTermination_TCB[i].pcTaskName]" value="">
455 <item property="Priority" value="%d[WaitTermination_TCB[i].uxPriority]" />
456 <item property="Stack Limit" value="%x[WaitTermination_TCB[i].pxStack]" />
457 <item property="Stack Top" value="%x[WaitTermination_TCB[i].pxTopOfStack]" />
459 <print cond="WaitTermination_TCB[i].StackOverflow == 0" property="Stack Available" value="%d[WaitTermination_TCB[i].StackAvailable] bytes"/>
460 <print cond="WaitTermination_TCB[i].StackOverflow != 0" property="Stack Overflow" value="%d[WaitTermination_TCB[i].StackAvailable] bytes" bold="1" alert="1"/>
466 <item property="Timers (%d[Timer_CB._count])" value="">
467 <list name="i" start="0" limit="Timer_CB._count">
468 <item property="h: %x[Timer_CB[i]._addr] %t[Timer_CB[i].Name]" value="">
469 <item property="Wake Time" value="%d[Timer_CB[i].xTimerListItem_xItemValue]" />
470 <item property="Period" value="%d[Timer_CB[i].xTimerPeriodInTicks]" />
471 <item property="Auto Reload" value="%t[Timer_CB[i].uxAutoReload ? "True" : "False"]" />
472 <item property="ID" value="%x[Timer_CB[i].pvTimerID]" />
473 <item property="Callback" value="%S[Timer_CB[i].pxCallbackFunction]" />
478 <item property="Overflowed Timers (%d[OverflowTimer_CB._count])" value="" cond="OverflowTimer_CB._count">
479 <list name="i" start="0" limit="OverflowTimer_CB._count">
480 <item property="h: %x[OverflowTimer_CB[i]._addr] %t[OverflowTimer_CB[i].Name]" value="">
481 <item property="Wake Time" value="%d[OverflowTimer_CB[i].xTimerListItem_xItemValue]" />
482 <item property="Period" value="%d[OverflowTimer_CB[i].xTimerPeriodInTicks]" />
483 <item property="Auto Reload" value="%t[OverflowTimer_CB[i].uxAutoReload ? "True" : "False"]" />
484 <item property="ID" value="%x[OverflowTimer_CB[i].pvTimerID]" />
485 <item property="Callback" value="%S[OverflowTimer_CB[i].pxCallbackFunction]" />
495 <group name="FreeRTOS RTOS">
496 <component name="Tasks Events" brief="FreeRTOS Tasks" no="0xF0" prefix="EvrFreeRTOSTasks_" info="FreeRTOS Tasks Events"/>
497 <component name="Queue Events" brief="FreeRTOS Queue" no="0xF1" prefix="EvrFreeRTOSQueue_" info="FreeRTOS Queue Events"/>
498 <component name="Timers Events" brief="FreeRTOS Timers" no="0xF2" prefix="EvrFreeRTOSTimers_" info="FreeRTOS Timers Events"/>
499 <component name="EventGroups Events" brief="FreeRTOS EventGroups" no="0xF3" prefix="EvrFreeRTOSEventGroups_" info="FreeRTOS Event Groups Events"/>
500 <component name="Heap Events" brief="FreeRTOS Heap" no="0xF4" prefix="EvrFreeRTOSHeap_" info="FreeRTOS Heap Events"/>
503 <event id="0xF000 + 0x00" level="Op" property="TaskCreate" value="pxNewTCB=%x[val1]" info=""/>
504 <event id="0xF000 + 0x01" level="Error" property="TaskCreateFailed" value="" info=""/>
505 <event id="0xF000 + 0x02" level="Op" property="TaskDelete" value="pxTCB=%x[val1]" info=""/>
506 <event id="0xF000 + 0x03" level="Op" property="TaskDelayUntil" value="xTimeToWake=%d[val1]" info=""/>
507 <event id="0xF000 + 0x04" level="Op" property="TaskDelay" value="xTicksToDelay=%d[val1]" info=""/>
508 <event id="0xF000 + 0x05" level="Op" property="TaskPrioritySet" value="pxTCB=%x[val1], uxNewPriority=%d[val2]" info=""/>
509 <event id="0xF000 + 0x06" level="Op" property="TaskSuspend" value="pxTCB=%x[val1]" info=""/>
510 <event id="0xF000 + 0x07" level="Op" property="TaskResume" value="pxTCB=%x[val1]" info=""/>
511 <event id="0xF000 + 0x08" level="Op" property="TaskResumeFromIsr" value="pxTCB=%x[val1]" info=""/>
512 <event id="0xF000 + 0x09" level="Detail" property="TaskIncrementTick" value="xTickCount=%d[val1]" info=""/>
513 <event id="0xF000 + 0x0A" level="Op" property="IncreaseTickCount" value="xTicksToJump=%d[val1]" info=""/>
514 <event id="0xF000 + 0x0B" level="Op" property="TaskSwitchedOut" value="pxCurrentTCB=%x[val1]" info=""/>
515 <event id="0xF000 + 0x0C" level="Op" property="TaskSwitchedIn" value="pxCurrentTCB=%x[val1], priority=%d[val2]" info=""/>
516 <event id="0xF000 + 0x0D" level="Op" property="TaskPriorityInherit" value="pxTCBOfMutexHolder=%x[val1], uxInheritedPriority=%d[val2]" info=""/>
517 <event id="0xF000 + 0x0E" level="Op" property="TaskPriorityDisinherit" value="pxTCBOfMutexHolder=%x[val1], uxOriginalPriority=%d[val2]" info=""/>
518 <event id="0xF000 + 0x0F" level="Op" property="MovedTaskToReadyState" value="pxTCB=%x[val1]" info=""/>
519 <event id="0xF000 + 0x10" level="Op" property="PostMovedTaskToReadyState" value="pxTCB=%x[val1]" info=""/>
520 <event id="0xF000 + 0x11" level="Op" property="LowPowerIdleBegin" value="xExpectedIdleTime=%d[val1]" info=""/>
521 <event id="0xF000 + 0x12" level="Op" property="LowPowerIdleEnd" value="" info=""/>
522 <event id="0xF000 + 0x13" level="Op" property="TaskNotifyTakeBlock" value="xTicksToWait=%d[val1]" info=""/>
523 <event id="0xF000 + 0x14" level="Op" property="TaskNotifyTake" value="ulNotifiedValue=%x[val1]" info=""/>
524 <event id="0xF000 + 0x15" level="Op" property="TaskNotifyWaitBlock" value="xTicksToWait=%d[val1]" info=""/>
525 <event id="0xF000 + 0x16" level="Op" property="TaskNotifyWait" value="ulNotifiedValue=%x[val1]" info=""/>
526 <event id="0xF000 + 0x17" level="Op" property="TaskNotify" value="xTaskToNotify=%x[val1], ulValue=%x[val2], eAction=%x[val3], ulNotifiedValue=%x[val4]" info=""/>
527 <event id="0xF000 + 0x18" level="Op" property="TaskNotifyFromIsr" value="xTaskToNotify=%x[val1], ulValue=%x[val2], eAction=%x[val3], ulNotifiedValue=%x[val4]" info=""/>
528 <event id="0xF000 + 0x19" level="Op" property="TaskNotifyGiveFromIsr" value="xTaskToNotify=%x[val1], ulNotifiedValue=%x[val2]" info=""/>
530 <event id="0xF100 + 0x00" level="Op" property="QueueCreate" value="pxQueue=%x[val1]" info=""/>
531 <event id="0xF100 + 0x01" level="Error" property="QueueCreateFailed" value="ucQueueType=%x[val1]" info=""/>
532 <event id="0xF100 + 0x02" level="Op" property="CreateMutex" value="pxNewQueue=%x[val1]" info=""/>
533 <event id="0xF100 + 0x03" level="Error" property="CreateMutexFailed" value="" info=""/>
534 <event id="0xF100 + 0x04" level="Op" property="GiveMutexRecursive" value="pxMutex=%x[val1]" info=""/>
535 <event id="0xF100 + 0x05" level="Error" property="GiveMutexRecursiveFailed" value="pxMutex=%x[val1]" info=""/>
536 <event id="0xF100 + 0x06" level="Op" property="TakeMutexRecursive" value="pxMutex=%x[val1]" info=""/>
537 <event id="0xF100 + 0x07" level="Error" property="TakeMutexRecursiveFailed" value="pxMutex=%x[val1]" info=""/>
538 <event id="0xF100 + 0x08" level="Op" property="CreateCountingSemaphore" value="xHandle=%x[val1]" info=""/>
539 <event id="0xF100 + 0x09" level="Error" property="CreateCountingSemaphoreFailed" value="" info=""/>
540 <event id="0xF100 + 0x0A" level="Op" property="QueueSend" value="pxQueue=%x[val1]" info=""/>
541 <event id="0xF100 + 0x0B" level="Error" property="QueueSendFailed" value="pxQueue=%x[val1]" info=""/>
542 <event id="0xF100 + 0x0C" level="Op" property="QueueReceive" value="pxQueue=%x[val1]" info=""/>
543 <event id="0xF100 + 0x0D" level="Op" property="QueuePeek" value="pxQueue=%x[val1]" info=""/>
544 <event id="0xF100 + 0x0E" level="Op" property="QueuePeekFromIsr" value="pxQueue=%x[val1]" info=""/>
545 <event id="0xF100 + 0x0F" level="Error" property="QueueReceiveFailed" value="pxQueue=%x[val1]" info=""/>
546 <event id="0xF100 + 0x10" level="Op" property="QueueSendFromIsr" value="pxQueue=%x[val1]" info=""/>
547 <event id="0xF100 + 0x11" level="Error" property="QueueSendFromIsrFailed" value="pxQueue=%x[val1]" info=""/>
548 <event id="0xF100 + 0x12" level="Op" property="QueueReceiveFromIsr" value="pxQueue=%x[val1]" info=""/>
549 <event id="0xF100 + 0x13" level="Error" property="QueueReceiveFromIsrFailed" value="pxQueue=%x[val1]" info=""/>
550 <event id="0xF100 + 0x14" level="Error" property="QueuePeekFromIsrFailed" value="pxQueue=%x[val1]" info=""/>
551 <event id="0xF100 + 0x15" level="Op" property="QueueDelete" value="pxQueue=%x[val1]" info=""/>
552 <event id="0xF100 + 0x16" level="Op" property="QueueRegistryAdd" value="pxQueue=%x[val1], pcQueueName=%x[val2]" info=""/>
553 <event id="0xF100 + 0x17" level="Op" property="BlockingOnQueueReceive" value="pxQueue=%x[val1]" info=""/>
554 <event id="0xF100 + 0x18" level="Op" property="BlockingOnQueueSend" value="pxQueue=%x[val1]" info=""/>
556 <event id="0xF200 + 0x00" level="Op" property="TimerCreate" value="pxNewTimer=%x[val1]" info=""/>
557 <event id="0xF200 + 0x01" level="Error" property="TimerCreateFailed" value="" info=""/>
558 <event id="0xF200 + 0x02" level="Op" property="TimerCommandSend" value="xTimer=%x[val1], xMessageID=%x[val2], xOptionalValue=%x[val3], xReturn=%x[val4]" info=""/>
559 <event id="0xF200 + 0x03" level="Op" property="TimerCommandReceived" value="xTimer=%x[val1], xMessageID=%x[val2], xOptionalValue=%x[val3]" info=""/>
560 <event id="0xF200 + 0x04" level="Op" property="TimerExpired" value="pxTimer=%x[val1]" info=""/>
561 <event id="0xF200 + 0x05" level="Op" property="PendFuncCall" value="pxFunctionToPend=%x[val1], pvParameter1=%x[val2], ulParameter2=%x[val3], xReturn=%x[val4]" info=""/>
562 <event id="0xF200 + 0x06" level="Op" property="PendFuncCallFromIsr" value="pxFunctionToPend=%x[val1], pvParameter1=%x[val2], ulParameter2=%x[val3], xReturn=%x[val4]" info=""/>
564 <event id="0xF300 + 0x00" level="Op" property="EventGroupCreate" value="pxEventGroup=%x[val1]" info=""/>
565 <event id="0xF300 + 0x01" level="Error" property="EventGroupCreateFailed" value="" info=""/>
566 <event id="0xF300 + 0x02" level="Op" property="EventGroupSyncBlock" value="pxEventGroup=%x[val1], uxBitsToSet=%x[val2], uxBitsToWaitFor=%x[val3]" info=""/>
567 <event id="0xF300 + 0x03" level="Op" property="EventGroupSyncEnd" value="pxEventGroup=%x[val1], uxBitsToSet=%x[val2], uxBitsToWaitFor=%x[val3], xTimeoutOccurred=%x[val4]" info=""/>
568 <event id="0xF300 + 0x04" level="Op" property="EventGroupWaitBitsBlock" value="pxEventGroup=%x[val1], uxBitsToWaitFor=%x[val2]" info=""/>
569 <event id="0xF300 + 0x05" level="Op" property="EventGroupWaitBitsEnd" value="pxEventGroup=%x[val1], uxBitsToWaitFor=%x[val2], xTimeoutOccurred=%x[val3]" info=""/>
570 <event id="0xF300 + 0x06" level="Op" property="EventGroupClearBits" value="pxEventGroup=%x[val1], uxBitsToClear=%x[val2]" info=""/>
571 <event id="0xF300 + 0x07" level="Op" property="EventGroupClearBitsFromIsr" value="pxEventGroup=%x[val1], uxBitsToClear=%x[val2]" info=""/>
572 <event id="0xF300 + 0x08" level="Op" property="EventGroupSetBits" value="pxEventGroup=%x[val1], uxBitsToSet=%x[val2]" info=""/>
573 <event id="0xF300 + 0x09" level="Op" property="EventGroupSetBitsFromIsr" value="pxEventGroup=%x[val1], uxBitsToSet=%x[val2]" info=""/>
574 <event id="0xF300 + 0x0A" level="Op" property="EventGroupDelete" value="pxEventGroup=%x[val1]" info=""/>
576 <event id="0xF400 + 0x00" level="Op" property="Malloc" value="pvAddress=%x[val1], uiSize=%d[val2]" info=""/>
577 <event id="0xF400 + 0x01" level="Op" property="Free" value="pvAddress=%x[val1], uiSize=%d[val2]" info=""/>