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="CMSIS-FreeRTOS" version="10.4.6"/>
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="76" info="Queue definition (queue.c)">
28 <member name="pcHead" type="uint32_t" offset="0" info="(type is *int32_t), also uxQueueType"/>
29 <member name="pcTail" type="uint32_t" offset="4" info="(type is *int32_t), also pxMutexHolder"/>
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="36+0"/>
42 <member name="xTasksWaitingToReceive_pxIndex" type="*ListItem_t" offset="36+4"/>
43 <member name="xTasksWaitingToReceive_xListEnd_xItemValue" type="*ListItem_t" offset="36+8"/>
44 <member name="xTasksWaitingToReceive_xListEnd_pxNext" type="*ListItem_t" offset="36+12"/>
45 <member name="xTasksWaitingToReceive_xListEnd_pxPrevious" type="*ListItem_t" offset="36+16"/>
47 <member name="uxMessagesWaiting" type="uint32_t" offset="56"/>
48 <member name="uxLength" type="uint32_t" offset="60"/>
49 <member name="uxItemSize" type="uint32_t" offset="64"/>
50 <member name="cRxLock" type="int32_t" offset="68"/>
51 <member name="cTxLock" type="int32_t" offset="72"/>
53 <!-- #if((configSUPPORT_STATIC_ALLOCATION == 1) && (configSUPPORT_DYNAMIC_ALLOCATION == 1)) -->
54 <!-- <member name="ucStaticallyAllocated" type="uint8_t" offset="76"/> -->
56 <!-- #if (configUSE_QUEUE_SETS == 1) -->
57 <!-- <member name="pxQueueSetContainer" type="uint32_t" offset="80"/> -->
59 <!-- #if (configUSE_TRACE_FACILITY == 1) -->
60 <!-- <member name="uxQueueNumber" type="uint32_t" offset="84"/> -->
61 <!-- <member name="uxQueueType" type="uint8_t" offset="88"/> -->
64 <var name="Name" type="uint8_t" size="64" info="Queue name (ASCII)"/>
65 <var name="Type" type="uint32_t" info="Queue type (Queue:0, Mutex:1, Semaphore:2)"/>
68 <typedef name="QueueRegistryItem_t" size="8">
69 <member name="pcQueueName" type="uint32_t" offset="0" info="(type is const char *)"/>
70 <member name="xHandle" type="uint32_t" offset="4" info="(type is QueueHandle_t)"/>
74 <typedef name="TCB_t" size="128" info="Task Control Block definition (tasks.c)">
75 <member name="pxTopOfStack" type="uint32_t" offset="0" info="Location of the last item placed on the tasks stack (type is StackType_t *)"/>
76 <!-- Inlined "ListItem_t" structure -->
77 <member name="xStateListItem_xItemValue" type="uint32_t" offset="4+0" info=""/>
78 <member name="xStateListItem_pxNext" type="*ListItem_t" offset="4+4" info=""/>
79 <member name="xStateListItem_pxPrevious" type="*ListItem_t" offset="4+8" info=""/>
80 <member name="xStateListItem_pvOwner" type="uint32_t" offset="4+12" info=""/>
81 <member name="xStateListItem_pvContainer" type="uint32_t" offset="4+16" info=""/>
82 <!-- Inlined "ListItem_t" structure -->
83 <member name="xEventListItem_xItemValue" type="uint32_t" offset="24+0" info=""/>
84 <member name="xEventListItem_pxNext" type="*ListItem_t" offset="24+4" info=""/>
85 <member name="xEventListItem_pxPrevious" type="*ListItem_t" offset="24+8" info=""/>
86 <member name="xEventListItem_pvOwner" type="uint32_t" offset="24+12" info=""/>
87 <member name="xEventListItem_pvContainer" type="uint32_t" offset="24+16" info=""/>
89 <member name="uxPriority" type="uint32_t" offset="44" info=""/>
90 <member name="pxStack" type="uint32_t" offset="48" info=""/>
91 <member name="pcTaskName" type="uint8_t" size="16" offset="52" info="Task name (size is defined by configMAX_TASK_NAME_LEN)"/>
93 <!-- #if(portCRITICAL_NESTING_IN_TCB == 1) -->
94 <!-- <member name="uxCriticalNesting" type="uint32_t" info=""/> -->
97 <!-- #if(configUSE_TRACE_FACILITY == 1) -->
98 <!-- <member name="uxTCBNumber" type="uint32_t" offset="68" info=""/> -->
99 <!-- <member name="uxTaskNumber" type="uint32_t" offset="72" info=""/> -->
102 <!-- #if(configUSE_MUTEXES == 1) -->
103 <!-- <member name="uxBasePriority" type="uint32_t" offset="74" info=""/> -->
104 <!-- <member name="uxMutexesHeld" type="uint32_t" offset="78" info=""/> -->
107 <!-- #if(configUSE_APPLICATION_TASK_TAG == 1) -->
108 <!-- <member name="pxTaskTag" type="uint32_t" info="(type is TaskHookFunction_t)"/> -->
111 <!-- #if(configNUM_THREAD_LOCAL_STORAGE_POINTERS > 0) -->
112 <!-- <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) -->
115 <!-- #if(configGENERATE_RUN_TIME_STATS == 1) -->
116 <!-- <member name="ulRunTimeCounter" type="uint32_t" info=""/> -->
119 <!-- #if(configUSE_TASK_NOTIFICATIONS == 1) -->
120 <!-- <member name="ulNotifiedValue" type="uint32_t" offset="82" info=""/> -->
121 <!-- <member name="ucNotifyState" type="uint8_t" offset="86" info=""/> -->
124 <!-- #if(tskSTATIC_AND_DYNAMIC_ALLOCATION_POSSIBLE != 0) -->
125 <!-- <member name="ucStaticallyAllocated" type="uint8_t" offset="90" info=""/> -->
128 <!-- #if(INCLUDE_xTaskAbortDelay == 1) -->
129 <!-- <member name="ucDelayAborted" type="uint32_t" info=""/> -->
132 <!-- #if( configUSE_POSIX_ERRNO == 1 ) -->
133 <!-- <member name="iTaskErrno" type="int32_t" info=""/> -->
136 <var name="StackAvailable" type="uint32_t" info="Available stack (unused): current (in bytes)"/>
137 <var name="StackOverflow" type="uint32_t" info="Stack overflow flag"/>
138 <var name="WaitType" type="uint32_t" info="Waiting object type (Queue:0, Mutex:1, Semaphore:2, EventGroup:3)"/>
139 <var name="WaitValue" type="uint32_t" info="Waiting object value (Index in Queue_CB or event group flags)"/>
142 <typedef name="Timer_t" size="36" info="Timer Control Block definition (timers.c)">
143 <member name="pcTimerName" type="uint32_t" offset="0" info="Timer name (type is const char *)."/>
144 <!-- Inlined "ListItem_t" structure -->
145 <member name="xTimerListItem_xItemValue" type="uint32_t" offset="4+0" info=""/>
146 <member name="xTimerListItem_pxNext" type="*ListItem_t" offset="4+4" info=""/>
147 <member name="xTimerListItem_pxPrevious" type="*ListItem_t" offset="4+8" info=""/>
148 <member name="xTimerListItem_pvOwner" type="uint32_t" offset="4+12" info=""/>
149 <member name="xTimerListItem_pvContainer" type="uint32_t" offset="4+16" info=""/>
151 <member name="xTimerPeriodInTicks" type="uint32_t" offset="24" info="How quickly and often the timer expires."/>
152 <member name="pvTimerID" type="uint32_t" offset="28" info="An ID to identify the timer (type is void *)."/>
153 <member name="pxCallbackFunction" type="uint32_t" offset="32" info="The function that will be called when the timer expires."/>
155 <!-- #if(configUSE_TRACE_FACILITY == 1) -->
156 <!-- <member name="uxTimerNumber" type="uint32_t" offset="36" info="An ID assigned by trace tools such as FreeRTOS+Trace."/> -->
159 <!-- <member name="ucStatus" type="uint8_t" offset="40" info="Status bitmask (timer active/inactive, static allocation)."/> -->
161 <var name="Name" type="uint8_t" info="Timer name string" size="64"/>
167 <object name="FreeRTOS Object">
168 <var name="i" type="uint32_t" value="0"/>
169 <var name="j" type="uint32_t" value="0"/>
170 <var name="n" type="uint32_t" value="0"/>
171 <var name="sp" type="uint32_t" value="0"/>
173 <var name="CV_En" type="uint8_t" value="0"/>
175 <var name="Queue_REG_Size" type="uint32_t" value="0"/>
176 <var name="Queue_REG_Queues" type="uint32_t" value="0"/>
177 <var name="Queue_REG_Mutexes" type="uint32_t" value="0"/>
178 <var name="Queue_REG_Semaphores" type="uint32_t" value="0"/>
180 <read name="xSchedulerRunning" type="uint32_t" symbol="tasks.c/xSchedulerRunning"/>
181 <read name="xYieldPending" type="uint32_t" symbol="tasks.c/xYieldPending"/>
182 <read name="xTickCount" type="uint32_t" symbol="tasks.c/xTickCount"/>
183 <read name="xNumOfOverflows" type="uint32_t" symbol="tasks.c/xNumOfOverflows"/>
184 <read name="xPendedTicks" type="uint32_t" symbol="tasks.c/xPendedTicks"/>
185 <read name="pxCurrentTCB" type="uint32_t" symbol="tasks.c/pxCurrentTCB"/>
186 <read name="uxCurrentNumberOfTasks" type="uint32_t" symbol="tasks.c/uxCurrentNumberOfTasks"/>
188 <read name="xIdleTaskHandle" type="uint32_t" symbol="tasks.c/xIdleTaskHandle"/>
189 <read name="xTimerTaskHandle" type="uint32_t" symbol="timers.c/xTimerTaskHandle"/>
190 <read name="xTimerQueue" type="uint32_t" symbol="timers.c/xTimerQueue"/>
192 <!-- Try to determine if memory is initialized -->
193 <calc cond="((xSchedulerRunning < 2) && (xYieldPending < 2))">
197 <!-- Running Task -->
198 <read cond="CV_En" name="Running_TCB" type="TCB_t" offset="pxCurrentTCB"/>
201 sp = __GetRegVal ("PSP");
203 Running_TCB.StackAvailable = sp - Running_TCB.pxStack;
204 Running_TCB.StackOverflow = (sp <= Running_TCB.pxStack);
209 <readlist cond="CV_En" name="pxReadyTasksLists" type="List_t" symbol="tasks.c/pxReadyTasksLists" count="__size_of("tasks.c/pxReadyTasksLists")" init="1"/>
211 <!-- Read ready lists for each priority -->
212 <list name="i" start="0" limit="pxReadyTasksLists._count">
213 <!-- Determine address of first item in list, read current item and determine address of next item in list -->
214 <calc> n = pxReadyTasksLists[i].xListEnd_pxNext; </calc>
216 <list name="j" start="0" limit="pxReadyTasksLists[i].uxNumberOfItems">
217 <readlist name="pxReadyTasks" type="ListItem_t" offset="n" count="1"/>
219 <calc> n = pxReadyTasks[pxReadyTasks._count-1].pxNext; </calc>
223 <!-- Read control blocks -->
224 <list name="i" start="0" limit="pxReadyTasks._count">
225 <readlist name="Ready_TCB" type="TCB_t" offset="pxReadyTasks[i].pvOwner" cond="!(xSchedulerRunning==1 && (pxReadyTasks[i].pvOwner == pxCurrentTCB))"/>
228 <!-- Process control blocks -->
229 <list name="i" start="0" limit="Ready_TCB._count">
231 sp = Ready_TCB[i].pxTopOfStack;
233 Ready_TCB[i].StackAvailable = sp - Ready_TCB[i].pxStack;
234 Ready_TCB[i].StackOverflow = (sp <= Ready_TCB[i].pxStack);
239 <!-- Pending Ready Tasks -->
240 <read name="xPendingReadyList" type="List_t" symbol="tasks.c/xPendingReadyList" cond="CV_En"/>
242 <!-- Determine address of first item in list, read current item and determine address of next item in list -->
244 n = xPendingReadyList.xListEnd_pxNext;
247 <list name="j" start="0" limit="xPendingReadyList.uxNumberOfItems" cond="CV_En">
248 <readlist name="pxPendingReadyTasks" type="ListItem_t" offset="n" count="1"/>
250 <calc> n = pxPendingReadyTasks[pxPendingReadyTasks._count-1].pxNext; </calc>
253 <!-- Read control blocks -->
254 <list name="i" start="0" limit="xPendingReadyList.uxNumberOfItems" cond="CV_En">
255 <readlist name="PendingReady_TCB" type="TCB_t" offset="pxPendingReadyTasks[i].pvOwner"/>
258 <!-- Process control blocks -->
259 <list name="i" start="0" limit="PendingReady_TCB._count">
261 sp = PendingReady_TCB[i].pxTopOfStack;
263 PendingReady_TCB[i].StackAvailable = sp - PendingReady_TCB[i].pxStack;
264 PendingReady_TCB[i].StackOverflow = (sp <= PendingReady_TCB[i].pxStack);
269 <!-- Delayed Tasks -->
270 <read name="DelayListAddr" type="uint32_t" symbol="tasks.c/pxDelayedTaskList" cond="CV_En"/>
271 <read name="pxDelayedTaskList" type="List_t" offset="DelayListAddr" cond="CV_En && DelayListAddr"/>
273 <!-- Determine address of first item in list, read current item and determine address of next item in list -->
274 <calc cond="DelayListAddr">
275 n = pxDelayedTaskList.xListEnd_pxNext;
278 <list name="j" start="0" limit="pxDelayedTaskList.uxNumberOfItems" cond="DelayListAddr">
279 <readlist name="pxDelayedTasks" type="ListItem_t" offset="n" count="1"/>
281 <calc> n = pxDelayedTasks[pxDelayedTasks._count-1].pxNext; </calc>
284 <!-- Read control blocks -->
285 <list name="i" start="0" limit="pxDelayedTaskList.uxNumberOfItems" cond="DelayListAddr">
286 <readlist name="Delayed_TCB" type="TCB_t" offset="pxDelayedTasks[i].pvOwner"/>
289 <!-- Process control blocks -->
290 <list name="i" start="0" limit="Delayed_TCB._count">
292 sp = Delayed_TCB[i].pxTopOfStack;
294 Delayed_TCB[i].StackAvailable = sp - Delayed_TCB[i].pxStack;
295 Delayed_TCB[i].StackOverflow = (sp <= Delayed_TCB[i].pxStack);
300 <!-- Overflow Delayed Tasks -->
301 <read name="OverflowDelayListAddr" type="uint32_t" symbol="tasks.c/pxOverflowDelayedTaskList" cond="CV_En"/>
302 <read name="pxOverflowDelayedTaskList" type="List_t" offset="OverflowDelayListAddr" cond="CV_En && OverflowDelayListAddr"/>
304 <!-- Determine address of first item in list, read current item and determine address of next item in list -->
305 <calc cond="OverflowDelayListAddr">
306 n = pxOverflowDelayedTaskList.xListEnd_pxNext;
309 <list name="j" start="0" limit="pxOverflowDelayedTaskList.uxNumberOfItems" cond="OverflowDelayListAddr">
310 <readlist name="pxOverflowDelayedTasks" type="ListItem_t" offset="n" count="1"/>
312 <calc> n = pxOverflowDelayedTasks[pxOverflowDelayedTasks._count-1].pxNext; </calc>
315 <!-- Read control blocks -->
316 <list name="i" start="0" limit="pxOverflowDelayedTaskList.uxNumberOfItems" cond="OverflowDelayListAddr" >
317 <readlist name="OverflowDelayed_TCB" type="TCB_t" offset="pxOverflowDelayedTasks[i].pvOwner"/>
320 <!-- Process control blocks -->
321 <list name="i" start="0" limit="OverflowDelayed_TCB._count">
323 sp = OverflowDelayed_TCB[i].pxTopOfStack;
325 OverflowDelayed_TCB[i].StackAvailable = sp - OverflowDelayed_TCB[i].pxStack;
326 OverflowDelayed_TCB[i].StackOverflow = (sp <= OverflowDelayed_TCB[i].pxStack);
331 <!-- Suspended Tasks (Note: #if (INCLUDE_vTaskSuspend == 1)) -->
332 <read name="xSuspendedTaskList" type="List_t" symbol="tasks.c/xSuspendedTaskList" cond="CV_En"/>
334 <!-- Determine address of first item in list, read current item and determine address of next item in list -->
336 n = xSuspendedTaskList.xListEnd_pxNext;
339 <list name="j" start="0" limit="xSuspendedTaskList.uxNumberOfItems" cond="CV_En">
340 <readlist name="pxSuspendedTasks" type="ListItem_t" offset="n" count="1"/>
342 <calc> n = pxSuspendedTasks[pxSuspendedTasks._count-1].pxNext; </calc>
345 <!-- Read control blocks -->
346 <list name="i" start="0" limit="xSuspendedTaskList.uxNumberOfItems" cond="CV_En">
347 <readlist name="Suspended_TCB" type="TCB_t" offset="pxSuspendedTasks[i].pvOwner"/>
350 <!-- Process control blocks -->
351 <list name="i" start="0" limit="Suspended_TCB._count">
353 sp = Suspended_TCB[i].pxTopOfStack;
355 Suspended_TCB[i].StackAvailable = sp - Suspended_TCB[i].pxStack;
356 Suspended_TCB[i].StackOverflow = (sp <= Suspended_TCB[i].pxStack);
361 <!-- Tasks Waiting Termination (Note: #if(INCLUDE_vTaskDelete == 1)) -->
362 <read name="xTasksWaitingTermination" type="List_t" symbol="tasks.c/xTasksWaitingTermination" cond="CV_En"/>
364 <!-- Determine address of first item in list, read current item and determine address of next item in list -->
366 n = xTasksWaitingTermination.xListEnd_pxNext;
369 <list name="j" start="0" limit="xTasksWaitingTermination.uxNumberOfItems" cond="CV_En">
370 <readlist name="pxTasksWaitingTermination" type="ListItem_t" offset="n" count="1"/>
372 <calc> n = pxTasksWaitingTermination[pxTasksWaitingTermination._count-1].pxNext; </calc>
375 <!-- Read control blocks -->
376 <list name="i" start="0" limit="xTasksWaitingTermination.uxNumberOfItems" cond="CV_En">
377 <readlist name="WaitTermination_TCB" type="TCB_t" offset="pxTasksWaitingTermination[i].pvOwner"/>
380 <!-- Process control blocks -->
381 <list name="i" start="0" limit="WaitTermination_TCB._count">
383 sp = WaitTermination_TCB[i].pxTopOfStack;
385 WaitTermination_TCB[i].StackAvailable = sp - WaitTermination_TCB[i].pxStack;
386 WaitTermination_TCB[i].StackOverflow = (sp <= WaitTermination_TCB[i].pxStack);
392 <read name="TimerListAddr" type="uint32_t" symbol="timers.c/pxCurrentTimerList" cond="CV_En"/>
393 <read name="pxCurrentTimerList" type="List_t" offset="TimerListAddr" cond="CV_En"/>
395 <!-- Determine address of first item in list, read current item and determine address of next item in list -->
396 <calc cond="TimerListAddr">
397 n = pxCurrentTimerList.xListEnd_pxNext;
400 <list name="j" start="0" limit="pxCurrentTimerList.uxNumberOfItems" cond="TimerListAddr">
401 <readlist name="pxCurrentTimers" type="ListItem_t" offset="n" count="1"/>
403 <calc> n = pxCurrentTimers[pxCurrentTimers._count-1].pxNext; </calc>
406 <!-- Read control blocks -->
407 <list name="i" start="0" limit="pxCurrentTimers._count">
408 <readlist cond="pxCurrentTimers[i].pvOwner" name="Timer_CB" type="Timer_t" offset="pxCurrentTimers[i].pvOwner"/>
411 <!-- Process Timer control blocks -->
412 <list name="i" start="0" limit="Timer_CB._count">
413 <!-- Read name string -->
414 <list cond="Timer_CB[i].pcTimerName" name="j" start="0" limit="64">
415 <read name="ch_0" type="uint8_t" offset="Timer_CB[i].pcTimerName + j"/>
418 Timer_CB[i].Name[j] = ch_0;
421 <calc cond="ch_0 == 0">
428 <!-- Overflow Timers -->
429 <read name="OverflowTimerListAddr" type="uint32_t" symbol="timers.c/pxOverflowTimerList" cond="CV_En"/>
430 <read name="pxOverflowTimerList" type="List_t" offset="OverflowTimerListAddr" cond="CV_En"/>
432 <!-- Determine address of first item in list, read current item and determine address of next item in list -->
433 <calc cond="OverflowTimerListAddr">
434 n = pxOverflowTimerList.xListEnd_pxNext;
437 <list name="j" start="0" limit="pxOverflowTimerList.uxNumberOfItems" cond="OverflowTimerListAddr">
438 <readlist name="pxOverflowTimers" type="ListItem_t" offset="n" count="1"/>
440 <calc> n = pxOverflowTimers[pxOverflowTimers._count-1].pxNext; </calc>
443 <!-- Read control blocks -->
444 <list name="i" start="0" limit="pxOverflowTimers._count">
445 <readlist cond="pxOverflowTimers[i].pvOwner" name="OverflowTimer_CB" type="Timer_t" offset="pxOverflowTimers[i].pvOwner"/>
448 <!-- Process Timer control blocks -->
449 <list name="i" start="0" limit="OverflowTimer_CB._count">
450 <!-- Read name string -->
451 <list cond="OverflowTimer_CB[i].pcTimerName" name="j" start="0" limit="64">
452 <read name="ch_1" type="uint8_t" offset="OverflowTimer_CB[i].pcTimerName + j"/>
455 OverflowTimer_CB[i].Name[j] = ch_1;
458 <calc cond="ch_1 == 0">
465 <!-- Read Queue Registry (Queues, Semaphores, Mutexes) -->
466 <calc cond="__Symbol_exists ("queue.c/xQueueRegistry")">
467 Queue_REG_Size = __size_of ("queue.c/xQueueRegistry");
470 <readlist cond="Queue_REG_Size != 0" name="Queue_REG" type="QueueRegistryItem_t" count="Queue_REG_Size" symbol="queue.c/xQueueRegistry"/>
472 <!-- Read registered objects -->
473 <list cond="Queue_REG_Size" name="i" start="0" limit="Queue_REG._count">
474 <readlist cond="Queue_REG[i].xHandle != 0" name="Queue_CB" type="Queue_t" offset="Queue_REG[i].xHandle"/>
476 <!-- Read name string -->
477 <list name="n" start="0" limit="64" cond="(Queue_REG[i].xHandle != 0) && (Queue_REG[i].pcQueueName != 0)">
478 <read name="ch_2" type="uint8_t" offset="Queue_REG[i].pcQueueName + n"/>
481 Queue_CB[Queue_CB._count-1].Name[n] = ch_2;
484 <calc cond="ch_2 == 0">
491 <list cond="Queue_REG_Size" name="i" start="0" limit="Queue_CB._count">
494 Queue_CB[i].Type = 0;
497 <calc cond="Queue_CB[i].pcHead == 0">
498 Queue_CB[i].Type = 1;
502 <calc cond="Queue_CB[i].pcHead == Queue_CB[i]._addr">
503 Queue_CB[i].Type = 2;
504 Queue_REG_Semaphores++;
508 Queue_REG_Queues = Queue_CB._count - Queue_REG_Mutexes - Queue_REG_Semaphores;
512 <!-- Check if enqueued objects exist on task list -->
513 <list cond="Queue_REG_Size" name="i" start="0" limit="Queue_CB._count">
514 <!-- Get address of Queue_t member xTasksWaitingToReceive -->
516 n = Queue_CB[i]._addr;
520 <!-- Loop over delayed tasks -->
521 <list name="j" start="0" limit="Delayed_TCB._count">
522 <!-- Check if TCB waits for Event Group -->
523 <calc cond="(Delayed_TCB[j].xEventListItem_xItemValue & 0x80000000)">
524 Delayed_TCB[j].WaitType = 3;
525 Delayed_TCB[j].WaitValue = Delayed_TCB[j].xEventListItem_xItemValue & 0x00FFFFFF;
527 <!-- Check if TCB exist on Queue_t list -->
528 <calc cond="Delayed_TCB[j].xEventListItem_pvContainer == n">
529 Delayed_TCB[j].WaitType = Queue_CB[i].Type;
530 Delayed_TCB[j].WaitValue = i;
534 <!-- Loop over overflow delayed tasks -->
535 <list name="j" start="0" limit="OverflowDelayed_TCB._count">
536 <!-- Check if TCB waits for Event Group -->
537 <calc cond="(OverflowDelayed_TCB[j].xEventListItem_xItemValue & 0x80000000)">
538 OverflowDelayed_TCB[j].WaitType = 3;
539 OverflowDelayed_TCB[j].WaitValue = OverflowDelayed_TCB[j].xEventListItem_xItemValue & 0x00FFFFFF;
541 <!-- Check if TCB exist on Queue_t list -->
542 <calc cond="OverflowDelayed_TCB[j].xEventListItem_pvContainer == n">
543 OverflowDelayed_TCB[j].WaitType = Queue_CB[i].Type;
544 OverflowDelayed_TCB[j].WaitValue = i;
550 <out name="FreeRTOS RTOS">
551 <item property="Kernel" value="">
552 <item property="Scheduler State" value="%t[(CV_En && xSchedulerRunning) ? "Running" : "Not running"]"/>
553 <item property="Tick Pending" value="%d[xPendedTicks]" cond="CV_En && xPendedTicks"/>
554 <item property="Tick Count" value="%d[xTickCount]" cond="CV_En"/>
555 <item property="Tick Count Overflows" value="%d[xNumOfOverflows]" cond="CV_En && xNumOfOverflows"/>
556 <item property="Task Count" value="%d[uxCurrentNumberOfTasks]" cond="CV_En"/>
559 <item property="Running Task" value="" cond="CV_En && xSchedulerRunning">
560 <item property="h: %x[pxCurrentTCB] %t[Running_TCB.pcTaskName]" value="">
561 <item property="Priority" value="%d[Running_TCB.uxPriority]" />
562 <item property="Stack Limit" value="%x[Running_TCB.pxStack]" />
563 <item property="Stack Top" value="%x[Running_TCB.pxTopOfStack]" />
565 <print cond="Running_TCB.StackOverflow == 0" property="Stack Available" value="%d[Running_TCB.StackAvailable] bytes"/>
566 <print cond="Running_TCB.StackOverflow != 0" property="Stack Overflow" value="%d[Running_TCB.StackAvailable] bytes" bold="1" alert="1"/>
571 <item property="Ready Tasks (%d[Ready_TCB._count])" value="">
572 <list name="i" start="0" limit="Ready_TCB._count">
573 <item property="h: %x[Ready_TCB[i]._addr] %t[Ready_TCB[i].pcTaskName]" value="">
574 <item property="Priority" value="%d[Ready_TCB[i].uxPriority]" />
575 <item property="Stack Limit" value="%x[Ready_TCB[i].pxStack]" />
576 <item property="Stack Top" value="%x[Ready_TCB[i].pxTopOfStack]" />
578 <print cond="Ready_TCB[i].StackOverflow == 0" property="Stack Available" value="%d[Ready_TCB[i].StackAvailable] bytes"/>
579 <print cond="Ready_TCB[i].StackOverflow != 0" property="Stack Overflow" value="%d[Ready_TCB[i].StackAvailable] bytes" bold="1" alert="1"/>
585 <item property="Pending Ready Tasks (%d[PendingReady_TCB._count])" value="" cond="PendingReady_TCB._count">
586 <list name="i" start="0" limit="PendingReady_TCB._count">
587 <item property="h: %x[PendingReady_TCB[i]._addr] %t[PendingReady_TCB[i].pcTaskName]" value="">
588 <item property="Priority" value="%d[PendingReady_TCB[i].uxPriority]" />
589 <item property="Stack Limit" value="%x[PendingReady_TCB[i].pxStack]" />
590 <item property="Stack Top" value="%x[PendingReady_TCB[i].pxTopOfStack]" />
592 <print cond="PendingReady_TCB[i].StackOverflow == 0" property="Stack Available" value="%d[PendingReady_TCB[i].StackAvailable] bytes"/>
593 <print cond="PendingReady_TCB[i].StackOverflow != 0" property="Stack Overflow" value="%d[PendingReady_TCB[i].StackAvailable] bytes" bold="1" alert="1"/>
599 <item property="Delayed Tasks (%d[Delayed_TCB._count])" value="">
600 <list name="i" start="0" limit="Delayed_TCB._count">
601 <item property="h: %x[Delayed_TCB[i]._addr] %t[Delayed_TCB[i].pcTaskName]" value="">
603 <item cond="Queue_REG_Size">
604 <print cond="Delayed_TCB[i].WaitType == 0" property="Waiting Queue" value="h: %x[Queue_CB[Delayed_TCB[i].WaitValue]._addr] %t[Queue_CB[Delayed_TCB[i].WaitValue].Name]"/>
605 <print cond="Delayed_TCB[i].WaitType == 1" property="Waiting Mutex" value="h: %x[Queue_CB[Delayed_TCB[i].WaitValue]._addr] %t[Queue_CB[Delayed_TCB[i].WaitValue].Name]"/>
606 <print cond="Delayed_TCB[i].WaitType == 2" property="Waiting Semaphore" value="h: %x[Queue_CB[Delayed_TCB[i].WaitValue]._addr] %t[Queue_CB[Delayed_TCB[i].WaitValue].Name]"/>
607 <print cond="Delayed_TCB[i].WaitType == 3" property="Waiting EventGroup" value="Flags: %x[Delayed_TCB[i].WaitValue]"/>
610 <item property="Wake time" value="%d[Delayed_TCB[i].xStateListItem_xItemValue]" />
611 <item property="Priority" value="%d[Delayed_TCB[i].uxPriority]" />
612 <item property="Stack Limit" value="%x[Delayed_TCB[i].pxStack]" />
613 <item property="Stack Top" value="%x[Delayed_TCB[i].pxTopOfStack]" />
615 <print cond="Delayed_TCB[i].StackOverflow == 0" property="Stack Available" value="%d[Delayed_TCB[i].StackAvailable] bytes"/>
616 <print cond="Delayed_TCB[i].StackOverflow != 0" property="Stack Overflow" value="%d[Delayed_TCB[i].StackAvailable] bytes" bold="1" alert="1"/>
622 <item property="Overflow Delayed Tasks (%d[OverflowDelayed_TCB._count])" value="" cond="OverflowDelayed_TCB._count">
623 <list name="i" start="0" limit="OverflowDelayed_TCB._count">
624 <item property="h: %x[OverflowDelayed_TCB[i]._addr] %t[OverflowDelayed_TCB[i].pcTaskName]" value="">
626 <item cond="Queue_REG_Size">
627 <print cond="OverflowDelayed_TCB[i].WaitType == 0" property="Waiting Queue" value="h: %x[Queue_CB[OverflowDelayed_TCB[i].WaitValue]._addr] %t[Queue_CB[OverflowDelayed_TCB[i].WaitValue].Name]"/>
628 <print cond="OverflowDelayed_TCB[i].WaitType == 1" property="Waiting Mutex" value="h: %x[Queue_CB[OverflowDelayed_TCB[i].WaitValue]._addr] %t[Queue_CB[OverflowDelayed_TCB[i].WaitValue].Name]"/>
629 <print cond="OverflowDelayed_TCB[i].WaitType == 2" property="Waiting Semaphore" value="h: %x[Queue_CB[OverflowDelayed_TCB[i].WaitValue]._addr] %t[Queue_CB[OverflowDelayed_TCB[i].WaitValue].Name]"/>
630 <print cond="OverflowDelayed_TCB[i].WaitType == 3" property="Waiting EventGroup" value="Flags=%x[OverflowDelayed_TCB[i].WaitValue]"/>
633 <item property="Wake time" value="%d[OverflowDelayed_TCB[i].xStateListItem_xItemValue]" />
634 <item property="Priority" value="%d[OverflowDelayed_TCB[i].uxPriority]" />
635 <item property="Stack Limit" value="%x[OverflowDelayed_TCB[i].pxStack]" />
636 <item property="Stack Top" value="%x[OverflowDelayed_TCB[i].pxTopOfStack]" />
638 <print cond="OverflowDelayed_TCB[i].StackOverflow == 0" property="Stack Available" value="%d[OverflowDelayed_TCB[i].StackAvailable] bytes"/>
639 <print cond="OverflowDelayed_TCB[i].StackOverflow != 0" property="Stack Overflow" value="%d[OverflowDelayed_TCB[i].StackAvailable] bytes" bold="1" alert="1"/>
645 <item property="Suspended Tasks (%d[Suspended_TCB._count])" value="">
646 <list name="i" start="0" limit="Suspended_TCB._count">
647 <item property="h: %x[Suspended_TCB[i]._addr] %t[Suspended_TCB[i].pcTaskName]" value="">
648 <item property="Priority" value="%d[Suspended_TCB[i].uxPriority]" />
649 <item property="Stack Limit" value="%x[Suspended_TCB[i].pxStack]" />
650 <item property="Stack Top" value="%x[Suspended_TCB[i].pxTopOfStack]" />
652 <print cond="Suspended_TCB[i].StackOverflow == 0" property="Stack Available" value="%d[Suspended_TCB[i].StackAvailable] bytes"/>
653 <print cond="Suspended_TCB[i].StackOverflow != 0" property="Stack Overflow" value="%d[Suspended_TCB[i].StackAvailable] bytes" bold="1" alert="1"/>
659 <item property="Waiting Termination Tasks (%d[WaitTermination_TCB._count])" value="" cond="WaitTermination_TCB._count">
660 <list name="i" start="0" limit="WaitTermination_TCB._count">
661 <item property="h: %x[WaitTermination_TCB[i]._addr] %t[WaitTermination_TCB[i].pcTaskName]" value="">
662 <item property="Priority" value="%d[WaitTermination_TCB[i].uxPriority]" />
663 <item property="Stack Limit" value="%x[WaitTermination_TCB[i].pxStack]" />
664 <item property="Stack Top" value="%x[WaitTermination_TCB[i].pxTopOfStack]" />
666 <print cond="WaitTermination_TCB[i].StackOverflow == 0" property="Stack Available" value="%d[WaitTermination_TCB[i].StackAvailable] bytes"/>
667 <print cond="WaitTermination_TCB[i].StackOverflow != 0" property="Stack Overflow" value="%d[WaitTermination_TCB[i].StackAvailable] bytes" bold="1" alert="1"/>
673 <item property="Timers (%d[Timer_CB._count])" value="">
674 <list name="i" start="0" limit="Timer_CB._count">
675 <item property="h: %x[Timer_CB[i]._addr] %t[Timer_CB[i].Name]" value="">
676 <item property="Wake Time" value="%d[Timer_CB[i].xTimerListItem_xItemValue]" />
677 <item property="Period" value="%d[Timer_CB[i].xTimerPeriodInTicks]" />
678 <item property="ID" value="%x[Timer_CB[i].pvTimerID]" />
679 <item property="Callback" value="%S[Timer_CB[i].pxCallbackFunction]" />
684 <item property="Overflowed Timers (%d[OverflowTimer_CB._count])" value="" cond="OverflowTimer_CB._count">
685 <list name="i" start="0" limit="OverflowTimer_CB._count">
686 <item property="h: %x[OverflowTimer_CB[i]._addr] %t[OverflowTimer_CB[i].Name]" value="">
687 <item property="Wake Time" value="%d[OverflowTimer_CB[i].xTimerListItem_xItemValue]" />
688 <item property="Period" value="%d[OverflowTimer_CB[i].xTimerPeriodInTicks]" />
689 <item property="ID" value="%x[OverflowTimer_CB[i].pvTimerID]" />
690 <item property="Callback" value="%S[OverflowTimer_CB[i].pxCallbackFunction]" />
695 <item property="Mutexes (%d[Queue_REG_Mutexes])" value="" cond="Queue_REG_Size">
696 <list name="i" start="0" limit="Queue_CB._count">
697 <item property="h: %x[Queue_CB[i]._addr] %t[Queue_CB[i].Name]" value="" cond="Queue_CB[i].Type == 1">
698 <item property="State" value="%t[Queue_CB[i].uxMessagesWaiting == 0 ? "Locked" : "Released"]" />
699 <item property="Recursive counter" value="%d[Queue_CB[i].u_uxRecursiveCallCount]" cond="Queue_CB[i].u_uxRecursiveCallCount"/>
700 <item property="Owner thread" value="h: %x[Queue_CB[i].pcTail]" cond="Queue_CB[i].pcTail != 0"/>
705 <item property="Semaphores (%d[Queue_REG_Semaphores])" value="" cond="Queue_REG_Size">
706 <list name="i" start="0" limit="Queue_CB._count">
707 <item property="h: %x[Queue_CB[i]._addr] %t[Queue_CB[i].Name]" value="" cond="Queue_CB[i].Type == 2">
708 <item property="Tokens" value="%d[Queue_CB[i].uxMessagesWaiting]" />
709 <item property="Max Tokens" value="%d[Queue_CB[i].uxLength]" />
714 <item property="Queues (%d[Queue_REG_Queues])" value="" cond="Queue_REG_Size">
715 <list name="i" start="0" limit="Queue_CB._count">
716 <item property="h: %x[Queue_CB[i]._addr] %t[Queue_CB[i].Name]" value="" cond="Queue_CB[i].Type == 0">
717 <item property="Objects" value="%d[Queue_CB[i].uxMessagesWaiting]" />
718 <item property="Max Objects" value="%d[Queue_CB[i].uxLength]"/>
719 <item property="Object size" value="%d[Queue_CB[i].uxItemSize]"/>
721 <!-- Queued messages -->
722 <item cond="Queue_CB[i].uxMessagesWaiting" property="Queue (%d[Queue_CB[i].uxMessagesWaiting])" value="">
723 <list name="j" start="0" limit="Queue_CB[i].uxMessagesWaiting">
724 <item property="Queue[%d[j]]" value="Address: %x[Queue_CB[i].pcHead + (j * Queue_CB[i].uxItemSize)]" />
738 <group name="FreeRTOS RTOS">
739 <component name="Tasks Events" brief="FreeRTOS Tasks" no="0xF0" prefix="EvrFreeRTOSTasks_" info="FreeRTOS Tasks Events">
740 <state name="Inactive" plot="off" />
741 <state name="Ready" plot="box" />
742 <state name="Running" plot="box" bold="1" unique="1" />
743 <state name="Blocked" plot="line" />
744 <state name="Not-running" plot="line" bold="1" dormant="1" />
746 <component name="Queue Events" brief="FreeRTOS Queue" no="0xF1" prefix="EvrFreeRTOSQueue_" info="FreeRTOS Queue Events"/>
747 <component name="Timers Events" brief="FreeRTOS Timers" no="0xF2" prefix="EvrFreeRTOSTimers_" info="FreeRTOS Timers Events"/>
748 <component name="EventGroups Events" brief="FreeRTOS EventGroups" no="0xF3" prefix="EvrFreeRTOSEventGroups_" info="FreeRTOS Event Groups Events"/>
749 <component name="Heap Events" brief="FreeRTOS Heap" no="0xF4" prefix="EvrFreeRTOSHeap_" info="FreeRTOS Heap Events"/>
750 <component name="Stream Buffer Events" brief="FreeRTOS StreamBuffer" no="0xF5" prefix="EvrFreeRTOSStreamBuf_" info="FreeRTOS Stream Buffer Events"/>
753 <event id="0xF000 + 0xFF" level="Op" property="TaskTrackingReset" tracking="Reset" value="" info=""/>
754 <event id="0xF000 + 0x00" level="Op" property="TaskCreate" state="Inactive" handle="val1" tracking="Start" value="pxNewTCB=%x[val1]" info=""/>
755 <event id="0xF000 + 0x01" level="Error" property="TaskCreateFailed" value="" info=""/>
756 <event id="0xF000 + 0x02" level="Op" property="TaskDelete" state="Inactive" handle="val1" tracking="Stop" value="pxTCB=%x[val1]" info=""/>
757 <event id="0xF000 + 0x03" level="Op" property="TaskDelayUntil" value="xTimeToWake=%d[val1]" info=""/>
758 <event id="0xF000 + 0x04" level="Op" property="TaskDelay" value="xTicksToDelay=%d[val1]" info=""/>
759 <event id="0xF000 + 0x05" level="Op" property="TaskPrioritySet" value="pxTCB=%x[val1], uxNewPriority=%d[val2]" info=""/>
760 <event id="0xF000 + 0x06" level="Op" property="TaskSuspend" state="Blocked" handle="val1" value="pxTCB=%x[val1]" info=""/>
761 <event id="0xF000 + 0x07" level="Op" property="TaskResume" value="pxTCB=%x[val1]" info=""/>
762 <event id="0xF000 + 0x08" level="Op" property="TaskResumeFromIsr" value="pxTCB=%x[val1]" info=""/>
763 <event id="0xF000 + 0x09" level="Detail" property="TaskIncrementTick" value="xTickCount=%d[val1]" info=""/>
764 <event id="0xF000 + 0x0A" level="Op" property="IncreaseTickCount" value="xTicksToJump=%d[val1]" info=""/>
765 <event id="0xF000 + 0x0B" level="Op" property="TaskSwitchedOut" state="Blocked" handle="val1" value="pxCurrentTCB=%x[val1]" info=""/>
766 <event id="0xF000 + 0x0C" level="Op" property="TaskSwitchedIn" state="Running" handle="val1" value="pxCurrentTCB=%x[val1], priority=%d[val2]" info=""/>
767 <event id="0xF000 + 0x0D" level="Op" property="TaskPriorityInherit" value="pxTCBOfMutexHolder=%x[val1], uxInheritedPriority=%d[val2]" info=""/>
768 <event id="0xF000 + 0x0E" level="Op" property="TaskPriorityDisinherit" value="pxTCBOfMutexHolder=%x[val1], uxOriginalPriority=%d[val2]" info=""/>
769 <event id="0xF000 + 0x0F" level="Op" property="MovedTaskToReadyState" state="Ready" handle="val1" value="pxTCB=%x[val1]" info=""/>
770 <event id="0xF000 + 0x10" level="Op" property="PostMovedTaskToReadyState" value="pxTCB=%x[val1]" info=""/>
771 <event id="0xF000 + 0x11" level="Op" property="LowPowerIdleBegin" value="xExpectedIdleTime=%d[val1]" info=""/>
772 <event id="0xF000 + 0x12" level="Op" property="LowPowerIdleEnd" value="" info=""/>
773 <event id="0xF000 + 0x13" level="Op" property="TaskNotifyTakeBlock" value="uxIndexToWait=%d[val1], xTicksToWait=%d[val2]" info=""/>
774 <event id="0xF000 + 0x14" level="Op" property="TaskNotifyTake" value="uxIndexToWait=%d[val1], ulNotifiedValue=%x[val2]" info=""/>
775 <event id="0xF000 + 0x15" level="Op" property="TaskNotifyWaitBlock" value="uxIndexToWait=%d[val1], xTicksToWait=%d[val2]" info=""/>
776 <event id="0xF000 + 0x16" level="Op" property="TaskNotifyWait" value="uxIndexToWait=%d[val1], ulNotifiedValue=%x[val2]" info=""/>
777 <event id="0xF000 + 0x17" level="Op" property="TaskNotify" value="xTaskToNotify=%x[val1], uxIndexToWait=%x[val2], eAction=%x[val3], ulNotifiedValue=%x[val4]" info=""/>
778 <event id="0xF000 + 0x18" level="Op" property="TaskNotifyFromIsr" value="xTaskToNotify=%x[val1], uxIndexToWait=%x[val2], eAction=%x[val3], ulNotifiedValue=%x[val4]" info=""/>
779 <event id="0xF000 + 0x19" level="Op" property="TaskNotifyGiveFromIsr" value="xTaskToNotify=%x[val1], uxIndexToWait=%x[val2], ulNotifiedValue=%x[val3]" info=""/>
781 <event id="0xF100 + 0x00" level="Op" property="QueueCreate" value="pxQueue=%x[val1]" info=""/>
782 <event id="0xF100 + 0x01" level="Error" property="QueueCreateFailed" value="ucQueueType=%x[val1]" info=""/>
783 <event id="0xF100 + 0x02" level="Op" property="CreateMutex" value="pxNewQueue=%x[val1]" info=""/>
784 <event id="0xF100 + 0x03" level="Error" property="CreateMutexFailed" value="" info=""/>
785 <event id="0xF100 + 0x04" level="Op" property="GiveMutexRecursive" value="pxMutex=%x[val1]" info=""/>
786 <event id="0xF100 + 0x05" level="Error" property="GiveMutexRecursiveFailed" value="pxMutex=%x[val1]" info=""/>
787 <event id="0xF100 + 0x06" level="Op" property="TakeMutexRecursive" value="pxMutex=%x[val1]" info=""/>
788 <event id="0xF100 + 0x07" level="Error" property="TakeMutexRecursiveFailed" value="pxMutex=%x[val1]" info=""/>
789 <event id="0xF100 + 0x08" level="Op" property="CreateCountingSemaphore" value="xHandle=%x[val1]" info=""/>
790 <event id="0xF100 + 0x09" level="Error" property="CreateCountingSemaphoreFailed" value="" info=""/>
791 <event id="0xF100 + 0x0A" level="Op" property="QueueSend" value="pxQueue=%x[val1]" info=""/>
792 <event id="0xF100 + 0x0B" level="Error" property="QueueSendFailed" value="pxQueue=%x[val1]" info=""/>
793 <event id="0xF100 + 0x0C" level="Op" property="QueueReceive" value="pxQueue=%x[val1]" info=""/>
794 <event id="0xF100 + 0x0D" level="Op" property="QueuePeek" value="pxQueue=%x[val1]" info=""/>
795 <event id="0xF100 + 0x0E" level="Op" property="QueuePeekFromIsr" value="pxQueue=%x[val1]" info=""/>
796 <event id="0xF100 + 0x0F" level="Error" property="QueueReceiveFailed" value="pxQueue=%x[val1]" info=""/>
797 <event id="0xF100 + 0x10" level="Op" property="QueueSendFromIsr" value="pxQueue=%x[val1]" info=""/>
798 <event id="0xF100 + 0x11" level="Error" property="QueueSendFromIsrFailed" value="pxQueue=%x[val1]" info=""/>
799 <event id="0xF100 + 0x12" level="Op" property="QueueReceiveFromIsr" value="pxQueue=%x[val1]" info=""/>
800 <event id="0xF100 + 0x13" level="Error" property="QueueReceiveFromIsrFailed" value="pxQueue=%x[val1]" info=""/>
801 <event id="0xF100 + 0x14" level="Error" property="QueuePeekFromIsrFailed" value="pxQueue=%x[val1]" info=""/>
802 <event id="0xF100 + 0x15" level="Op" property="QueueDelete" value="pxQueue=%x[val1]" info=""/>
803 <event id="0xF100 + 0x16" level="Op" property="QueueRegistryAdd" value="pxQueue=%x[val1], pcQueueName=%x[val2]" info=""/>
804 <event id="0xF100 + 0x17" level="Op" property="BlockingOnQueueReceive" value="pxQueue=%x[val1]" info=""/>
805 <event id="0xF100 + 0x18" level="Op" property="BlockingOnQueueSend" value="pxQueue=%x[val1]" info=""/>
807 <event id="0xF200 + 0x00" level="Op" property="TimerCreate" value="pxNewTimer=%x[val1]" info=""/>
808 <event id="0xF200 + 0x01" level="Error" property="TimerCreateFailed" value="" info=""/>
809 <event id="0xF200 + 0x02" level="Op" property="TimerCommandSend" value="xTimer=%x[val1], xMessageID=%x[val2], xOptionalValue=%x[val3], xReturn=%x[val4]" info=""/>
810 <event id="0xF200 + 0x03" level="Op" property="TimerCommandReceived" value="xTimer=%x[val1], xMessageID=%x[val2], xOptionalValue=%x[val3]" info=""/>
811 <event id="0xF200 + 0x04" level="Op" property="TimerExpired" value="pxTimer=%x[val1]" info=""/>
812 <event id="0xF200 + 0x05" level="Op" property="PendFuncCall" value="pxFunctionToPend=%x[val1], pvParameter1=%x[val2], ulParameter2=%x[val3], xReturn=%x[val4]" info=""/>
813 <event id="0xF200 + 0x06" level="Op" property="PendFuncCallFromIsr" value="pxFunctionToPend=%x[val1], pvParameter1=%x[val2], ulParameter2=%x[val3], xReturn=%x[val4]" info=""/>
815 <event id="0xF300 + 0x00" level="Op" property="EventGroupCreate" value="pxEventGroup=%x[val1]" info=""/>
816 <event id="0xF300 + 0x01" level="Error" property="EventGroupCreateFailed" value="" info=""/>
817 <event id="0xF300 + 0x02" level="Op" property="EventGroupSyncBlock" value="pxEventGroup=%x[val1], uxBitsToSet=%x[val2], uxBitsToWaitFor=%x[val3]" info=""/>
818 <event id="0xF300 + 0x03" level="Op" property="EventGroupSyncEnd" value="pxEventGroup=%x[val1], uxBitsToSet=%x[val2], uxBitsToWaitFor=%x[val3], xTimeoutOccurred=%x[val4]" info=""/>
819 <event id="0xF300 + 0x04" level="Op" property="EventGroupWaitBitsBlock" value="pxEventGroup=%x[val1], uxBitsToWaitFor=%x[val2]" info=""/>
820 <event id="0xF300 + 0x05" level="Op" property="EventGroupWaitBitsEnd" value="pxEventGroup=%x[val1], uxBitsToWaitFor=%x[val2], xTimeoutOccurred=%x[val3]" info=""/>
821 <event id="0xF300 + 0x06" level="Op" property="EventGroupClearBits" value="pxEventGroup=%x[val1], uxBitsToClear=%x[val2]" info=""/>
822 <event id="0xF300 + 0x07" level="Op" property="EventGroupClearBitsFromIsr" value="pxEventGroup=%x[val1], uxBitsToClear=%x[val2]" info=""/>
823 <event id="0xF300 + 0x08" level="Op" property="EventGroupSetBits" value="pxEventGroup=%x[val1], uxBitsToSet=%x[val2]" info=""/>
824 <event id="0xF300 + 0x09" level="Op" property="EventGroupSetBitsFromIsr" value="pxEventGroup=%x[val1], uxBitsToSet=%x[val2]" info=""/>
825 <event id="0xF300 + 0x0A" level="Op" property="EventGroupDelete" value="pxEventGroup=%x[val1]" info=""/>
827 <event id="0xF400 + 0x00" level="Op" property="Malloc" value="pvAddress=%x[val1], uiSize=%d[val2]" info=""/>
828 <event id="0xF400 + 0x01" level="Op" property="Free" value="pvAddress=%x[val1], uiSize=%d[val2]" info=""/>
830 <event id="0xF500 + 0x00" level="Error" property="StreamBufferCreateFailed" value="uxIsMessageBuffer=%d[val1]" info=""/>
831 <event id="0xF500 + 0x01" level="Error" property="StreamBufferCreateStaticFailed" value="pxStreamBuffer=%x[val1], uxIsMessageBuffer=%d[val2]" info=""/>
832 <event id="0xF500 + 0x02" level="Op" property="StreamBufferCreate" value="pxStreamBuffer=%x[val1], uxIsMessageBuffer=%d[val2]" info=""/>
833 <event id="0xF500 + 0x03" level="Op" property="StreamBufferDelete" value="pxStreamBuffer=%x[val1]" info=""/>
834 <event id="0xF500 + 0x04" level="Op" property="StreamBufferReset" value="pxStreamBuffer=%x[val1]" info=""/>
835 <event id="0xF500 + 0x05" level="Op" property="StreamBufferBlockingOnSend" value="pxStreamBuffer=%x[val1]" info=""/>
836 <event id="0xF500 + 0x06" level="Op" property="StreamBufferSend" value="pxStreamBuffer=%x[val1], xBytesSent=%d[val2]" info=""/>
837 <event id="0xF500 + 0x07" level="Error" property="StreamBufferSendFailed" value="pxStreamBuffer=%x[val1]" info=""/>
838 <event id="0xF500 + 0x08" level="Op" property="StreamBufferSendFromIsr" value="pxStreamBuffer=%x[val1], xBytesSent=%d[val2]" info=""/>
839 <event id="0xF500 + 0x09" level="Op" property="StreamBufferBlockingOnReceive" value="pxStreamBuffer=%x[val1]" info=""/>
840 <event id="0xF500 + 0x0A" level="Op" property="StreamBufferReceive" value="pxStreamBuffer=%x[val1], xReceivedLength=%d[val2]" info=""/>
841 <event id="0xF500 + 0x0B" level="Error" property="StreamBufferReceiveFailed" value="pxStreamBuffer=%x[val1]" info=""/>
842 <event id="0xF500 + 0x0C" level="Op" property="StreamBufferReceiveFromIsr" value="pxStreamBuffer=%x[val1], xReceivedLength=%d[val2]" info=""/>