blob: 723a711871a4a5b502fb3cd71883b426917258a5 [file] [log] [blame]
Matthias Hertelb73eaf32016-07-22 15:18:56 +02001<?xml version="1.0" encoding="utf-8"?>
Robert Rostoharc2d79592018-06-18 11:42:47 +02002<component_viewer schemaVersion="1.2.0" xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="Component_Viewer.xsd">
Robert Rostohar83177af2018-09-04 10:27:04 +02003 <component name="CMSIS:RTOS2:Keil RTX5" shortname="RTX5" version="5.5.0"/> <!-- name and version of the component -->
Matthias Hertelb73eaf32016-07-22 15:18:56 +02004
5 <typedefs>
Robert Rostohar0667b182016-11-25 21:48:19 +01006 <!-- Attributes structure for thread -->
7 <typedef name="osThreadAttr_t" info="" size="36">
8 <member name="name" type="uint32_t" offset="0" info="name of the thread (type is const char *)"/>
9 <member name="attr_bits" type="uint32_t" offset="4" info="attribute bits"/>
10 <member name="cb_mem" type="uint32_t" offset="8" info="memory for control block (type is void *)"/>
11 <member name="cb_size" type="uint32_t" offset="12" info="size of provided memory for control block"/>
12 <member name="stack_mem" type="uint32_t" offset="16" info="memory for stack (type is void *)"/>
13 <member name="stack_size" type="uint32_t" offset="20" info="size of stack"/>
14 <member name="priority" type="uint32_t" offset="24" info="initial thread priority (type is osPriority_t)"/>
15 <member name="tz_module" type="uint32_t" offset="28" info="TrustZone module identifier (type is TZ_ModuleId_t)"/>
16 <member name="reserved" type="uint32_t" offset="32" info="reserved (must be 0)"/>
17 </typedef>
18
19 <!-- Attributes structure for timer -->
20 <typedef name="osTimerAttr_t" info="" size="16">
21 <member name="name" type="uint32_t" offset="0" info="name of the timer (type is const char *)"/>
22 <member name="attr_bits" type="uint32_t" offset="4" info="attribute bits"/>
23 <member name="cb_mem" type="uint32_t" offset="8" info="memory for control block (type is void *)"/>
24 <member name="cb_size" type="uint32_t" offset="12" info="size of provided memory for control block"/>
25 </typedef>
26
27 <!-- Attributes structure for event flags -->
28 <typedef name="osEventFlagsAttr_t" info="" size="16">
29 <member name="name" type="uint32_t" offset="0" info="name of the event flags (type is const char *)"/>
30 <member name="attr_bits" type="uint32_t" offset="4" info="attribute bits"/>
31 <member name="cb_mem" type="uint32_t" offset="8" info="memory for control block (type is void *)"/>
32 <member name="cb_size" type="uint32_t" offset="12" info="size of provided memory for control block"/>
33 </typedef>
34
35 <!-- Attributes structure for mutex -->
36 <typedef name="osMutexAttr_t" info="" size="16">
37 <member name="name" type="uint32_t" offset="0" info="name of the mutex (type is const char *)"/>
38 <member name="attr_bits" type="uint32_t" offset="4" info="attribute bits"/>
39 <member name="cb_mem" type="uint32_t" offset="8" info="memory for control block (type is void *)"/>
40 <member name="cb_size" type="uint32_t" offset="12" info="size of provided memory for control block"/>
41 </typedef>
42
43 <!-- Attributes structure for semaphore -->
44 <typedef name="osSemaphoreAttr_t" info="" size="16">
45 <member name="name" type="uint32_t" offset="0" info="name of the semaphore (type is const char *)"/>
46 <member name="attr_bits" type="uint32_t" offset="4" info="attribute bits"/>
47 <member name="cb_mem" type="uint32_t" offset="8" info="memory for control block (type is void *)"/>
48 <member name="cb_size" type="uint32_t" offset="12" info="size of provided memory for control block"/>
49 </typedef>
50
51 <!-- Attributes structure for memory pool -->
52 <typedef name="osMemoryPoolAttr_t" info="" size="24">
53 <member name="name" type="uint32_t" offset="0" info="name of the semaphore (type is const char *)"/>
54 <member name="attr_bits" type="uint32_t" offset="4" info="attribute bits"/>
55 <member name="cb_mem" type="uint32_t" offset="8" info="memory for control block (type is void *)"/>
56 <member name="cb_size" type="uint32_t" offset="12" info="size of provided memory for control block"/>
57 <member name="mp_mem" type="uint32_t" offset="16" info="memory for data storage (type is void *)"/>
58 <member name="mp_size" type="uint32_t" offset="20" info="size of provided memory for data storage"/>
59 </typedef>
60
61 <!-- Attributes structure for message queue -->
62 <typedef name="osMessageQueueAttr_t" info="" size="24">
63 <member name="name" type="uint32_t" offset="0" info="name of the semaphore (type is const char *)"/>
64 <member name="attr_bits" type="uint32_t" offset="4" info="attribute bits"/>
65 <member name="cb_mem" type="uint32_t" offset="8" info="memory for control block (type is void *)"/>
66 <member name="cb_size" type="uint32_t" offset="12" info="size of provided memory for control block"/>
67 <member name="mq_mem" type="uint32_t" offset="16" info="memory for data storage (type is void *)"/>
68 <member name="mq_size" type="uint32_t" offset="20" info="size of provided memory for data storage"/>
69 </typedef>
70
Robert Rostohare6ffbc42016-09-14 10:35:53 +020071 <!-- Thread Control Block -->
Robert Rostohar0667b182016-11-25 21:48:19 +010072 <typedef name="osRtxThread_t" info="" size="68">
73 <member name="id" type="uint8_t" offset="0" info="Object Identifier"/>
74 <member name="state" type="uint8_t" offset="1" info="Object State">
Matthias Hertelb73eaf32016-07-22 15:18:56 +020075 <enum name="osThreadInactive" value="0" info=""/>
76 <enum name="osThreadReady" value="1" info=""/>
77 <enum name="osThreadRunning" value="2" info=""/>
Robert Rostoharb3c06362016-10-19 14:24:56 +020078 <enum name="osThreadBlocked" value="3" info=""/>
79 <enum name="osThreadTerminated" value="4" info=""/>
Matthias Hertelb73eaf32016-07-22 15:18:56 +020080 <enum name="osThreadError" value="-1" info=""/>
81
Robert Rostoharb3c06362016-10-19 14:24:56 +020082 <enum name="Delay" value="0x13" info=""/>
83 <enum name="Join" value="0x23" info=""/>
84 <enum name="Thread Flags" value="0x33" info=""/>
85 <enum name="Event Flags" value="0x43" info=""/>
86 <enum name="Mutex" value="0x53" info=""/>
87 <enum name="Semaphore" value="0x63" info=""/>
88 <enum name="Memory Pool" value="0x73" info=""/>
89 <enum name="Message Get" value="0x83" info=""/>
90 <enum name="Message Put" value="0x93" info=""/>
Matthias Hertelb73eaf32016-07-22 15:18:56 +020091 </member>
Robert Rostohar0667b182016-11-25 21:48:19 +010092 <member name="flags" type="uint8_t" offset="2" info="Object Flags"/>
93 <member name="attr" type="uint8_t" offset="3" info="Object Attributes">
Robert Rostoharb3c06362016-10-19 14:24:56 +020094 <enum name="osThreadDetached" value="0x00" info="Thread created in detached state"/>
95 <enum name="osThreadJoinable" value="0x01" info="Thread created in joinable state"/>
96 </member>
Robert Rostohar0667b182016-11-25 21:48:19 +010097 <member name="name" type="uint32_t" offset="4" info="Object name (type is *uint8_t)"/>
98 <member name="thread_next" type="*osRtxThread_t" offset="8" info="Link pointer to next Thread in Object list"/>
99 <member name="thread_prev" type="*osRtxThread_t" offset="12" info="Link pointer to previous Thread in Object list"/>
100 <member name="delay_next" type="*osRtxThread_t" offset="16" info="Link pointer to next Thread in Delay list"/>
101 <member name="delay_prev" type="*osRtxThread_t" offset="20" info="Link pointer to previous Thread in Delay list"/>
102 <member name="thread_join" type="*osRtxThread_t" offset="24" info="Thread waiting to Join"/>
103 <member name="delay" type="uint32_t" offset="28" info="Delay time"/>
104 <member name="priority" type="int8_t" offset="32" info="Thread priority">
Matthias Hertelb73eaf32016-07-22 15:18:56 +0200105 <enum name="osPriorityNone" value="0" info=""/>
106 <enum name="osPriorityIdle" value="1" info=""/>
107 <enum name="osPriorityLow" value="8" info=""/>
108 <enum name="osPriorityLow1" value="8+1" info=""/>
109 <enum name="osPriorityLow2" value="8+2" info=""/>
110 <enum name="osPriorityLow3" value="8+3" info=""/>
111 <enum name="osPriorityLow4" value="8+4" info=""/>
112 <enum name="osPriorityLow5" value="8+5" info=""/>
113 <enum name="osPriorityLow6" value="8+6" info=""/>
114 <enum name="osPriorityLow7" value="8+7" info=""/>
115 <enum name="osPriorityBelowNormal" value="16" info=""/>
116 <enum name="osPriorityBelowNormal1" value="16+1" info=""/>
117 <enum name="osPriorityBelowNormal2" value="16+2" info=""/>
118 <enum name="osPriorityBelowNormal3" value="16+3" info=""/>
119 <enum name="osPriorityBelowNormal4" value="16+4" info=""/>
120 <enum name="osPriorityBelowNormal5" value="16+5" info=""/>
121 <enum name="osPriorityBelowNormal6" value="16+6" info=""/>
122 <enum name="osPriorityBelowNormal7" value="16+7" info=""/>
123 <enum name="osPriorityNormal" value="24" info=""/>
124 <enum name="osPriorityNormal1" value="24+1" info=""/>
125 <enum name="osPriorityNormal2" value="24+2" info=""/>
126 <enum name="osPriorityNormal3" value="24+3" info=""/>
127 <enum name="osPriorityNormal4" value="24+4" info=""/>
128 <enum name="osPriorityNormal5" value="24+5" info=""/>
129 <enum name="osPriorityNormal6" value="24+6" info=""/>
130 <enum name="osPriorityNormal7" value="24+7" info=""/>
131 <enum name="osPriorityAboveNormal" value="32" info=""/>
132 <enum name="osPriorityAboveNormal1" value="32+1" info=""/>
133 <enum name="osPriorityAboveNormal2" value="32+2" info=""/>
134 <enum name="osPriorityAboveNormal3" value="32+3" info=""/>
135 <enum name="osPriorityAboveNormal4" value="32+4" info=""/>
136 <enum name="osPriorityAboveNormal5" value="32+5" info=""/>
137 <enum name="osPriorityAboveNormal6" value="32+6" info=""/>
138 <enum name="osPriorityAboveNormal7" value="32+7" info=""/>
139 <enum name="osPriorityHigh" value="40" info=""/>
140 <enum name="osPriorityHigh1" value="40+1" info=""/>
141 <enum name="osPriorityHigh2" value="40+2" info=""/>
142 <enum name="osPriorityHigh3" value="40+3" info=""/>
143 <enum name="osPriorityHigh4" value="40+4" info=""/>
144 <enum name="osPriorityHigh5" value="40+5" info=""/>
145 <enum name="osPriorityHigh6" value="40+6" info=""/>
146 <enum name="osPriorityHigh7" value="40+7" info=""/>
147 <enum name="osPriorityRealtime" value="48" info=""/>
148 <enum name="osPriorityRealtime1" value="48+1" info=""/>
149 <enum name="osPriorityRealtime2" value="48+2" info=""/>
150 <enum name="osPriorityRealtime3" value="48+3" info=""/>
151 <enum name="osPriorityRealtime4" value="48+4" info=""/>
152 <enum name="osPriorityRealtime5" value="48+5" info=""/>
153 <enum name="osPriorityRealtime6" value="48+6" info=""/>
154 <enum name="osPriorityRealtime7" value="48+7" info=""/>
155 <enum name="osPriorityISR" value="56" info=""/>
156 <enum name="osPriorityError" value="-1" info=""/>
157 </member>
Robert Rostohar0667b182016-11-25 21:48:19 +0100158 <member name="priority_base" type="int8_t" offset="33" info="Base priority"/>
159 <member name="stack_frame" type="uint8_t" offset="34" info="Stack frame"/>
160 <member name="flags_options" type="uint8_t" offset="35" info="Thread/Event flags options">
Vladimir Umek971a2842017-03-06 07:58:56 +0100161 <enum name="osFlagsWaitAny" value="0x00" info="Wait for any flag."/>
162 <enum name="osFlagsWaitAll" value="0x01" info="Wait for all flags."/>
163 <enum name="osFlagsNoClear" value="0x02" info="Do not clear flags which have been specified to wait for."/>
Robert Rostoharb3c06362016-10-19 14:24:56 +0200164 </member>
Robert Rostohar0667b182016-11-25 21:48:19 +0100165 <member name="wait_flags" type="int32_t" offset="36" info="Waiting Thread/Event flags"/>
166 <member name="thread_flags" type="int32_t" offset="40" info="Thread flags"/>
167 <member name="mutex_list" type="*osRtxMutex_t" offset="44" info="Link pointer to list of owned mutexes"/>
168 <member name="stack_mem" type="uint32_t" offset="48" info="Stack memory (type is void *)"/>
169 <member name="stack_size" type="uint32_t" offset="52" info="Stack size"/>
170 <member name="sp" type="uint32_t" offset="56" info="Current stack pointer"/>
171 <member name="thread_addr" type="uint32_t" offset="60" info="Thread entry address"/>
172 <member name="tz_memory" type="uint32_t" offset="64" info="TrustZone Memory Identifier"/>
Matthias Hertelb73eaf32016-07-22 15:18:56 +0200173
Robert Rostoharb3c06362016-10-19 14:24:56 +0200174 <var name="obj_name" type="uint8_t" info="Object name string" size="66" />
Vladimir Umek04f96872018-04-20 10:45:32 +0200175 <var name="cb_valid" type="uint32_t" info="Control block validation status (valid=1, invalid=0)"/>
176 <var name="sp_valid" type="uint32_t" info="Stack pointer validation status (valid=1, invalid=0)"/>
Vladimir Umekbf186a62017-07-03 13:04:32 +0200177 <var name="out_type" type="uint8_t" info="Output display type ID"/>
Matthias Hertelb73eaf32016-07-22 15:18:56 +0200178
Robert Rostohare6ffbc42016-09-14 10:35:53 +0200179 <var name="ex_delay" type="uint32_t" info="Calculated execution delay"/>
Matthias Hertelb73eaf32016-07-22 15:18:56 +0200180
Robert Rostohare6ffbc42016-09-14 10:35:53 +0200181 <var name="stack_val" type="uint32_t" info="Stack usage: analysis result"/>
Vladimir Umekbf186a62017-07-03 13:04:32 +0200182 <var name="stack_cur" type="uint32_t" info="Stack usage: current (address)"/>
Robert Rostoharb3c06362016-10-19 14:24:56 +0200183 <var name="stack_curp" type="uint32_t" info="Stack usage: current (in percent)"/>
184 <var name="stack_curb" type="uint32_t" info="Stack usage: current (in bytes)"/>
Robert Rostohare6ffbc42016-09-14 10:35:53 +0200185 <var name="stack_maxb" type="uint32_t" info="Stack usage: maximum (in bytes)"/>
186 <var name="stack_maxp" type="uint32_t" info="Stack usage: maximum (in percent)"/>
187 <var name="stack_over" type="uint8_t" info="Stack usage: overflow"/>
Matthias Hertelb73eaf32016-07-22 15:18:56 +0200188 </typedef>
189
Robert Rostohare6ffbc42016-09-14 10:35:53 +0200190 <!-- Timer Control Block -->
Robert Rostohar0667b182016-11-25 21:48:19 +0100191 <typedef name="osRtxTimer_t" info="" size="32">
192 <member name="id" type="uint8_t" offset="0" info="Object Identifier"/>
193 <member name="state" type="uint8_t" offset="1" info="Object State">
Matthias Hertelb73eaf32016-07-22 15:18:56 +0200194 <enum name="Inactive" value="0" info="Timer is not active"/>
195 <enum name="Stopped" value="1" info="Timer is stopped"/>
196 <enum name="Running" value="2" info="Timer is running"/>
197 </member>
Robert Rostohar0667b182016-11-25 21:48:19 +0100198 <member name="flags" type="uint8_t" offset="2" info="Object Flags"/>
199 <member name="type" type="uint8_t" offset="3" info="Timer Type">
Matthias Hertelb73eaf32016-07-22 15:18:56 +0200200 <enum name="osTimerOnce" value="0" info="One-shot timer"/>
201 <enum name="osTimerPeriodic" value="1" info="Periodic timer"/>
202 </member>
Robert Rostohar0667b182016-11-25 21:48:19 +0100203 <member name="name" type="uint32_t" offset="4" info="Object name (type is *uint8_t)"/>
204 <member name="prev" type="*osRtxTimer_t" offset="8" info="Pointer to previous active timer"/>
205 <member name="next" type="*osRtxTimer_t" offset="12" info="Pointer to next active timer"/>
206 <member name="tick" type="uint32_t" offset="16" info="Timer current tick"/>
207 <member name="load" type="uint32_t" offset="20" info="Timer load value"/>
Vladimir Umek971a2842017-03-06 07:58:56 +0100208 <!-- Inlined "osRtxTimerFinfo_t" structure -->
Robert Rostohar0667b182016-11-25 21:48:19 +0100209 <member name="finfo_fp" type="uint32_t" offset="24" info="Timer function pointer (type is void *)"/>
210 <member name="finfo_arg" type="uint32_t" offset="28" info="Timer function argument (type is void *)"/>
Matthias Hertelb73eaf32016-07-22 15:18:56 +0200211
Robert Rostoharb3c06362016-10-19 14:24:56 +0200212 <var name="obj_name" type="uint8_t" info="Object name string" size="66" />
Robert Rostohare6ffbc42016-09-14 10:35:53 +0200213 <var name="cb_valid" type="uint32_t" info="Control Block validation status (valid=1, invalid=0)"/>
214 <var name="ex_tick" type="uint32_t" info="Calculated absolute tick time"/>
Matthias Hertelb73eaf32016-07-22 15:18:56 +0200215 </typedef>
216
Robert Rostohare6ffbc42016-09-14 10:35:53 +0200217 <!-- Event Flags Control Block -->
Robert Rostohar0667b182016-11-25 21:48:19 +0100218 <typedef name="osRtxEventFlags_t" info="" size="16">
219 <member name="id" type="uint8_t" offset="0" info="Object Identifier"/>
220 <member name="state" type="uint8_t" offset="1" info="Object State"/>
221 <member name="flags" type="uint8_t" offset="2" info="Object Flags"/>
222 <member name="reserved" type="uint8_t" offset="3" info=""/>
223 <member name="name" type="uint32_t" offset="4" info="Object name (type is *uint8_t)"/>
224 <member name="thread_list" type="*osRtxThread_t" offset="8" info="Waiting threads list"/>
225 <member name="event_flags" type="int32_t" offset="12" info="Event flags"/>
Matthias Hertelb73eaf32016-07-22 15:18:56 +0200226
Robert Rostoharb3c06362016-10-19 14:24:56 +0200227 <var name="obj_name" type="uint8_t" info="Object name string" size="66" />
Robert Rostohare6ffbc42016-09-14 10:35:53 +0200228 <var name="cb_valid" type="uint32_t" info="Control Block validation status (valid=1, invalid=0)"/>
229 <var name="wl_idx" type="uint32_t" info="EventFlags waiting list (EWL) index" />
230 <var name="wl_cnt" type="uint32_t" info="Number of threads waiting for event flags" />
Matthias Hertelb73eaf32016-07-22 15:18:56 +0200231 </typedef>
232
Robert Rostohare6ffbc42016-09-14 10:35:53 +0200233 <!-- Mutex Control Block -->
Robert Rostohar0667b182016-11-25 21:48:19 +0100234 <typedef name="osRtxMutex_t" info="" size="28">
235 <member name="id" type="uint8_t" offset="0" info="Object Identifier"/>
236 <member name="state" type="uint8_t" offset="1" info="Object State"/>
237 <member name="flags" type="uint8_t" offset="2" info="Object Flags"/>
238 <member name="attr" type="uint8_t" offset="3" info="Object Attributes">
Robert Rostoharb3c06362016-10-19 14:24:56 +0200239 <enum name="osMutexRecursive" value="0x01" info="Recursive mutex."/>
240 <enum name="osMutexPrioInherit" value="0x02" info="Priority inherit protocol."/>
241 <enum name="osMutexRobust" value="0x08" info="Robust mutex."/>
242 </member>
Robert Rostohar0667b182016-11-25 21:48:19 +0100243 <member name="name" type="uint32_t" offset="4" info="Object name (type is *uint8_t)"/>
244 <member name="thread_list" type="*osRtxThread_t" offset="8" info="Waiting threads list"/>
245 <member name="owner_thread" type="*osRtxThread_t" offset="12" info="Owner thread"/>
246 <member name="owner_prev" type="*osRtxMutex_t" offset="16" info="Pointer to previous owned mutex"/>
247 <member name="owner_next" type="*osRtxMutex_t" offset="20" info="Pointer to next owned mutex"/>
248 <member name="lock" type="uint8_t" offset="24" info="Lock counter"/>
Matthias Hertelb73eaf32016-07-22 15:18:56 +0200249
Robert Rostoharb3c06362016-10-19 14:24:56 +0200250 <var name="obj_name" type="uint8_t" info="Object name string" size="66" />
Robert Rostohare6ffbc42016-09-14 10:35:53 +0200251 <var name="cb_valid" type="uint32_t" info="Control Block validation status (valid=1, invalid=0)"/>
252 <var name="wl_idx" type="uint32_t" info="Mutex waiting list (MWL) index" />
253 <var name="wl_cnt" type="uint32_t" info="Number of threads waiting for current mutex" />
Matthias Hertelb73eaf32016-07-22 15:18:56 +0200254 </typedef>
255
Robert Rostohare6ffbc42016-09-14 10:35:53 +0200256 <!-- Semaphore Control Block -->
Robert Rostohar0667b182016-11-25 21:48:19 +0100257 <typedef name="osRtxSemaphore_t" info="" size="16">
258 <member name="id" type="uint8_t" offset="0" info="Object Identifier"/>
259 <member name="state" type="uint8_t" offset="1" info="Object State"/>
260 <member name="flags" type="uint8_t" offset="2" info="Object Flags"/>
261 <member name="reserved" type="uint8_t" offset="3" info=""/>
262 <member name="name" type="uint32_t" offset="4" info="Object name (type is *uint8_t)"/>
263 <member name="thread_list" type="*osRtxThread_t" offset="8" info="Waiting threads list"/>
264 <member name="tokens" type="uint16_t" offset="12" info="Current number of tokens"/>
265 <member name="max_tokens" type="uint16_t" offset="14" info="Maximum number of tokens"/>
Matthias Hertelb73eaf32016-07-22 15:18:56 +0200266
Robert Rostoharb3c06362016-10-19 14:24:56 +0200267 <var name="obj_name" type="uint8_t" info="Object name string" size="66" />
Robert Rostohare6ffbc42016-09-14 10:35:53 +0200268 <var name="cb_valid" type="uint32_t" info="Control Block validation status (valid=1, invalid=0)"/>
269 <var name="wl_idx" type="uint32_t" info="Semaphore waiting list (SWL) index" />
270 <var name="wl_cnt" type="uint32_t" info="Number of threads waiting for current semaphore" />
Matthias Hertelb73eaf32016-07-22 15:18:56 +0200271 </typedef>
272
Robert Rostohare6ffbc42016-09-14 10:35:53 +0200273 <!-- Memory Pool Information -->
Robert Rostohar0667b182016-11-25 21:48:19 +0100274 <typedef name="osRtxMpInfo_t" info="Memory pool information" size="24">
Matthias Hertelb73eaf32016-07-22 15:18:56 +0200275 <member name="max_blocks" type="uint32_t" offset="0" info="Maximum number of blocks"/>
276 <member name="used_blocks" type="uint32_t" offset="4" info="Number of used blocks"/>
277 <member name="block_size" type="uint32_t" offset="8" info="Block size"/>
278 <member name="block_base" type="uint32_t" offset="12" info="Block memory base address (type is void *)"/>
279 <member name="block_lim" type="uint32_t" offset="16" info="Block memory limit address (type is void *)"/>
280 <member name="block_free" type="uint32_t" offset="20" info="First free block address (type is void *)"/>
281 </typedef>
282
Robert Rostohare6ffbc42016-09-14 10:35:53 +0200283 <!-- Memory Pool Control Block -->
Robert Rostohar0667b182016-11-25 21:48:19 +0100284 <typedef name="osRtxMemoryPool_t" info="" size="36">
285 <member name="id" type="uint8_t" offset="0" info="Object Identifier"/>
286 <member name="state" type="uint8_t" offset="1" info="Object State"/>
287 <member name="flags" type="uint8_t" offset="2" info="Object Flags"/>
288 <member name="reserved" type="uint8_t" offset="3" info=""/>
289 <member name="name" type="uint32_t" offset="4" info="Object name (type is *uint8_t)"/>
290 <member name="thread_list" type="*osRtxThread_t" offset="8" info="Waiting threads list"/>
Matthias Hertelb73eaf32016-07-22 15:18:56 +0200291
Robert Rostohar0667b182016-11-25 21:48:19 +0100292 <!-- Inlined "osRtxMpInfo_t" structure -->
293 <member name="max_blocks" type="uint32_t" offset="12+0" info="Maximum number of blocks"/>
294 <member name="used_blocks" type="uint32_t" offset="12+4" info="Number of used blocks"/>
295 <member name="block_size" type="uint32_t" offset="12+8" info="Block size"/>
296 <member name="block_base" type="uint32_t" offset="12+12" info="Block memory base address (type is void *)"/>
297 <member name="block_lim" type="uint32_t" offset="12+16" info="Block memory limit address (type is void *)"/>
298 <member name="block_free" type="uint32_t" offset="12+20" info="First free block address (type is void *)"/>
Matthias Hertelb73eaf32016-07-22 15:18:56 +0200299
Robert Rostoharb3c06362016-10-19 14:24:56 +0200300 <var name="obj_name" type="uint8_t" info="Object name string" size="66" />
Robert Rostohare6ffbc42016-09-14 10:35:53 +0200301 <var name="cb_valid" type="uint32_t" info="Control Block validation status (valid=1, invalid=0)"/>
302 <var name="wl_idx" type="uint32_t" info="Memory Pool waiting list (PWL) index" />
303 <var name="wl_cnt" type="uint32_t" info="Number of threads waiting for memory pool" />
Matthias Hertelb73eaf32016-07-22 15:18:56 +0200304 </typedef>
305
Robert Rostohare6ffbc42016-09-14 10:35:53 +0200306 <!-- Message Control Block -->
Robert Rostohar0667b182016-11-25 21:48:19 +0100307 <typedef name="osRtxMessage_t" info="" size="12">
308 <member name="id" type="uint8_t" offset="0" info="Object Identifier"/>
309 <member name="state" type="uint8_t" offset="1" info="Object State"/>
310 <member name="flags" type="uint8_t" offset="2" info="Object Flags"/>
311 <member name="priority" type="uint8_t" offset="3" info="Message priority"/>
312 <member name="prev" type="*osRtxMessage_t" offset="4" info="Pointer to previous message"/>
313 <member name="next" type="*osRtxMessage_t" offset="8" info="Pointer to next message"/>
Robert Rostoharb3c06362016-10-19 14:24:56 +0200314
315 <var name="addr" type="uint32_t" info="Message location address" />
Matthias Hertelb73eaf32016-07-22 15:18:56 +0200316 </typedef>
317
Robert Rostohare6ffbc42016-09-14 10:35:53 +0200318 <!-- Message Queue Control Block -->
Robert Rostohar0667b182016-11-25 21:48:19 +0100319 <typedef name="osRtxMessageQueue_t" info="" size="52">
320 <member name="id" type="uint8_t" offset="0" info="Object Identifier"/>
321 <member name="state" type="uint8_t" offset="1" info="Object State"/>
322 <member name="flags" type="uint8_t" offset="2" info="Object Flags"/>
323 <member name="reserved" type="uint8_t" offset="3" info=""/>
324 <member name="name" type="uint32_t" offset="4" info="Object name (type is *uint8_t)"/>
325 <member name="thread_list" type="*osRtxThread_t" offset="8" info="Waiting threads list"/>
Matthias Hertelb73eaf32016-07-22 15:18:56 +0200326
Robert Rostohar0667b182016-11-25 21:48:19 +0100327 <!-- Inlined "osRtxMpInfo_t" structure -->
328 <member name="max_blocks" type="uint32_t" offset="12+0" info="Maximum number of blocks"/>
329 <member name="used_blocks" type="uint32_t" offset="12+4" info="Number of used blocks"/>
330 <member name="block_size" type="uint32_t" offset="12+8" info="Block size"/>
331 <member name="block_base" type="uint32_t" offset="12+12" info="Block memory base address (type is void *)"/>
332 <member name="block_lim" type="uint32_t" offset="12+16" info="Block memory limit address (type is void *)"/>
333 <member name="block_free" type="uint32_t" offset="12+20" info="First free block address (type is void *)"/>
Matthias Hertelb73eaf32016-07-22 15:18:56 +0200334
Robert Rostohar0667b182016-11-25 21:48:19 +0100335 <member name="msg_size" type="uint32_t" offset="36" info="Message size"/>
336 <member name="msg_count" type="uint32_t" offset="40" info="Number of queued messages"/>
337 <member name="msg_first" type="*osRtxMessage_t" offset="44" info="Pointer to first message"/>
338 <member name="msg_last" type="*osRtxMessage_t" offset="48" info="Pointer to last message"/>
Matthias Hertelb73eaf32016-07-22 15:18:56 +0200339
Robert Rostoharb3c06362016-10-19 14:24:56 +0200340 <var name="obj_name" type="uint8_t" info="Object name string" size="66" />
Robert Rostohare6ffbc42016-09-14 10:35:53 +0200341 <var name="cb_valid" type="uint32_t" info="Control Block validation status (valid=1, invalid=0)"/>
342 <var name="wl_idx" type="uint32_t" info="Waiting list index (QWL)" />
343 <var name="wl_cnt" type="uint32_t" info="Number of threads waiting" />
Robert Rostoharb3c06362016-10-19 14:24:56 +0200344 <var name="ml_idx" type="uint32_t" info="Queue message list index (QML)" />
Vladimir Umek4e75ce62018-06-12 08:03:37 +0200345 <var name="ml_cnt" type="uint32_t" info="Number of enqueued messages" />
Matthias Hertelb73eaf32016-07-22 15:18:56 +0200346 </typedef>
347
Robert Rostohare6ffbc42016-09-14 10:35:53 +0200348 <!-- OS Runtime Information structure -->
Robert Rostohardcfd4322017-06-09 13:11:57 +0200349 <typedef name="osRtxInfo_t" info="OS Runtime Information" size="164">
Robert Rostohar0667b182016-11-25 21:48:19 +0100350 <member name="os_id" type="uint32_t" offset="0" info="OS Identification (type is *uint8_t)"/>
351 <member name="version" type="uint32_t" offset="4" info="OS Version"/>
352 <member name="kernel_state" type="uint8_t" offset="8" info="Kernel state">
Matthias Hertelb73eaf32016-07-22 15:18:56 +0200353 <enum name="osKernelInactive" value="0" info="Inactive"/>
354 <enum name="osKernelReady" value="1" info="Ready"/>
355 <enum name="osKernelRunning" value="2" info="Running"/>
356 <enum name="osKernelLocked" value="3" info="Locked"/>
357 <enum name="osKernelSuspended" value="4" info="Suspended"/>
358 <enum name="osKernelError" value="5" info="Error"/>
359 </member>
Robert Rostohar0667b182016-11-25 21:48:19 +0100360 <member name="kernel_blocked" type="uint8_t" offset="9" info="Kernel blocked"/>
Robert Rostohardcfd4322017-06-09 13:11:57 +0200361 <member name="kernel_pendSV" type="uint8_t" offset="10" info="Kernel pending SV"/>
362 <member name="kernel_tick" type="uint32_t" offset="12" info="Kernel tick counter"/>
363 <member name="tick_irqn" type="int32_t" offset="16" info="Tick timer IRQ number"/>
364 <member name="thread_run_curr" type="*osRtxThread_t" offset="20" info="Current running thread"/>
365 <member name="thread_run_next" type="*osRtxThread_t" offset="24" info="Next thread to run"/>
Matthias Hertelb73eaf32016-07-22 15:18:56 +0200366
Robert Rostohardcfd4322017-06-09 13:11:57 +0200367 <!-- Inlined "osRtxObject_t" structure at offset: 28 -->
368 <member name="thread_ready_id" type="uint8_t" offset="28+0" info="Object Identifier" />
369 <member name="thread_ready_state" type="uint8_t" offset="28+1" info="Object State" />
370 <member name="thread_ready_flags" type="uint8_t" offset="28+2" info="Object Flags" />
371 <member name="thread_ready_rsvd" type="uint8_t" offset="28+3" info="Reserved" />
372 <member name="thread_ready_name" type="uint32_t" offset="28+4" info="Object Name (type is *uint8_t)" />
373 <member name="thread_ready_thread_list" type="*osRtxThread_t" offset="28+8" info="Threads List" />
Matthias Hertelb73eaf32016-07-22 15:18:56 +0200374
Robert Rostohardcfd4322017-06-09 13:11:57 +0200375 <member name="thread_idle" type="*osRtxThread_t" offset="40" info="Idle thread"/>
376 <member name="thread_delay_list" type="*osRtxThread_t" offset="44" info="Delay list"/>
377 <member name="thread_wait_list" type="*osRtxThread_t" offset="48" info="Wait list (no timeout)"/>
378 <member name="thread_terminate_list" type="*osRtxThread_t" offset="52" info="Terminate list"/>
Matthias Hertelb73eaf32016-07-22 15:18:56 +0200379
Robert Rostohardcfd4322017-06-09 13:11:57 +0200380 <member name="thread_robin_thread" type="*osRtxThread_t" offset="56" info="Round Robin thread"/>
381 <member name="thread_robin_tick" type="uint32_t" offset="60" info="Round Robin time tick"/>
382 <member name="thread_timeout" type="uint32_t" offset="64" info="Round Robin timeout"/>
Matthias Hertelb73eaf32016-07-22 15:18:56 +0200383
Robert Rostohardcfd4322017-06-09 13:11:57 +0200384 <member name="timer_list" type="*osRtxTimer_t" offset="68" info="Active timer list"/>
385 <member name="timer_thread" type="*osRtxThread_t" offset="72" info="Timer thread"/>
386 <member name="timer_mq" type="*osRtxMessageQueue_t" offset="76" info="Timer message queue"/>
387 <member name="timer_tick" type="uint32_t" offset="80" info="Timer tick function (type is func *)"/>
Matthias Hertelb73eaf32016-07-22 15:18:56 +0200388
Robert Rostohardcfd4322017-06-09 13:11:57 +0200389 <member name="isr_queue_max" type="uint16_t" offset="84" info="Maximum items"/>
390 <member name="isr_queue_cnt" type="uint16_t" offset="86" info="Item count"/>
391 <member name="isr_queue_in" type="uint16_t" offset="88" info="Incoming item index"/>
392 <member name="isr_queue_out" type="uint16_t" offset="90" info="Outgoing item index"/>
393 <member name="isr_queue_data" type="uint32_t" offset="92" info="Queue data (type is void **)"/>
Matthias Hertelb73eaf32016-07-22 15:18:56 +0200394
Robert Rostohardcfd4322017-06-09 13:11:57 +0200395 <member name="post_process_thread" type="uint32_t" offset="96" info="Thread post processing function (type is func *)"/>
396 <member name="post_process_event_flags" type="uint32_t" offset="100" info="Event flags post processing function (type is func *)"/>
397 <member name="post_process_semaphore" type="uint32_t" offset="104" info="Semaphore post processing function (type is func *)"/>
398 <member name="post_process_memory_pool" type="uint32_t" offset="108" info="Memory pool post processing function (type is func *)"/>
399 <member name="post_process_message_queue" type="uint32_t" offset="112" info="Message queue post processing function (type is func *)"/>
Matthias Hertelb73eaf32016-07-22 15:18:56 +0200400
Robert Rostohardcfd4322017-06-09 13:11:57 +0200401 <member name="mem_stack" type="uint32_t" offset="116" info="Stack memory (type is void *)"/>
402 <member name="mem_mp_data" type="uint32_t" offset="120" info="Memory pool data memory (type is void *)"/>
403 <member name="mem_mq_data" type="uint32_t" offset="124" info="Message queue Data memory (type is void *)"/>
404 <member name="mem_common" type="uint32_t" offset="128" info="Common memory address (type is void *)"/>
Matthias Hertelb73eaf32016-07-22 15:18:56 +0200405
Robert Rostohardcfd4322017-06-09 13:11:57 +0200406 <member name="mpi_stack" type="*osRtxMpInfo_t" offset="132" info="Stack for threads"/>
407 <member name="mpi_thread" type="*osRtxMpInfo_t" offset="136" info="Thread control blocks"/>
408 <member name="mpi_timer" type="*osRtxMpInfo_t" offset="140" info="Timer control blocks"/>
409 <member name="mpi_event_flags" type="*osRtxMpInfo_t" offset="144" info="Event flags control blocks"/>
410 <member name="mpi_mutex" type="*osRtxMpInfo_t" offset="148" info="Mutex control blocks"/>
411 <member name="mpi_semaphore" type="*osRtxMpInfo_t" offset="152" info="Semaphore control blocks"/>
412 <member name="mpi_memory_pool" type="*osRtxMpInfo_t" offset="156" info="Memory pool control blocks"/>
413 <member name="mpi_message_queue" type="*osRtxMpInfo_t" offset="160" info="Message queue control blocks"/>
Matthias Hertelb73eaf32016-07-22 15:18:56 +0200414 </typedef>
415
Vladimir Umekad631732018-01-15 07:38:49 +0100416 <!-- OS Runtime Object Memory Usage structure -->
417 <typedef name="osRtxObjectMemUsage_t" info="OS Runtime Object Memory Usage" size="12">
418 <member name="cnt_alloc" type="uint32_t" offset="0" info="Counter for alloc"/>
419 <member name="cnt_free" type="uint32_t" offset="4" info="Counter for free"/>
420 <member name="max_used" type="uint32_t" offset="8" info="Maximum used"/>
421 </typedef>
422
Robert Rostohare6ffbc42016-09-14 10:35:53 +0200423 <!-- OS Configuration structure -->
Vladimir Umek31da0642017-05-11 07:23:08 +0200424 <typedef name="osRtxConfig_t" const="1" info="OS Configuration Structure" size="104">
Matthias Hertelb73eaf32016-07-22 15:18:56 +0200425 <member name="flags" type="uint32_t" offset="0" info="OS configuration flags"/>
Robert Rostoharb3c06362016-10-19 14:24:56 +0200426 <member name="tick_freq" type="uint32_t" offset="4" info="Kernel tick frequency"/>
Robert Rostohar4b6a2492016-11-09 13:34:23 +0100427
Robert Rostohar0667b182016-11-25 21:48:19 +0100428 <member name="robin_timeout" type="uint32_t" offset="8" info="Round Robim timeout tick"/>
Vladimir Umek97c56962017-04-03 13:10:55 +0200429 <member name="isr_queue_data" type="uint32_t" offset="12" info="ISR post processing queue (type is void **)"/>
Martin Günther7f62de82017-03-03 11:02:31 +0100430 <member name="isr_queue_max" type="uint16_t" offset="16" info="Maximum data"/>
431 <member name="isr_queue_padding" type="uint16_t" offset="18" info="Padding bytes"/>
Matthias Hertelb73eaf32016-07-22 15:18:56 +0200432
Robert Rostoharb3c06362016-10-19 14:24:56 +0200433 <member name="mem_stack_addr" type="uint32_t" offset="20" info="Stack memory address"/>
434 <member name="mem_stack_size" type="uint32_t" offset="24" info="Stack memory size"/>
435 <member name="mem_mp_data_addr" type="uint32_t" offset="28" info="Memory pool data memory address"/>
436 <member name="mem_mp_data_size" type="uint32_t" offset="32" info="Memory pool data memory size"/>
437 <member name="mem_mq_data_addr" type="uint32_t" offset="36" info="Message queue data memory address"/>
438 <member name="mem_mq_data_size" type="uint32_t" offset="40" info="Message queue data memory size"/>
439 <member name="mem_common_addr" type="uint32_t" offset="44" info="Common memory address"/>
440 <member name="mem_common_size" type="uint32_t" offset="48" info="Common memory size"/>
Matthias Hertelb73eaf32016-07-22 15:18:56 +0200441
Robert Rostohar0667b182016-11-25 21:48:19 +0100442 <member name="mpi_stack" type="*osRtxMpInfo_t" offset="52" info="Stack for threads"/>
443 <member name="mpi_thread" type="*osRtxMpInfo_t" offset="56" info="Thread control blocks"/>
444 <member name="mpi_timer" type="*osRtxMpInfo_t" offset="60" info="Timer control blocks"/>
445 <member name="mpi_event_flags" type="*osRtxMpInfo_t" offset="64" info="Event flags control blocks"/>
446 <member name="mpi_mutex" type="*osRtxMpInfo_t" offset="68" info="Mutex control blocks"/>
447 <member name="mpi_semaphore" type="*osRtxMpInfo_t" offset="72" info="Semaphore control blocks"/>
448 <member name="mpi_memory_pool" type="*osRtxMpInfo_t" offset="76" info="Memory pool control blocks"/>
449 <member name="mpi_message_queue" type="*osRtxMpInfo_t" offset="80" info="Message queue control blocks"/>
Matthias Hertelb73eaf32016-07-22 15:18:56 +0200450
Robert Rostoharb3c06362016-10-19 14:24:56 +0200451 <member name="thread_stack_size" type="uint32_t" offset="84" info="Default thread stack size"/>
Vladimir Umek97c56962017-04-03 13:10:55 +0200452 <member name="idle_thread_attr" type="uint32_t" offset="88" info="Idle thread attributes (type is osThreadAttr_s *)"/>
453 <member name="timer_thread_attr" type="uint32_t" offset="92" info="Timer thread attributes (type is osThreadAttr_s *)"/>
454 <member name="timer_mq_attr" type="uint32_t" offset="96" info="Timer message queue attributes (type is osMessageQueueAttr_s *)"/>
Robert Rostoharb3c06362016-10-19 14:24:56 +0200455 <member name="timer_mq_mcnt" type="uint32_t" offset="100" info="Timer message queue maximum messages"/>
Matthias Hertelb73eaf32016-07-22 15:18:56 +0200456 </typedef>
457
458 <!-- Memory Pool Header -->
459 <typedef name="mem_head_t" info="Memory Pool Header Structure" size="8">
460 <member name="size" type="uint32_t" offset="0" info="Memory pool size"/>
461 <member name="used" type="uint32_t" offset="4" info="Size of used memory"/>
Vladimir Umekad631732018-01-15 07:38:49 +0100462
463 <var name="max_used" type="uint32_t" info="Maximum size of used memory" />
Matthias Hertelb73eaf32016-07-22 15:18:56 +0200464 </typedef>
465
466 <!-- Memory Block Header + Object Header -->
467 <typedef name="mem_block_t" info="Memory Block Header Structure" size="9">
468 <member name="next" type="*mem_block_t" offset="0" info="Next memory block"/>
469 <member name="len" type="uint32_t" offset="4" info="Memory block size"/>
470 <member name="id" type="uint8_t" offset="8" info="Object Identifier"/>
471 </typedef>
472
Robert Rostohar0667b182016-11-25 21:48:19 +0100473 <!-- Helper typedefs -->
Robert Rostohara6abe962016-11-29 15:57:42 +0100474 <typedef name="rtx_sections_t" info="RTX Control Block Sections Info Structure" size="56">
475 <member name="thread_cb_start" type="uint32_t" offset="0" info="Thread control block section start"/>
476 <member name="thread_cb_end" type="uint32_t" offset="4" info="Thread control block section end"/>
477 <member name="timer_cb_start" type="uint32_t" offset="8" info="Timer control block section start"/>
478 <member name="timer_cb_end" type="uint32_t" offset="12" info="Timer control block section end"/>
479 <member name="evflags_cb_start" type="uint32_t" offset="16" info="Event flags control block section start"/>
480 <member name="evflags_cb_end" type="uint32_t" offset="20" info="Event flags control block section end"/>
481 <member name="mutex_cb_start" type="uint32_t" offset="24" info="Mutex control block section start"/>
482 <member name="mutex_cb_end" type="uint32_t" offset="28" info="Mutex control block section end"/>
483 <member name="semaphore_cb_start" type="uint32_t" offset="32" info="Semaphore control block section start"/>
484 <member name="semaphore_cb_end" type="uint32_t" offset="36" info="Semaphore control block section end"/>
485 <member name="mempool_cb_start" type="uint32_t" offset="40" info="Memory pool control block section start"/>
486 <member name="mempool_cb_end" type="uint32_t" offset="44" info="Memory pool control block section end"/>
487 <member name="msgqueue_cb_start" type="uint32_t" offset="48" info="Message queue control block section start"/>
488 <member name="msgqueue_cb_end" type="uint32_t" offset="52" info="Message queue control block section end"/>
489 </typedef>
490
Robert Rostohar0667b182016-11-25 21:48:19 +0100491 <typedef name="rtx_t" info="Various RTX Definitions" size="8">
492 <member name="status" type="int32_t" offset="0" info="RTX5 operations status">
493 <enum name="osOK" value="0" info="Operation completed successfully"/>
494 <enum name="osError" value="-1" info="Unspecified RTOS error: run-time error but no other error message fits."/>
495 <enum name="osErrorTimeout" value="-2" info="Operation not completed within the timeout period."/>
496 <enum name="osErrorResource" value="-3" info="Resource not available"/>
497 <enum name="osErrorParameter" value="-4" info="Parameter error"/>
498 <enum name="osErrorNoMemory" value="-5" info="System is out of memory: it was impossible to allocate or reserve memory for the operation"/>
499 <enum name="osErrorISR" value="-6" info="Not allowed in ISR context: the function cannot be called from interrupt service routines"/>
500 <enum name="osRtxErrorKernelNotReady" value="-7" info="RTOS Kernel scheduler is not ready"/>
501 <enum name="osRtxErrorKernelNotRunning" value="-8" info="RTOS Kernel scheduler is not running"/>
502 <enum name="osRtxErrorInvalidControlBlock" value="-9" info="Object control block is not properly aligned or has an invalid size"/>
503 <enum name="osRtxErrorInvalidDataMemory" value="-10" info="Data memory is not is not properly aligned or has an invalid size"/>
504 <enum name="osRtxErrorInvalidThreadStack" value="-11" info="Thread stack is invalid"/>
505 <enum name="osRtxErrorInvalidPriority" value="-12" info="Thread priority is invalid"/>
506 <enum name="osRtxErrorThreadNotJoinable" value="-13" info="Thread is not joinable"/>
507 <enum name="osRtxErrorMutexNotOwned" value="-14" info="Mutex is not owned by the current running thread"/>
508 <enum name="osRtxErrorMutexNotLocked" value="-15" info="Mutex is not locked"/>
509 <enum name="osRtxErrorMutexLockLimit" value="-16" info="Maximum number of recursive mutex locks reached"/>
510 <enum name="osRtxErrorSemaphoreCountLimit" value="-17" info="Semaphore count limit reached"/>
511 <enum name="osRtxErrorTZ_InitContext_S" value="-18" info=""/>
512 <enum name="osRtxErrorTZ_AllocContext_S" value="-19" info=""/>
513 <enum name="osRtxErrorTZ_FreeContext_S" value="-20" info=""/>
514 <enum name="osRtxErrorTZ_LoadContext_S" value="-21" info=""/>
515 <enum name="osRtxErrorTZ_SaveContext_S" value="-22" info=""/>
516 </member>
Robert Rostohar4d9f70d2016-12-12 13:03:38 +0100517 </typedef>
Robert Rostohar0667b182016-11-25 21:48:19 +0100518
Robert Rostohar4d9f70d2016-12-12 13:03:38 +0100519 <typedef name="rtx_th_state" info="RTX5 thread state" size="4">
520 <member name="id" type="int32_t" offset="0" info="RTX5 thread state ID">
Robert Rostohar0667b182016-11-25 21:48:19 +0100521 <enum name="os_ThreadInactive" value="0x00" info=""/>
522 <enum name="os_ThreadReady" value="0x01" info=""/>
523 <enum name="os_ThreadRunning" value="0x02" info=""/>
524 <enum name="os_ThreadBlocked" value="0x03" info=""/>
525 <enum name="os_ThreadTerminated" value="0x04" info=""/>
526 <enum name="os_ThreadWaitingDelay" value="0x13" info=""/>
527 <enum name="os_ThreadWaitingJoin" value="0x23" info=""/>
528 <enum name="os_ThreadWaitingThreadFlags" value="0x33" info=""/>
529 <enum name="os_ThreadWaitingEventFlags" value="0x43" info=""/>
530 <enum name="os_ThreadWaitingMutex" value="0x53" info=""/>
531 <enum name="os_ThreadWaitingSemaphore" value="0x63" info=""/>
532 <enum name="os_ThreadWaitingMemoryPool" value="0x73" info=""/>
533 <enum name="os_ThreadWaitingMessageGet" value="0x83" info=""/>
534 <enum name="os_ThreadWaitingMessagePut" value="0x93" info=""/>
535 </member>
536 </typedef>
537
Robert Rostohar4d9f70d2016-12-12 13:03:38 +0100538 <typedef name="rtx_th_priority" info="RTX5 thread priority" size="4">
539 <member name="id" type="int32_t" offset="0" info="RTX5 thread priority ID">
540 <enum name="osPriorityNone" value="0" info=""/>
541 <enum name="osPriorityIdle" value="1" info=""/>
542 <enum name="osPriorityLow" value="8" info=""/>
543 <enum name="osPriorityLow1" value="9" info=""/>
544 <enum name="osPriorityLow2" value="10" info=""/>
545 <enum name="osPriorityLow3" value="11" info=""/>
546 <enum name="osPriorityLow4" value="12" info=""/>
547 <enum name="osPriorityLow5" value="13" info=""/>
548 <enum name="osPriorityLow6" value="14" info=""/>
549 <enum name="osPriorityLow7" value="15" info=""/>
550 <enum name="osPriorityBelowNormal" value="16" info=""/>
551 <enum name="osPriorityBelowNormal1" value="17" info=""/>
552 <enum name="osPriorityBelowNormal2" value="18" info=""/>
553 <enum name="osPriorityBelowNormal3" value="19" info=""/>
554 <enum name="osPriorityBelowNormal4" value="20" info=""/>
555 <enum name="osPriorityBelowNormal5" value="21" info=""/>
556 <enum name="osPriorityBelowNormal6" value="22" info=""/>
557 <enum name="osPriorityBelowNormal7" value="23" info=""/>
558 <enum name="osPriorityNormal" value="24" info=""/>
559 <enum name="osPriorityNormal1" value="25" info=""/>
560 <enum name="osPriorityNormal2" value="26" info=""/>
561 <enum name="osPriorityNormal3" value="27" info=""/>
562 <enum name="osPriorityNormal4" value="28" info=""/>
563 <enum name="osPriorityNormal5" value="29" info=""/>
564 <enum name="osPriorityNormal6" value="30" info=""/>
565 <enum name="osPriorityNormal7" value="31" info=""/>
566 <enum name="osPriorityAboveNormal" value="32" info=""/>
567 <enum name="osPriorityAboveNormal1" value="33" info=""/>
568 <enum name="osPriorityAboveNormal2" value="34" info=""/>
569 <enum name="osPriorityAboveNormal3" value="35" info=""/>
570 <enum name="osPriorityAboveNormal4" value="36" info=""/>
571 <enum name="osPriorityAboveNormal5" value="37" info=""/>
572 <enum name="osPriorityAboveNormal6" value="38" info=""/>
573 <enum name="osPriorityAboveNormal7" value="39" info=""/>
574 <enum name="osPriorityHigh" value="40" info=""/>
575 <enum name="osPriorityHigh1" value="41" info=""/>
576 <enum name="osPriorityHigh2" value="42" info=""/>
577 <enum name="osPriorityHigh3" value="43" info=""/>
578 <enum name="osPriorityHigh4" value="44" info=""/>
579 <enum name="osPriorityHigh5" value="45" info=""/>
580 <enum name="osPriorityHigh6" value="46" info=""/>
581 <enum name="osPriorityHigh7" value="47" info=""/>
582 <enum name="osPriorityRealtime" value="48" info=""/>
583 <enum name="osPriorityRealtime1" value="49" info=""/>
584 <enum name="osPriorityRealtime2" value="50" info=""/>
585 <enum name="osPriorityRealtime3" value="51" info=""/>
586 <enum name="osPriorityRealtime4" value="52" info=""/>
587 <enum name="osPriorityRealtime5" value="53" info=""/>
588 <enum name="osPriorityRealtime6" value="54" info=""/>
589 <enum name="osPriorityRealtime7" value="55" info=""/>
590 <enum name="osPriorityISR" value="56" info=""/>
591 <enum name="osPriorityError" value="-1" info=""/>
592 </member>
593 </typedef>
594
Vladimir Umek300d01d2018-06-27 10:43:23 +0200595 <typedef name="rtx_kernel_state" info="RTX5 kernel state" size="1">
596 <member name="id" type="uint8_t" offset="0" info="Kernel state">
597 <enum name="osKernelInactive" value="0" info="Inactive"/>
598 <enum name="osKernelReady" value="1" info="Ready"/>
599 <enum name="osKernelRunning" value="2" info="Running"/>
600 <enum name="osKernelLocked" value="3" info="Locked"/>
601 <enum name="osKernelSuspended" value="4" info="Suspended"/>
602 <enum name="osKernelError" value="5" info="Error"/>
603 </member>
604 </typedef>
605
606 <typedef name="rtx_timer_type" info="RTX5 timer type" size="1">
607 <member name="id" type="uint8_t" offset="0" info="Timer Type">
608 <enum name="osTimerOnce" value="0" info="One-shot timer"/>
609 <enum name="osTimerPeriodic" value="1" info="Periodic timer"/>
610 </member>
611 </typedef>
612
Matthias Hertelb73eaf32016-07-22 15:18:56 +0200613 </typedefs>
614
615 <objects>
616 <object name="RTX RTOS Object">
Vladimir Umek4e75ce62018-06-12 08:03:37 +0200617 <var name="i" type="uint32_t" value="0" />
618 <var name="j" type="uint32_t" value="0" />
619 <var name="k" type="uint32_t" value="0" />
620 <var name="n" type="uint32_t" value="0" />
621 <var name="sp" type="uint32_t" value="0" />
622 <var name="addr" type="uint32_t" value="0" />
Vladimir Umek09e32212018-02-15 09:34:49 +0100623 <var name="ipsr" type="uint32_t" value="0" />
624 <var name="psp" type="uint32_t" value="0" />
625 <var name="v8m_ns" type="uint32_t" value="0" />
Matthias Hertelb73eaf32016-07-22 15:18:56 +0200626
Robert Rostohara6abe962016-11-29 15:57:42 +0100627 <var name="TCB_Rd" type="uint32_t" value="0" />
628 <var name="CCB_Rd" type="uint32_t" value="0" />
629 <var name="SCB_Rd" type="uint32_t" value="0" />
630 <var name="MCB_Rd" type="uint32_t" value="0" />
631 <var name="ECB_Rd" type="uint32_t" value="0" />
632 <var name="PCB_Rd" type="uint32_t" value="0" />
633 <var name="QCB_Rd" type="uint32_t" value="0" />
634
Robert Rostohar4b6a2492016-11-09 13:34:23 +0100635 <var name="RTX_En" type="uint8_t" value="0" />
Matthias Hertelb73eaf32016-07-22 15:18:56 +0200636 <var name="TCB_En" type="uint8_t" value="0" />
637 <var name="CCB_En" type="uint8_t" value="0" />
638 <var name="SCB_En" type="uint8_t" value="0" />
639 <var name="MCB_En" type="uint8_t" value="0" />
640 <var name="ECB_En" type="uint8_t" value="0" />
641 <var name="PCB_En" type="uint8_t" value="0" />
642 <var name="QCB_En" type="uint8_t" value="0" />
Vladimir Umekad631732018-01-15 07:38:49 +0100643 <var name="MUC_En" type="uint8_t" value="0" />
Robert Rostohar4b6a2492016-11-09 13:34:23 +0100644
Robert Rostoharb3c06362016-10-19 14:24:56 +0200645 <var name="StaticMp_En" type="uint8_t" value="0" />
Matthias Hertelb73eaf32016-07-22 15:18:56 +0200646
Vladimir Umekad631732018-01-15 07:38:49 +0100647 <var name="MUC_Thread_En" type="uint8_t" value="0" />
648 <var name="MUC_Timer_En" type="uint8_t" value="0" />
649 <var name="MUC_EventFlags_En" type="uint8_t" value="0" />
650 <var name="MUC_Mutex_En" type="uint8_t" value="0" />
651 <var name="MUC_Semaphore_En" type="uint8_t" value="0" />
652 <var name="MUC_MemPool_En" type="uint8_t" value="0" />
653 <var name="MUC_MsgQueue_En" type="uint8_t" value="0" />
654
Robert Rostoharbc04f0e2016-12-13 10:33:34 +0100655 <var name="V_Major" type="uint32_t" value="0"/>
656 <var name="V_Minor" type="uint32_t" value="0"/>
657 <var name="V_Patch" type="uint32_t" value="0"/>
658
Vladimir Umek09e32212018-02-15 09:34:49 +0100659 <!-- Check TrustZone symbol existence -->
660 <calc>
661 v8m_ns = __Symbol_exists("TZ_InitContextSystem_S");
662 </calc>
663
Matthias Hertelb73eaf32016-07-22 15:18:56 +0200664 <!-- Read main OS information and configuration structures -->
Robert Rostohar0667b182016-11-25 21:48:19 +0100665 <readlist name="os_Info" type="osRtxInfo_t" symbol="osRtxInfo" count="1" init="1"/>
666 <readlist name="os_Config" type="osRtxConfig_t" symbol="osRtxConfig" count="1" init="1"/>
Matthias Hertelb73eaf32016-07-22 15:18:56 +0200667
Robert Rostohar4b6a2492016-11-09 13:34:23 +0100668 <calc cond="((os_Info.version / 10000000) == 5) &amp;&amp; (os_Info.kernel_state &gt; 0) &amp;&amp; (os_Info.kernel_state &lt; 5)">
669 RTX_En = 1;
670 </calc>
Vladimir Umekad631732018-01-15 07:38:49 +0100671
Robert Rostoharbc04f0e2016-12-13 10:33:34 +0100672 <calc cond="RTX_En">
673 V_Major = os_Info.version / 10000000;
674 V_Minor = (os_Info.version / 10000) % 1000;
675 V_Patch = os_Info.version % 10000;
676 </calc>
Robert Rostohar4b6a2492016-11-09 13:34:23 +0100677
678 <calc cond="RTX_En &amp;&amp; (os_Config.mpi_thread || os_Config.mpi_timer || os_Config.mpi_event_flags || os_Config.mpi_mutex || os_Config.mpi_semaphore || os_Config.mpi_memory_pool || os_Config.mpi_message_queue)">
Robert Rostoharb3c06362016-10-19 14:24:56 +0200679 StaticMp_En = 1;
680 </calc>
Robert Rostohar4b6a2492016-11-09 13:34:23 +0100681
Robert Rostoharb3c06362016-10-19 14:24:56 +0200682 <var name="stack_check" type="uint8_t" value="(os_Config.flags >> 1) &amp; 1"/>
683 <var name="stack_wmark" type="uint8_t" value="(os_Config.flags >> 2) &amp; 1"/>
Matthias Hertelb73eaf32016-07-22 15:18:56 +0200684
685 <!-- Read ISR FIFO queue -->
Robert Rostohar4b6a2492016-11-09 13:34:23 +0100686 <read name="ISR_FIFO" cond="RTX_En" type="uint32_t" offset="os_Config.isr_queue_data" size="os_Config.isr_queue_max"/>
Matthias Hertelb73eaf32016-07-22 15:18:56 +0200687
Robert Rostohara6abe962016-11-29 15:57:42 +0100688 <!-- Read control block sections info structure -->
689 <readlist name="cb_Sections" cond="__Symbol_exists (&quot;os_cb_sections&quot;)" type="rtx_sections_t" symbol="os_cb_sections" count="1" init="1"/>
690
691 <!-- Determine section sizes -->
692 <calc cond="RTX_En &amp;&amp; __Symbol_exists (&quot;os_cb_sections&quot;)">
693 TCB_Rd = cb_Sections.thread_cb_end - cb_Sections.thread_cb_start;
694 CCB_Rd = cb_Sections.timer_cb_end - cb_Sections.timer_cb_start;
695 ECB_Rd = cb_Sections.evflags_cb_end - cb_Sections.evflags_cb_start;
696 MCB_Rd = cb_Sections.mutex_cb_end - cb_Sections.mutex_cb_start;
697 SCB_Rd = cb_Sections.semaphore_cb_end - cb_Sections.semaphore_cb_start;
698 PCB_Rd = cb_Sections.mempool_cb_end - cb_Sections.mempool_cb_start;
699 QCB_Rd = cb_Sections.msgqueue_cb_end - cb_Sections.msgqueue_cb_start;
700 </calc>
701
702 <!-- Determine number of control blocks to read -->
703 <calc cond="TCB_Rd"> TCB_Rd /= 68; </calc>
704 <calc cond="CCB_Rd"> CCB_Rd /= 32; </calc>
705 <calc cond="ECB_Rd"> ECB_Rd /= 16; </calc>
706 <calc cond="MCB_Rd"> MCB_Rd /= 28; </calc>
707 <calc cond="SCB_Rd"> SCB_Rd /= 16; </calc>
708 <calc cond="PCB_Rd"> PCB_Rd /= 36; </calc>
709 <calc cond="QCB_Rd"> QCB_Rd /= 52; </calc>
710
711 <!-- Read object control blocks using sections info -->
712 <readlist name="TCB" cond="TCB_Rd" type="osRtxThread_t" offset="cb_Sections.thread_cb_start" count="TCB_Rd"/>
713 <readlist name="CCB" cond="CCB_Rd" type="osRtxTimer_t" offset="cb_Sections.timer_cb_start" count="CCB_Rd"/>
714 <readlist name="ECB" cond="ECB_Rd" type="osRtxEventFlags_t" offset="cb_Sections.evflags_cb_start" count="ECB_Rd"/>
715 <readlist name="MCB" cond="MCB_Rd" type="osRtxMutex_t" offset="cb_Sections.mutex_cb_start" count="MCB_Rd"/>
716 <readlist name="PCB" cond="PCB_Rd" type="osRtxMemoryPool_t" offset="cb_Sections.mempool_cb_start" count="PCB_Rd"/>
717 <readlist name="SCB" cond="SCB_Rd" type="osRtxSemaphore_t" offset="cb_Sections.semaphore_cb_start" count="SCB_Rd"/>
718 <readlist name="QCB" cond="QCB_Rd" type="osRtxMessageQueue_t" offset="cb_Sections.msgqueue_cb_start" count="QCB_Rd"/>
719
720 <!-- Read statically allocated control blocks -->
Robert Rostohar4d9f70d2016-12-12 13:03:38 +0100721 <readlist name="cfg_mp_stack" cond="os_Config.mpi_stack" type="osRtxMpInfo_t" offset="os_Config.mpi_stack" const="1" count="1" init="1"/>
Robert Rostohara6abe962016-11-29 15:57:42 +0100722 <readlist name="cfg_mp_thread" cond="os_Config.mpi_thread" type="osRtxMpInfo_t" offset="os_Config.mpi_thread" const="1" count="1" init="1"/>
723 <readlist name="cfg_mp_timer" cond="os_Config.mpi_timer" type="osRtxMpInfo_t" offset="os_Config.mpi_timer" const="1" count="1" init="1"/>
724 <readlist name="cfg_mp_events" cond="os_Config.mpi_event_flags" type="osRtxMpInfo_t" offset="os_Config.mpi_event_flags" const="1" count="1" init="1"/>
725 <readlist name="cfg_mp_mutex" cond="os_Config.mpi_mutex" type="osRtxMpInfo_t" offset="os_Config.mpi_mutex" const="1" count="1" init="1"/>
726 <readlist name="cfg_mp_semaphore" cond="os_Config.mpi_semaphore" type="osRtxMpInfo_t" offset="os_Config.mpi_semaphore" const="1" count="1" init="1"/>
727 <readlist name="cfg_mp_mpool" cond="os_Config.mpi_memory_pool" type="osRtxMpInfo_t" offset="os_Config.mpi_memory_pool" const="1" count="1" init="1"/>
728 <readlist name="cfg_mp_mqueue" cond="os_Config.mpi_message_queue" type="osRtxMpInfo_t" offset="os_Config.mpi_message_queue" const="1" count="1" init="1"/>
729
Matthias Hertelb73eaf32016-07-22 15:18:56 +0200730 <!-- Read idle and timer thread control blocks -->
Robert Rostohara6abe962016-11-29 15:57:42 +0100731 <readlist name="TCB" cond="RTX_En &amp;&amp; (TCB_Rd == 0) &amp;&amp; os_Info.thread_idle" type="osRtxThread_t" offset="os_Info.thread_idle" count="1" />
732 <readlist name="TCB" cond="RTX_En &amp;&amp; (TCB_Rd == 0) &amp;&amp; os_Info.timer_thread" type="osRtxThread_t" offset="os_Info.timer_thread" count="1" />
Matthias Hertelb73eaf32016-07-22 15:18:56 +0200733
734 <!-- Read thread control blocks (MPI) -->
Robert Rostohara6abe962016-11-29 15:57:42 +0100735 <readlist name="mp_thread" cond="RTX_En &amp;&amp; (TCB_Rd == 0) &amp;&amp; os_Info.mpi_thread" type="osRtxMpInfo_t" offset="os_Info.mpi_thread" count="1" init="1"/>
736 <readlist name="TCB" cond="RTX_En &amp;&amp; (TCB_Rd == 0) &amp;&amp; os_Info.mpi_thread" type="osRtxThread_t" offset="mp_thread.block_base" count="mp_thread.max_blocks" />
Matthias Hertelb73eaf32016-07-22 15:18:56 +0200737
738 <!-- Read timer control blocks (MPI) -->
Robert Rostohara6abe962016-11-29 15:57:42 +0100739 <readlist name="mp_timer" cond="RTX_En &amp;&amp; (CCB_Rd == 0) &amp;&amp; os_Info.mpi_timer" type="osRtxMpInfo_t" offset="os_Info.mpi_timer" count="1" init="1"/>
740 <readlist name="CCB" cond="RTX_En &amp;&amp; (CCB_Rd == 0) &amp;&amp; os_Info.mpi_timer" type="osRtxTimer_t" offset="mp_timer.block_base" count="mp_timer.max_blocks" />
Matthias Hertelb73eaf32016-07-22 15:18:56 +0200741
742 <!-- Read event flags control blocks (MPI) -->
Robert Rostohara6abe962016-11-29 15:57:42 +0100743 <readlist name="mp_events" cond="RTX_En &amp;&amp; (ECB_Rd == 0) &amp;&amp; os_Info.mpi_event_flags" type="osRtxMpInfo_t" offset="os_Info.mpi_event_flags" count="1" init="1"/>
744 <readlist name="ECB" cond="RTX_En &amp;&amp; (ECB_Rd == 0) &amp;&amp; os_Info.mpi_event_flags" type="osRtxEventFlags_t" offset="mp_events.block_base" count="mp_events.max_blocks" />
Matthias Hertelb73eaf32016-07-22 15:18:56 +0200745
746 <!-- Read mutex control blocks (MPI) -->
Robert Rostohara6abe962016-11-29 15:57:42 +0100747 <readlist name="mp_mutex" cond="RTX_En &amp;&amp; (MCB_Rd == 0) &amp;&amp; os_Info.mpi_mutex" type="osRtxMpInfo_t" offset="os_Info.mpi_mutex" count="1" init="1"/>
748 <readlist name="MCB" cond="RTX_En &amp;&amp; (MCB_Rd == 0) &amp;&amp; os_Info.mpi_mutex" type="osRtxMutex_t" offset="mp_mutex.block_base" count="mp_mutex.max_blocks" />
Matthias Hertelb73eaf32016-07-22 15:18:56 +0200749
750 <!-- Read semaphore control blocks (MPI) -->
Robert Rostohara6abe962016-11-29 15:57:42 +0100751 <readlist name="mp_semaphore" cond="RTX_En &amp;&amp; (SCB_Rd == 0) &amp;&amp; os_Info.mpi_semaphore" type="osRtxMpInfo_t" offset="os_Info.mpi_semaphore" count="1" init="1"/>
752 <readlist name="SCB" cond="RTX_En &amp;&amp; (SCB_Rd == 0) &amp;&amp; os_Info.mpi_semaphore" type="osRtxSemaphore_t" offset="mp_semaphore.block_base" count="mp_semaphore.max_blocks" />
Matthias Hertelb73eaf32016-07-22 15:18:56 +0200753
754 <!-- Read memory pool control blocks (MPI) -->
Robert Rostohara6abe962016-11-29 15:57:42 +0100755 <readlist name="mp_mpool" cond="RTX_En &amp;&amp; (PCB_Rd == 0) &amp;&amp; os_Info.mpi_memory_pool" type="osRtxMpInfo_t" offset="os_Info.mpi_memory_pool" count="1" init="1"/>
756 <readlist name="PCB" cond="RTX_En &amp;&amp; (PCB_Rd == 0) &amp;&amp; os_Info.mpi_memory_pool" type="osRtxMemoryPool_t" offset="mp_mpool.block_base" count="mp_mpool.max_blocks" />
Matthias Hertelb73eaf32016-07-22 15:18:56 +0200757
758 <!-- Read message queue control blocks (MPI) -->
Robert Rostohara6abe962016-11-29 15:57:42 +0100759 <readlist name="mp_mqueue" cond="RTX_En &amp;&amp; (QCB_Rd == 0) &amp;&amp; os_Info.mpi_message_queue" type="osRtxMpInfo_t" offset="os_Info.mpi_message_queue" count="1" init="1"/>
760 <readlist name="QCB" cond="RTX_En &amp;&amp; (QCB_Rd == 0) &amp;&amp; os_Info.mpi_message_queue" type="osRtxMessageQueue_t" offset="mp_mqueue.block_base" count="mp_mqueue.max_blocks" />
Matthias Hertelb73eaf32016-07-22 15:18:56 +0200761
Vladimir Umekad631732018-01-15 07:38:49 +0100762 <!-- Read stack memory header and block list (MEM) -->
763 <readlist name="mem_head_stack" cond="RTX_En &amp;&amp; os_Config.mem_stack_addr" type="mem_head_t" offset="os_Config.mem_stack_addr" count="1"/>
764 <readlist name="mem_list_stack" cond="RTX_En &amp;&amp; os_Config.mem_stack_addr" type="mem_block_t" offset="os_Config.mem_stack_addr + 8" next="next"/>
Matthias Hertelb73eaf32016-07-22 15:18:56 +0200765
Vladimir Umekad631732018-01-15 07:38:49 +0100766 <calc cond="RTX_En &amp;&amp; os_Config.mem_stack_addr"> mem_head_stack.max_used = mem_list_stack[mem_list_stack._count-1].len; </calc>
767
768 <!-- Read memory pool data memory header and block list (MEM) -->
769 <readlist name="mem_head_mp_data" cond="RTX_En &amp;&amp; os_Config.mem_mp_data_addr" type="mem_head_t" offset="os_Config.mem_mp_data_addr" count="1"/>
770 <readlist name="mem_list_mp_data" cond="RTX_En &amp;&amp; os_Config.mem_mp_data_addr" type="mem_block_t" offset="os_Config.mem_mp_data_addr + 8" next="next"/>
771
772 <calc cond="RTX_En &amp;&amp; os_Config.mem_mp_data_addr"> mem_head_mp_data.max_used = mem_list_mp_data[mem_list_mp_data._count-1].len; </calc>
773
774 <!-- Read message queue data memory header and block list (MEM) -->
775 <readlist name="mem_head_mq_data" cond="RTX_En &amp;&amp; os_Config.mem_mq_data_addr" type="mem_head_t" offset="os_Config.mem_mq_data_addr" count="1"/>
776 <readlist name="mem_list_mq_data" cond="RTX_En &amp;&amp; os_Config.mem_mq_data_addr" type="mem_block_t" offset="os_Config.mem_mq_data_addr + 8" next="next"/>
777
778 <calc cond="RTX_En &amp;&amp; os_Config.mem_mq_data_addr"> mem_head_mq_data.max_used = mem_list_mq_data[mem_list_mq_data._count-1].len; </calc>
779
780 <!-- Read common memory header and block list (MEM) -->
781 <readlist name="mem_head_com" cond="RTX_En &amp;&amp; os_Config.mem_common_addr" type="mem_head_t" offset="os_Config.mem_common_addr" count="1"/>
782 <readlist name="mem_list_com" cond="RTX_En &amp;&amp; os_Config.mem_common_addr" type="mem_block_t" offset="os_Config.mem_common_addr + 8" next="next"/>
783
784 <calc cond="RTX_En &amp;&amp; os_Config.mem_common_addr"> mem_head_com.max_used = mem_list_com[mem_list_com._count-1].len; </calc>
785
786 <!-- Extract control blocks located in the common memory -->
787 <list cond="mem_list_com._count > 1" name="i" start="0" limit="mem_list_com._count-1">
Matthias Hertelb73eaf32016-07-22 15:18:56 +0200788 <calc>
Vladimir Umekad631732018-01-15 07:38:49 +0100789 addr = mem_list_com[i]._addr;
Matthias Hertelb73eaf32016-07-22 15:18:56 +0200790 addr += 8;
791 </calc>
792
793 <!-- Read Thread Control Block -->
Vladimir Umekad631732018-01-15 07:38:49 +0100794 <readlist cond="(mem_list_com[i].len &amp; 1) &amp;&amp; (mem_list_com[i].id == 1)" name="TCB" type="osRtxThread_t" offset="addr" count="1" />
Matthias Hertelb73eaf32016-07-22 15:18:56 +0200795
796 <!-- Read Timer Control Block -->
Vladimir Umekad631732018-01-15 07:38:49 +0100797 <readlist cond="(mem_list_com[i].len &amp; 1) &amp;&amp; (mem_list_com[i].id == 2)" name="CCB" type="osRtxTimer_t" offset="addr" count="1" />
Matthias Hertelb73eaf32016-07-22 15:18:56 +0200798
799 <!-- Read EventFlags Control Block -->
Vladimir Umekad631732018-01-15 07:38:49 +0100800 <readlist cond="(mem_list_com[i].len &amp; 1) &amp;&amp; (mem_list_com[i].id == 3)" name="ECB" type="osRtxEventFlags_t" offset="addr" count="1" />
Matthias Hertelb73eaf32016-07-22 15:18:56 +0200801
802 <!-- Read Mutex Control Block -->
Vladimir Umekad631732018-01-15 07:38:49 +0100803 <readlist cond="(mem_list_com[i].len &amp; 1) &amp;&amp; (mem_list_com[i].id == 4)" name="MCB" type="osRtxMutex_t" offset="addr" count="1" />
Matthias Hertelb73eaf32016-07-22 15:18:56 +0200804
805 <!-- Read Semaphore Control Block -->
Vladimir Umekad631732018-01-15 07:38:49 +0100806 <readlist cond="(mem_list_com[i].len &amp; 1) &amp;&amp; (mem_list_com[i].id == 5)" name="SCB" type="osRtxSemaphore_t" offset="addr" count="1" />
Matthias Hertelb73eaf32016-07-22 15:18:56 +0200807
808 <!-- Read MemoryPool Control Block -->
Vladimir Umekad631732018-01-15 07:38:49 +0100809 <readlist cond="(mem_list_com[i].len &amp; 1) &amp;&amp; (mem_list_com[i].id == 6)" name="PCB" type="osRtxMemoryPool_t" offset="addr" count="1" />
Matthias Hertelb73eaf32016-07-22 15:18:56 +0200810
811 <!-- Read MessageQueue Control Block -->
Vladimir Umekad631732018-01-15 07:38:49 +0100812 <readlist cond="(mem_list_com[i].len &amp; 1) &amp;&amp; (mem_list_com[i].id == 8)" name="QCB" type="osRtxMessageQueue_t" offset="addr" count="1" />
Matthias Hertelb73eaf32016-07-22 15:18:56 +0200813 </list>
814
Robert Rostoharb3c06362016-10-19 14:24:56 +0200815 <!-- Read thread wait list -->
Robert Rostohar0667b182016-11-25 21:48:19 +0100816 <readlist name="TWL" cond="RTX_En &amp;&amp; os_Info.thread_wait_list" type="osRtxThread_t" offset="os_Info.thread_wait_list" next="delay_next"/>
Robert Rostoharb3c06362016-10-19 14:24:56 +0200817
Matthias Hertelb73eaf32016-07-22 15:18:56 +0200818 <!-- Validate and process Thread control blocks -->
819 <list name="i" start="0" limit="TCB._count">
820 <calc>
821 TCB[i].cb_valid = (TCB[i].id == 1) &amp;&amp; (TCB[i].state != 0) &amp;&amp; (TCB[i].sp != 0);
Vladimir Umek04f96872018-04-20 10:45:32 +0200822 TCB[i].sp_valid = 1;
Matthias Hertelb73eaf32016-07-22 15:18:56 +0200823 </calc>
824
Matthias Hertelb73eaf32016-07-22 15:18:56 +0200825 <!-- Stack pointer for running thread -->
Vladimir Umek09e32212018-02-15 09:34:49 +0100826 <calc cond="(TCB[i].state == 2) &amp;&amp; (__Running == 0)">
827 ipsr = __GetRegVal("XPSR") &amp; 0x01FF;
828 psp = (v8m_ns == 0) ? (__GetRegVal("PSP")) : (__GetRegVal("PSP_NS"));
829 psp = (psp == 0) ? (TCB[i].sp) : (psp);
830
831 sp = ((ipsr != 0) &amp;&amp; (ipsr &lt; 16)) ? (TCB[i].sp) : (psp);
Vladimir Umek04f96872018-04-20 10:45:32 +0200832
833 TCB[i].sp_valid = ((ipsr != 0) &amp;&amp; (ipsr &lt; 16)) ? (0) : (1);
Vladimir Umek09e32212018-02-15 09:34:49 +0100834 </calc>
835
836 <calc cond="(TCB[i].state == 2) &amp;&amp; (__Running == 1)">
Vladimir Umek04f96872018-04-20 10:45:32 +0200837 TCB[i].sp_valid = 0;
Vladimir Umek09e32212018-02-15 09:34:49 +0100838 sp = TCB[i].sp;
Matthias Hertelb73eaf32016-07-22 15:18:56 +0200839 </calc>
840
841 <!-- Stack pointer for waiting thread -->
842 <calc cond="TCB[i].state != 2">
843 sp = TCB[i].sp;
844 </calc>
Vladimir Umekad631732018-01-15 07:38:49 +0100845
Vladimir Umekbf186a62017-07-03 13:04:32 +0200846 <!-- Save current stack pointer -->
847 <calc>
848 TCB[i].stack_cur = sp;
849 </calc>
Matthias Hertelb73eaf32016-07-22 15:18:56 +0200850
851 <!-- Determine current stack usage -->
852 <calc cond="TCB[i].sp != 0">
Robert Rostoharb3c06362016-10-19 14:24:56 +0200853 TCB[i].stack_curb = TCB[i].stack_mem + TCB[i].stack_size;
854 TCB[i].stack_curb -= sp;
855 TCB[i].stack_curp = TCB[i].stack_curb;
856 TCB[i].stack_curp *= 100;
857 TCB[i].stack_curp /= TCB[i].stack_size;
Matthias Hertelb73eaf32016-07-22 15:18:56 +0200858 </calc>
859
Vladimir Umek66816972017-10-13 14:59:19 +0200860 <!-- Check for current sp overflow -->
861 <calc cond="TCB[i].sp != 0">
862 TCB[i].stack_over = (sp &lt;= TCB[i].stack_mem) ? 1 : 0;
863 </calc>
864
865 <!-- Check also control values to determine maximum stack usage -->
866 <calc cond="(TCB[i].sp != 0) &amp;&amp; (TCB[i].stack_over == 0) &amp;&amp; (TCB[i].stack_size &lt; 65536)">
867 TCB[i].stack_val = __CalcMemUsed (TCB[i].stack_mem, TCB[i].stack_size, 0xCCCCCCCC, 0xE25A2EA5);
868 TCB[i].stack_over = TCB[i].stack_val >> 31;
869 TCB[i].stack_maxb = TCB[i].stack_val &amp; 0xFFFFF;
870 TCB[i].stack_maxp = (TCB[i].stack_val >> 20) &amp; 0x1FF;
871 </calc>
872
873 <!-- Set max usage in case of stack overflow -->
874 <calc cond="(TCB[i].sp != 0) &amp;&amp; (TCB[i].stack_over != 0)">
875 TCB[i].stack_maxb = TCB[i].stack_size;
876 TCB[i].stack_maxp = 100;
877 </calc>
878
879 <!-- Adjust maximum usage in case if current sp below max -->
880 <calc cond="(TCB[i].sp != 0) &amp;&amp; (TCB[i].stack_curb &gt;= TCB[i].stack_maxb)">
881 TCB[i].stack_maxb = TCB[i].stack_curb;
882 TCB[i].stack_maxp = TCB[i].stack_curp;
883 </calc>
884
Matthias Hertelb73eaf32016-07-22 15:18:56 +0200885 <calc>
886 TCB[i].ex_delay = TCB[i].delay;
887 </calc>
888
889 <!-- Create Thread Delay List (TDL) -->
Robert Rostohar0667b182016-11-25 21:48:19 +0100890 <readlist cond="TCB[i].delay != -1" name="TDL" type="osRtxThread_t" offset="TCB[i].delay_prev" next="delay_prev" init="1"/>
Matthias Hertelb73eaf32016-07-22 15:18:56 +0200891
Robert Rostoharb3c06362016-10-19 14:24:56 +0200892 <list cond="TCB[i].delay != -1" name="j" start="0" limit="TDL._count">
Matthias Hertelb73eaf32016-07-22 15:18:56 +0200893 <calc>
894 TCB[i].ex_delay += TDL[j].delay;
895 </calc>
896 </list>
Robert Rostoharb3c06362016-10-19 14:24:56 +0200897
898 <!-- Read name string -->
Robert Rostohara6abe962016-11-29 15:57:42 +0100899 <calc cond="(TCB[i].name != 0)">
Robert Rostoharb3c06362016-10-19 14:24:56 +0200900 TCB[i].obj_name[0] = ',';
901 TCB[i].obj_name[1] = ' ';
902 </calc>
903 <list cond="TCB[i].name" name="n" start="0" limit="64">
904 <read name="ch0" type="uint8_t" offset="TCB[i].name + n"/>
Robert Rostohar4b6a2492016-11-09 13:34:23 +0100905
Robert Rostoharb3c06362016-10-19 14:24:56 +0200906 <calc>
907 TCB[i].obj_name[2+n] = ch0;
908 </calc>
909
910 <calc cond="ch0 == 0">
911 n = 64;
912 </calc>
913 </list>
914
Matthias Hertelb73eaf32016-07-22 15:18:56 +0200915 </list>
916
917 <!-- Validate and process Timer control blocks -->
918 <list name="i" start="0" limit="CCB._count">
919 <calc>
920 CCB[i].cb_valid = (CCB[i].id == 2) &amp;&amp; (CCB[i].state != 0);
921 CCB[i].ex_tick = CCB[i].tick;
922 </calc>
923
924 <!-- Create Timer Execution List (TEL) -->
Robert Rostohar0667b182016-11-25 21:48:19 +0100925 <readlist name="TEL" type="osRtxTimer_t" offset="CCB[i].prev" next="prev" init="1"/>
Matthias Hertelb73eaf32016-07-22 15:18:56 +0200926
927 <list name="j" start="0" limit="TEL._count">
928 <calc>
929 CCB[i].ex_tick += TEL[j].tick;
930 </calc>
931 </list>
Robert Rostoharb3c06362016-10-19 14:24:56 +0200932
933 <!-- Read name string -->
934 <calc cond="CCB[i].name">
935 CCB[i].obj_name[0] = ',';
936 CCB[i].obj_name[1] = ' ';
937 </calc>
938 <list cond="CCB[i].name" name="n" start="0" limit="64">
939 <read name="ch1" type="uint8_t" offset="CCB[i].name + n"/>
Robert Rostohar4b6a2492016-11-09 13:34:23 +0100940
Robert Rostoharb3c06362016-10-19 14:24:56 +0200941 <calc>
942 CCB[i].obj_name[2+n] = ch1;
943 </calc>
944
945 <calc cond="ch1 == 0">
946 n = 64;
947 </calc>
948 </list>
Matthias Hertelb73eaf32016-07-22 15:18:56 +0200949 </list>
950
951 <!-- Validate and process EventFlags control blocks -->
952 <calc> k = 0; </calc>
953
954 <list name="i" start="0" limit="ECB._count">
955 <calc>
Vladimir Umeke3d10652018-05-21 12:37:52 +0200956 ECB[i].cb_valid = (ECB[i].id == 3);
Vladimir Umekbf186a62017-07-03 13:04:32 +0200957 ECB[i].wl_idx = k;
958 ECB[i].wl_cnt = 0;
Matthias Hertelb73eaf32016-07-22 15:18:56 +0200959 </calc>
960
961 <!-- Create a list of threads waiting for event flags -->
Vladimir Umekbf186a62017-07-03 13:04:32 +0200962 <readlist name="EWL" type="osRtxThread_t" offset="ECB[i].thread_list" next="thread_next" cond="ECB[i].thread_list"/>
Matthias Hertelb73eaf32016-07-22 15:18:56 +0200963
Vladimir Umekbf186a62017-07-03 13:04:32 +0200964 <calc cond="ECB[i].thread_list">
Matthias Hertelb73eaf32016-07-22 15:18:56 +0200965 ECB[i].wl_cnt = (EWL._count - k);
966 k = EWL._count;
967 </calc>
Robert Rostoharb3c06362016-10-19 14:24:56 +0200968
969 <!-- Read name string -->
970 <calc cond="ECB[i].name">
971 ECB[i].obj_name[0] = ',';
972 ECB[i].obj_name[1] = ' ';
973 </calc>
974 <list cond="ECB[i].name" name="n" start="0" limit="64">
975 <read name="ch2" type="uint8_t" offset="ECB[i].name + n"/>
Robert Rostohar4b6a2492016-11-09 13:34:23 +0100976
Robert Rostoharb3c06362016-10-19 14:24:56 +0200977 <calc>
978 ECB[i].obj_name[2+n] = ch2;
979 </calc>
980
981 <calc cond="ch2 == 0">
982 n = 64;
983 </calc>
984 </list>
Matthias Hertelb73eaf32016-07-22 15:18:56 +0200985 </list>
986
987 <!-- Validate and process Mutex control blocks -->
988 <calc> k = 0; </calc>
989
990 <list cond="MCB._count" name="i" start="0" limit="MCB._count">
991 <calc>
Vladimir Umeke3d10652018-05-21 12:37:52 +0200992 MCB[i].cb_valid = (MCB[i].id == 4);
Vladimir Umekbf186a62017-07-03 13:04:32 +0200993 MCB[i].wl_idx = k;
994 MCB[i].wl_cnt = 0;
Matthias Hertelb73eaf32016-07-22 15:18:56 +0200995 </calc>
996
997 <!-- Create a list of threads waiting for mutex -->
Vladimir Umekbf186a62017-07-03 13:04:32 +0200998 <readlist name="MWL" type="osRtxThread_t" offset="MCB[i].thread_list" next="thread_next" cond="MCB[i].thread_list"/>
Matthias Hertelb73eaf32016-07-22 15:18:56 +0200999
Vladimir Umekbf186a62017-07-03 13:04:32 +02001000 <calc cond="MCB[i].thread_list">
Matthias Hertelb73eaf32016-07-22 15:18:56 +02001001 MCB[i].wl_cnt = (MWL._count - k);
1002 k = MWL._count;
1003 </calc>
Robert Rostoharb3c06362016-10-19 14:24:56 +02001004
1005 <!-- Read name string -->
1006 <calc cond="MCB[i].name">
1007 MCB[i].obj_name[0] = ',';
1008 MCB[i].obj_name[1] = ' ';
1009 </calc>
1010 <list cond="MCB[i].name" name="n" start="0" limit="64">
1011 <read name="ch3" type="uint8_t" offset="MCB[i].name + n"/>
Robert Rostohar4b6a2492016-11-09 13:34:23 +01001012
Robert Rostoharb3c06362016-10-19 14:24:56 +02001013 <calc>
1014 MCB[i].obj_name[2+n] = ch3;
1015 </calc>
1016
1017 <calc cond="ch3 == 0">
1018 n = 64;
1019 </calc>
1020 </list>
Matthias Hertelb73eaf32016-07-22 15:18:56 +02001021 </list>
1022
1023
1024 <!-- Validate and process semaphore control blocks -->
1025 <calc> k = 0; </calc>
1026
1027 <list cond="SCB._count" name="i" start="0" limit="SCB._count">
1028 <calc>
Vladimir Umeke3d10652018-05-21 12:37:52 +02001029 SCB[i].cb_valid = (SCB[i].id == 5);
Vladimir Umekbf186a62017-07-03 13:04:32 +02001030 SCB[i].wl_idx = k;
1031 SCB[i].wl_cnt = 0;
Matthias Hertelb73eaf32016-07-22 15:18:56 +02001032 </calc>
1033
1034 <!-- Create a list of threads waiting for semaphore -->
Vladimir Umekbf186a62017-07-03 13:04:32 +02001035 <readlist name="SWL" type="osRtxThread_t" offset="SCB[i].thread_list" next="thread_next" cond="SCB[i].thread_list"/>
Matthias Hertelb73eaf32016-07-22 15:18:56 +02001036
Vladimir Umekbf186a62017-07-03 13:04:32 +02001037 <calc cond="SCB[i].thread_list">
Matthias Hertelb73eaf32016-07-22 15:18:56 +02001038 SCB[i].wl_cnt = (SWL._count - k);
1039 k = SWL._count;
1040 </calc>
Robert Rostoharb3c06362016-10-19 14:24:56 +02001041
1042 <!-- Read name string -->
1043 <calc cond="SCB[i].name">
1044 SCB[i].obj_name[0] = ',';
1045 SCB[i].obj_name[1] = ' ';
1046 </calc>
1047 <list cond="SCB[i].name" name="n" start="0" limit="64">
1048 <read name="ch4" type="uint8_t" offset="SCB[i].name + n"/>
Robert Rostohar4b6a2492016-11-09 13:34:23 +01001049
Robert Rostoharb3c06362016-10-19 14:24:56 +02001050 <calc>
1051 SCB[i].obj_name[2+n] = ch4;
1052 </calc>
1053
1054 <calc cond="ch4 == 0">
1055 n = 64;
1056 </calc>
1057 </list>
Matthias Hertelb73eaf32016-07-22 15:18:56 +02001058 </list>
1059
1060 <!-- Validate and process MemoryPool control blocks -->
1061 <calc> k = 0; </calc>
1062
1063 <list cond="PCB._count" name="i" start="0" limit="PCB._count">
1064 <calc>
Vladimir Umeke3d10652018-05-21 12:37:52 +02001065 PCB[i].cb_valid = (PCB[i].id == 6);
Vladimir Umekbf186a62017-07-03 13:04:32 +02001066 PCB[i].wl_idx = k;
1067 PCB[i].wl_cnt = 0;
Matthias Hertelb73eaf32016-07-22 15:18:56 +02001068 </calc>
1069
1070 <!-- Create a list of threads waiting for memory pool -->
Vladimir Umekbf186a62017-07-03 13:04:32 +02001071 <readlist name="PWL" type="osRtxThread_t" offset="PCB[i].thread_list" next="thread_next" cond="PCB[i].thread_list"/>
Matthias Hertelb73eaf32016-07-22 15:18:56 +02001072
Vladimir Umekbf186a62017-07-03 13:04:32 +02001073 <calc cond="PCB[i].thread_list">
Matthias Hertelb73eaf32016-07-22 15:18:56 +02001074 PCB[i].wl_cnt = (PWL._count - k);
1075 k = PWL._count;
1076 </calc>
Robert Rostoharb3c06362016-10-19 14:24:56 +02001077
1078 <!-- Read name string -->
1079 <calc cond="PCB[i].name">
1080 PCB[i].obj_name[0] = ',';
1081 PCB[i].obj_name[1] = ' ';
1082 </calc>
1083 <list cond="PCB[i].name" name="n" start="0" limit="64">
1084 <read name="ch5" type="uint8_t" offset="PCB[i].name + n"/>
Robert Rostohar4b6a2492016-11-09 13:34:23 +01001085
Robert Rostoharb3c06362016-10-19 14:24:56 +02001086 <calc>
1087 PCB[i].obj_name[2+n] = ch5;
1088 </calc>
1089
1090 <calc cond="ch5 == 0">
1091 n = 64;
1092 </calc>
1093 </list>
Matthias Hertelb73eaf32016-07-22 15:18:56 +02001094 </list>
1095
1096
1097 <!-- Validate and process MessageQueue control blocks -->
Robert Rostoharb3c06362016-10-19 14:24:56 +02001098 <calc> k = 0; j = 0; </calc>
Matthias Hertelb73eaf32016-07-22 15:18:56 +02001099
1100 <list cond="QCB._count" name="i" start="0" limit="QCB._count">
1101 <calc>
Vladimir Umeke3d10652018-05-21 12:37:52 +02001102 QCB[i].cb_valid = (QCB[i].id == 8);
Matthias Hertelb73eaf32016-07-22 15:18:56 +02001103 QCB[i].wl_idx = k;
Vladimir Umekbf186a62017-07-03 13:04:32 +02001104 QCB[i].wl_cnt = 0;
Matthias Hertelb73eaf32016-07-22 15:18:56 +02001105 </calc>
1106
1107 <!-- Create a list of threads waiting for message queue -->
Vladimir Umekbf186a62017-07-03 13:04:32 +02001108 <readlist name="QWL" type="osRtxThread_t" offset="QCB[i].thread_list" next="thread_next" cond="QCB[i].thread_list"/>
Matthias Hertelb73eaf32016-07-22 15:18:56 +02001109
Vladimir Umekbf186a62017-07-03 13:04:32 +02001110 <calc cond="QCB[i].thread_list">
Matthias Hertelb73eaf32016-07-22 15:18:56 +02001111 QCB[i].wl_cnt = (QWL._count - k);
1112 k = QWL._count;
1113 </calc>
Robert Rostoharb3c06362016-10-19 14:24:56 +02001114
1115 <!-- Read name string -->
1116 <calc cond="QCB[i].name">
1117 QCB[i].obj_name[0] = ',';
1118 QCB[i].obj_name[1] = ' ';
1119 </calc>
1120 <list cond="QCB[i].name" name="n" start="0" limit="64">
1121 <read name="ch6" type="uint8_t" offset="QCB[i].name + n"/>
Robert Rostohar4b6a2492016-11-09 13:34:23 +01001122
Robert Rostoharb3c06362016-10-19 14:24:56 +02001123 <calc>
1124 QCB[i].obj_name[2+n] = ch6;
1125 </calc>
1126
1127 <calc cond="ch6 == 0">
1128 n = 64;
1129 </calc>
1130 </list>
Robert Rostohar4b6a2492016-11-09 13:34:23 +01001131
Robert Rostoharb3c06362016-10-19 14:24:56 +02001132 <!-- Create a list of enqueued messages -->
Vladimir Umekbf186a62017-07-03 13:04:32 +02001133 <readlist name="QML" type="osRtxMessage_t" offset="QCB[i].msg_first" next="next" cond="QCB[i].msg_first"/>
Robert Rostoharb3c06362016-10-19 14:24:56 +02001134
1135 <calc>
1136 QCB[i].ml_idx = j;
Vladimir Umek4e75ce62018-06-12 08:03:37 +02001137 QCB[i].ml_cnt = (QML._count - j)
Robert Rostoharb3c06362016-10-19 14:24:56 +02001138 j = QML._count;
1139 </calc>
1140 </list>
1141
1142 <!-- Determine the addresses of enqueued messages -->
1143 <list cond="QML._count" name="i" start="0" limit="QML._count">
1144 <calc>
1145 QML[i].addr = QML[i]._addr;
1146 QML[i].addr += 12;
1147 </calc>
Matthias Hertelb73eaf32016-07-22 15:18:56 +02001148 </list>
1149
Vladimir Umekad631732018-01-15 07:38:49 +01001150 <!-- Read Object Memory Usage Counters (MUC) -->
1151 <calc cond="__Symbol_exists (&quot;osRtxThreadMemUsage&quot;)"> MUC_Thread_En = 1; </calc>
1152 <calc cond="__Symbol_exists (&quot;osRtxTimerMemUsage&quot;)"> MUC_Timer_En = 1; </calc>
1153 <calc cond="__Symbol_exists (&quot;osRtxEventFlagsMemUsage&quot;)"> MUC_EventFlags_En = 1; </calc>
1154 <calc cond="__Symbol_exists (&quot;osRtxMutexMemUsage&quot;)"> MUC_Mutex_En = 1; </calc>
1155 <calc cond="__Symbol_exists (&quot;osRtxSemaphoreMemUsage&quot;)"> MUC_Semaphore_En = 1; </calc>
1156 <calc cond="__Symbol_exists (&quot;osRtxMemoryPoolMemUsage&quot;)"> MUC_MemPool_En = 1; </calc>
1157 <calc cond="__Symbol_exists (&quot;osRtxMessageQueueMemUsage&quot;)"> MUC_MsgQueue_En = 1; </calc>
1158
1159 <calc>
1160 MUC_En = MUC_Thread_En | MUC_Timer_En | MUC_EventFlags_En | MUC_Mutex_En | MUC_Semaphore_En | MUC_MemPool_En | MUC_MsgQueue_En;
1161 </calc>
1162
1163 <readlist name="MUC_Thread" type="osRtxObjectMemUsage_t" symbol="osRtxThreadMemUsage" count="1" init="1" cond="MUC_Thread_En"/>
1164 <readlist name="MUC_Timer" type="osRtxObjectMemUsage_t" symbol="osRtxTimerMemUsage" count="1" init="1" cond="MUC_Timer_En"/>
1165 <readlist name="MUC_EventFlags" type="osRtxObjectMemUsage_t" symbol="osRtxEventFlagsMemUsage" count="1" init="1" cond="MUC_EventFlags_En"/>
1166 <readlist name="MUC_Mutex" type="osRtxObjectMemUsage_t" symbol="osRtxMutexMemUsage" count="1" init="1" cond="MUC_Mutex_En"/>
1167 <readlist name="MUC_Semaphore" type="osRtxObjectMemUsage_t" symbol="osRtxSemaphoreMemUsage" count="1" init="1" cond="MUC_Semaphore_En"/>
1168 <readlist name="MUC_MemPool" type="osRtxObjectMemUsage_t" symbol="osRtxMemoryPoolMemUsage" count="1" init="1" cond="MUC_MemPool_En"/>
1169 <readlist name="MUC_MsgQueue" type="osRtxObjectMemUsage_t" symbol="osRtxMessageQueueMemUsage" count="1" init="1" cond="MUC_MsgQueue_En"/>
1170
1171
Matthias Hertelb73eaf32016-07-22 15:18:56 +02001172 <!-- Determine what to display -->
1173 <list cond="TCB._count" name="i" start="0" limit="TCB._count">
1174 <calc>TCB_En += TCB[i].cb_valid; </calc>
Vladimir Umekbf186a62017-07-03 13:04:32 +02001175
1176 <calc cond="TCB[i].cb_valid == 0"> TCB[i].out_type = 0;</calc>
1177 <calc cond="TCB[i].cb_valid &amp;&amp; (TCB[i].name == 0) &amp;&amp; (stack_wmark == 0)"> TCB[i].out_type = 1; </calc>
1178 <calc cond="TCB[i].cb_valid &amp;&amp; (TCB[i].name == 0) &amp;&amp; (stack_wmark != 0)"> TCB[i].out_type = 2; </calc>
1179 <calc cond="TCB[i].cb_valid &amp;&amp; (TCB[i].name != 0) &amp;&amp; (stack_wmark == 0)"> TCB[i].out_type = 3; </calc>
1180 <calc cond="TCB[i].cb_valid &amp;&amp; (TCB[i].name != 0) &amp;&amp; (stack_wmark != 0)"> TCB[i].out_type = 4; </calc>
Vladimir Umek04f96872018-04-20 10:45:32 +02001181
1182 <calc cond="TCB[i].sp_valid == 0"> TCB[i].out_type += 4; </calc>
Matthias Hertelb73eaf32016-07-22 15:18:56 +02001183 </list>
1184 <list cond="CCB._count" name="i" start="0" limit="CCB._count">
1185 <calc>CCB_En += CCB[i].cb_valid; </calc>
1186 </list>
1187 <list cond="SCB._count" name="i" start="0" limit="SCB._count">
1188 <calc>SCB_En += SCB[i].cb_valid; </calc>
1189 </list>
1190 <list cond="MCB._count" name="i" start="0" limit="MCB._count">
1191 <calc>MCB_En += MCB[i].cb_valid; </calc>
1192 </list>
1193 <list cond="ECB._count" name="i" start="0" limit="ECB._count">
1194 <calc>ECB_En += ECB[i].cb_valid; </calc>
1195 </list>
1196 <list cond="PCB._count" name="i" start="0" limit="PCB._count">
1197 <calc>PCB_En += PCB[i].cb_valid; </calc>
1198 </list>
1199 <list cond="QCB._count" name="i" start="0" limit="QCB._count">
1200 <calc>QCB_En += QCB[i].cb_valid; </calc>
1201 </list>
1202
1203 <out name="RTX RTOS">
1204 <!-- System -->
1205 <item property="System" value="">
Robert Rostoharbc04f0e2016-12-13 10:33:34 +01001206 <item property="Kernel ID" value="RTX V%d[V_Major].%d[V_Minor].%d[V_Patch]" cond="RTX_En != 0"/>
Robert Rostohar4b6a2492016-11-09 13:34:23 +01001207 <item property="Kernel State" value="osKernelInactive" cond="RTX_En == 0"/>
1208 <item property="Kernel State" value="%E[os_Info.kernel_state]" cond="RTX_En != 0"/>
Robert Rostohare2a35ba2016-12-13 11:23:45 +01001209 <item property="Kernel Tick Count" value="%d[os_Info.kernel_tick]" cond="RTX_En != 0"/>
Vladimir Umekad631732018-01-15 07:38:49 +01001210 <item property="Kernel Tick Frequency" value="%d[os_Config.tick_freq]" cond="RTX_En != 0" />
Robert Rostohare2a35ba2016-12-13 11:23:45 +01001211 <item property="Round Robin" value="Disabled" cond="(os_Config.robin_timeout == 0) &amp;&amp; (RTX_En != 0)" />
1212 <item property="Round Robin Tick Count" value="%d[os_Info.thread_robin_tick]" cond="(os_Config.robin_timeout > 0) &amp;&amp; (RTX_En != 0)" />
1213 <item property="Round Robin Timeout" value="%d[os_Config.robin_timeout]" cond="(os_Config.robin_timeout > 0) &amp;&amp; (RTX_En != 0)" />
Vladimir Umekad631732018-01-15 07:38:49 +01001214 <item property="Global Dynamic Memory" value="Not used" cond="(os_Config.mem_common_size == 0) &amp;&amp; (RTX_En != 0)"/>
1215 <item property="Global Dynamic Memory" value="Base: %x[mem_head_com._addr], Size: %d[mem_head_com.size], Used: %d[mem_head_com.used], Max used: %d[mem_head_com.max_used]" cond="(os_Config.mem_common_size != 0) &amp;&amp; (RTX_En != 0)"/>
Robert Rostohare2a35ba2016-12-13 11:23:45 +01001216 <item property="Stack Overrun Check" value="%t[stack_check ? &quot;Enabled&quot; : &quot;Disabled&quot;]" cond="RTX_En != 0"/>
1217 <item property="Stack Usage Watermark" value="%t[stack_wmark ? &quot;Enabled&quot; : &quot;Disabled&quot;]" cond="RTX_En != 0"/>
1218 <item property="Default Thread Stack Size" value="%d[os_Config.thread_stack_size]" cond="RTX_En != 0"/>
Matthias Hertelb73eaf32016-07-22 15:18:56 +02001219
Robert Rostohar4b6a2492016-11-09 13:34:23 +01001220 <item property="ISR FIFO Queue" value="Size: %d[os_Info.isr_queue_max], Used: %d[os_Info.isr_queue_cnt]" cond="RTX_En">
Robert Rostoharb3c06362016-10-19 14:24:56 +02001221 <list name="i" start="0" limit="os_Info.isr_queue_cnt">
Matthias Hertelb73eaf32016-07-22 15:18:56 +02001222 <item property="data[%d[i]]" value="%x[ISR_FIFO[i]]" />
1223 </list>
1224 </item>
Robert Rostoharb3c06362016-10-19 14:24:56 +02001225
Vladimir Umekad631732018-01-15 07:38:49 +01001226 <item property="Object specific Memory allocation" value="" cond="StaticMp_En">
Robert Rostohar4d9f70d2016-12-12 13:03:38 +01001227 <item property="Thread objects" value="Used: %d[cfg_mp_thread.used_blocks], Max: %d[cfg_mp_thread.max_blocks]" cond="os_Config.mpi_thread">
Vladimir Umekad631732018-01-15 07:38:49 +01001228 <item property="Control blocks" value="Base: %x[cfg_mp_thread.block_base], Size: %d[cfg_mp_thread.block_lim - cfg_mp_thread.block_base], Used: %d[cfg_mp_thread.used_blocks * cfg_mp_thread.block_size]"/>
1229 <item property="Default stack" value="Base: %x[cfg_mp_stack.block_base], Size: %d[cfg_mp_stack.block_lim - cfg_mp_stack.block_base], Used: %d[cfg_mp_stack.used_blocks * cfg_mp_stack.block_size]" cond="os_Config.mpi_stack"/>
1230 <item property="User stack" value="Base: %x[mem_head_stack._addr], Size: %d[mem_head_stack.size], Used: %d[mem_head_stack.used], Max used: %d[mem_head_stack.max_used]" cond="os_Config.mem_stack_size"/>
Robert Rostohar4d9f70d2016-12-12 13:03:38 +01001231 </item>
1232 <item property="Timer objects" value="Used: %d[cfg_mp_timer.used_blocks], Max: %d[cfg_mp_timer.max_blocks]" cond="os_Config.mpi_timer">
Vladimir Umekad631732018-01-15 07:38:49 +01001233 <item property="Control blocks" value="Base: %x[cfg_mp_timer.block_base], Size: %d[cfg_mp_timer.block_lim - cfg_mp_timer.block_base], Used: %d[cfg_mp_timer.used_blocks * cfg_mp_timer.block_size]"/>
Robert Rostohar4d9f70d2016-12-12 13:03:38 +01001234 </item>
1235 <item property="Event Flags objects" value="Used: %d[cfg_mp_events.used_blocks], Max: %d[cfg_mp_events.max_blocks]" cond="os_Config.mpi_event_flags">
Vladimir Umekad631732018-01-15 07:38:49 +01001236 <item property="Control blocks" value="Base: %x[cfg_mp_events.block_base], Size: %d[cfg_mp_events.block_lim - cfg_mp_events.block_base], Used: %d[cfg_mp_events.used_blocks * cfg_mp_events.block_size]"/>
Robert Rostohar4d9f70d2016-12-12 13:03:38 +01001237 </item>
1238 <item property="Mutex objects" value="Used: %d[cfg_mp_mutex.used_blocks], Max: %d[cfg_mp_mutex.max_blocks]" cond="os_Config.mpi_mutex">
Vladimir Umekad631732018-01-15 07:38:49 +01001239 <item property="Control blocks" value="Base: %x[cfg_mp_mutex.block_base], Size: %d[cfg_mp_mutex.block_lim - cfg_mp_mutex.block_base], Used: %d[cfg_mp_mutex.used_blocks * cfg_mp_mutex.block_size]"/>
Robert Rostohar4d9f70d2016-12-12 13:03:38 +01001240 </item>
1241 <item property="Semaphore objects" value="Used: %d[cfg_mp_semaphore.used_blocks], Max: %d[cfg_mp_semaphore.max_blocks]" cond="os_Config.mpi_semaphore">
Vladimir Umekad631732018-01-15 07:38:49 +01001242 <item property="Control blocks" value="Base: %x[cfg_mp_semaphore.block_base], Size: %d[cfg_mp_semaphore.block_lim - cfg_mp_semaphore.block_base], Used: %d[cfg_mp_semaphore.used_blocks * cfg_mp_semaphore.block_size]"/>
Robert Rostohar4d9f70d2016-12-12 13:03:38 +01001243 </item>
1244 <item property="Memory Pool objects" value="Used: %d[cfg_mp_mpool.used_blocks], Max: %d[cfg_mp_mpool.max_blocks]" cond="os_Config.mpi_memory_pool">
Vladimir Umekad631732018-01-15 07:38:49 +01001245 <item property="Control blocks" value="Base: %x[cfg_mp_mpool.block_base], Size: %d[cfg_mp_mpool.block_lim - cfg_mp_mpool.block_base], Used: %d[cfg_mp_mpool.used_blocks * cfg_mp_mpool.block_size]"/>
1246 <item property="Data storage" value="Base: %x[mem_head_mp_data._addr], Size: %d[mem_head_mp_data.size], Used: %d[mem_head_mp_data.used], Max used: %d[mem_head_mp_data.max_used]" cond="os_Config.mem_mp_data_size"/>
Robert Rostohar4d9f70d2016-12-12 13:03:38 +01001247 </item>
1248 <item property="Message Queue objects" value="Used: %d[cfg_mp_mqueue.used_blocks], Max: %d[cfg_mp_mqueue.max_blocks]" cond="os_Config.mpi_message_queue">
Vladimir Umekad631732018-01-15 07:38:49 +01001249 <item property="Control blocks" value="Base: %x[cfg_mp_mqueue.block_base], Size: %d[cfg_mp_mqueue.block_lim - cfg_mp_mqueue.block_base], Used: %d[cfg_mp_mqueue.used_blocks * cfg_mp_mqueue.block_size]"/>
1250 <item property="Data storage" value="Base: %x[mem_head_mq_data._addr], Size: %d[mem_head_mq_data.size], Used: %d[mem_head_mq_data.used], Max used: %d[mem_head_mq_data.max_used]" cond="os_Config.mem_mq_data_size"/>
Robert Rostohar4d9f70d2016-12-12 13:03:38 +01001251 </item>
Robert Rostoharb3c06362016-10-19 14:24:56 +02001252 </item>
Vladimir Umekad631732018-01-15 07:38:49 +01001253
1254 <item property="Object Memory usage counters" value="" cond="(MUC_En != 0) &amp;&amp; (RTX_En != 0)">
1255 <item property="Thread objects" value="Alloc: %d[MUC_Thread.cnt_alloc], Free: %d[MUC_Thread.cnt_free], Max used: %d[MUC_Thread.max_used]" cond="MUC_Thread_En"/>
1256 <item property="Timer objects" value="Alloc: %d[MUC_Timer.cnt_alloc], Free: %d[MUC_Timer.cnt_free], Max used: %d[MUC_Timer.max_used]" cond="MUC_Timer_En"/>
1257 <item property="Event Flags objects" value="Alloc: %d[MUC_EventFlags.cnt_alloc], Free: %d[MUC_EventFlags.cnt_free], Max used: %d[MUC_EventFlags.max_used]" cond="MUC_EventFlags_En"/>
1258 <item property="Mutex objects" value="Alloc: %d[MUC_Mutex.cnt_alloc], Free: %d[MUC_Mutex.cnt_free], Max used: %d[MUC_Mutex.max_used]" cond="MUC_Mutex_En"/>
1259 <item property="Semaphore objects" value="Alloc: %d[MUC_Semaphore.cnt_alloc], Free: %d[MUC_Semaphore.cnt_free], Max used: %d[MUC_Semaphore.max_used]" cond="MUC_Semaphore_En"/>
1260 <item property="Memory Pool objects" value="Alloc: %d[MUC_MemPool.cnt_alloc], Free: %d[MUC_MemPool.cnt_free], Max used: %d[MUC_MemPool.max_used]" cond="MUC_MemPool_En"/>
1261 <item property="Message Queue objects" value="Alloc: %d[MUC_MsgQueue.cnt_alloc], Free: %d[MUC_MsgQueue.cnt_free], Max used: %d[MUC_MsgQueue.max_used]" cond="MUC_MsgQueue_En"/>
1262 </item>
Matthias Hertelb73eaf32016-07-22 15:18:56 +02001263 </item>
1264
1265 <!-- Threads -->
1266 <item cond="TCB_En" property="Threads" value="">
1267 <list name="i" start="0" limit="TCB._count">
Vladimir Umekbf186a62017-07-03 13:04:32 +02001268 <item>
1269 <print cond="TCB[i].out_type == 1" property="id: %x[TCB[i]._addr], %S[TCB[i].thread_addr]" value="%E[TCB[i].state &amp; 0x07], %E[TCB[i].priority], Stack Used: %d[TCB[i].stack_curp]%%" alert="TCB[i].stack_over != 0"/>
1270 <print cond="TCB[i].out_type == 2" property="id: %x[TCB[i]._addr], %S[TCB[i].thread_addr]" value="%E[TCB[i].state &amp; 0x07], %E[TCB[i].priority], Stack Used: %d[TCB[i].stack_curp]%%, Max: %d[TCB[i].stack_maxp]%%" alert="TCB[i].stack_over != 0"/>
1271 <print cond="TCB[i].out_type == 3" property="id: %x[TCB[i]._addr]%t[TCB[i].obj_name]" value="%E[TCB[i].state &amp; 0x07], %E[TCB[i].priority], Stack Used: %d[TCB[i].stack_curp]%%" alert="TCB[i].stack_over != 0"/>
1272 <print cond="TCB[i].out_type == 4" property="id: %x[TCB[i]._addr]%t[TCB[i].obj_name]" value="%E[TCB[i].state &amp; 0x07], %E[TCB[i].priority], Stack Used: %d[TCB[i].stack_curp]%%, Max: %d[TCB[i].stack_maxp]%%" alert="TCB[i].stack_over != 0"/>
1273
Vladimir Umek04f96872018-04-20 10:45:32 +02001274 <print cond="TCB[i].out_type == 5" property="id: %x[TCB[i]._addr], %S[TCB[i].thread_addr]" value="%E[TCB[i].state &amp; 0x07], %E[TCB[i].priority], Stack Used: unknown" alert="TCB[i].stack_over != 0"/>
1275 <print cond="TCB[i].out_type == 6" property="id: %x[TCB[i]._addr], %S[TCB[i].thread_addr]" value="%E[TCB[i].state &amp; 0x07], %E[TCB[i].priority], Stack Used: unknown, Max: %d[TCB[i].stack_maxp]%%" alert="TCB[i].stack_over != 0"/>
1276 <print cond="TCB[i].out_type == 7" property="id: %x[TCB[i]._addr]%t[TCB[i].obj_name]" value="%E[TCB[i].state &amp; 0x07], %E[TCB[i].priority], Stack Used: unknown" alert="TCB[i].stack_over != 0"/>
1277 <print cond="TCB[i].out_type == 8" property="id: %x[TCB[i]._addr]%t[TCB[i].obj_name]" value="%E[TCB[i].state &amp; 0x07], %E[TCB[i].priority], Stack Used: unknown, Max: %d[TCB[i].stack_maxp]%%" alert="TCB[i].stack_over != 0"/>
1278
Robert Rostohara6abe962016-11-29 15:57:42 +01001279 <item property="State" value="%E[TCB[i].state &amp; 0x07]"/>
1280 <item property="Priority" value="%E[TCB[i].priority]"/>
1281 <item property="Attributes" value="%E[TCB[i].attr &amp; 0x01]"/>
1282
Vladimir Umekbf186a62017-07-03 13:04:32 +02001283 <item>
1284 <print property="Waiting" value="%E[TCB[i].state], Timeout: %d[TCB[i].ex_delay]" cond="((TCB[i].state &amp; 0x07) == 3) &amp;&amp; (TCB[i].ex_delay != -1)"/>
1285 <print property="Waiting" value="%E[TCB[i].state], Timeout: osWaitForever" cond="((TCB[i].state &amp; 0x07) == 3) &amp;&amp; (TCB[i].ex_delay == -1)"/>
Robert Rostohara6abe962016-11-29 15:57:42 +01001286 <!-- Wait Thread Flags -->
1287 <item cond="TCB[i].state == 0x33" property="id: %x[TCB[i].thread_prev]" value=""/>
1288
1289 <list cond="TCB[i].state == 0x43" name="n" start="0" limit="ECB._count">
1290 <!-- Wait Event Flags -->
1291 <item cond="TCB[i].thread_prev == ECB[n]._addr" property="id: %x[ECB[n]._addr]%t[ECB[n].obj_name]" value=""/>
1292 </list>
1293
1294 <list cond="TCB[i].state == 0x53" name="n" start="0" limit="MCB._count">
1295 <!-- Wait Mutex -->
1296 <item cond="TCB[i].thread_prev == MCB[n]._addr" property="id: %x[MCB[n]._addr]%t[MCB[n].obj_name]" value=""/>
1297 </list>
1298
1299 <list cond="TCB[i].state == 0x63" name="n" start="0" limit="SCB._count">
1300 <!-- Wait Semaphore -->
1301 <item cond="TCB[i].thread_prev == SCB[n]._addr" property="id: %x[SCB[n]._addr]%t[SCB[n].obj_name]" value=""/>
1302 </list>
1303
1304 <list cond="TCB[i].state == 0x73" name="n" start="0" limit="PCB._count">
1305 <!-- Wait Memory Pool -->
1306 <item cond="TCB[i].thread_prev == PCB[n]._addr" property="id: %x[PCB[n]._addr]%t[PCB[n].obj_name]" value=""/>
1307 </list>
1308
1309 <list cond="(TCB[i].state == 0x83) || (TCB[i].state == 0x84)" name="n" start="0" limit="QCB._count">
1310 <!-- Wait Message Queue -->
1311 <item cond="TCB[i].thread_prev == QCB[n]._addr" property="id: %x[QCB[n]._addr]%t[QCB[n].obj_name]" value=""/>
1312 </list>
1313 </item>
1314
Vladimir Umekbf186a62017-07-03 13:04:32 +02001315 <item>
Vladimir Umek04f96872018-04-20 10:45:32 +02001316 <print cond="(TCB[i].sp_valid == 0) &amp;&amp; (stack_wmark == 0)" property="Stack" value="Used: unknown"/>
1317 <print cond="(TCB[i].sp_valid == 0) &amp;&amp; (stack_wmark != 0)" property="Stack" value="Used: unknown, Max: %d[TCB[i].stack_maxp]%% [%d[TCB[i].stack_maxb]]"/>
1318 <print cond="(TCB[i].sp_valid == 1) &amp;&amp; (stack_wmark == 0)" property="Stack" value="Used: %d[TCB[i].stack_curp]%% [%d[TCB[i].stack_curb]]"/>
1319 <print cond="(TCB[i].sp_valid == 1) &amp;&amp; (stack_wmark != 0)" property="Stack" value="Used: %d[TCB[i].stack_curp]%% [%d[TCB[i].stack_curb]], Max: %d[TCB[i].stack_maxp]%% [%d[TCB[i].stack_maxb]]"/>
Robert Rostohara6abe962016-11-29 15:57:42 +01001320
Vladimir Umek04f96872018-04-20 10:45:32 +02001321 <item>
1322 <print cond="TCB[i].sp_valid == 0" property="Used" value="unknown"/>
1323 <print cond="TCB[i].sp_valid == 1" property="Used" value="%d[TCB[i].stack_curb]"/>
1324 </item>
Vladimir Umekbf186a62017-07-03 13:04:32 +02001325 <item property="Max" value="%d[TCB[i].stack_maxb]" cond="stack_wmark != 0"/>
Robert Rostohara6abe962016-11-29 15:57:42 +01001326 <item property="Top" value="%x[TCB[i].stack_mem + TCB[i].stack_size]"/>
Vladimir Umek95a3ae42018-07-18 07:11:34 +02001327 <item>
1328 <print cond="TCB[i].sp_valid == 0" property="Current" value="unknown"/>
1329 <print cond="TCB[i].sp_valid == 1" property="Current" value="%x[TCB[i].stack_cur]"/>
1330 </item>
Robert Rostoharb3c06362016-10-19 14:24:56 +02001331 <item property="Limit" value="%x[TCB[i].stack_mem]"/>
1332 <item property="Size" value="%d[TCB[i].stack_size]"/>
1333 </item>
Matthias Hertelb73eaf32016-07-22 15:18:56 +02001334
Robert Rostoharb3c06362016-10-19 14:24:56 +02001335 <item property="Stack Overrun" value="Overrun detected" cond="TCB[i].stack_over != 0"/>
1336 <item property="Flags" value="%x[TCB[i].thread_flags]"/>
Vladimir Umek971a2842017-03-06 07:58:56 +01001337 <item property="Wait Flags" value="%x[TCB[i].wait_flags], %E[TCB[i].flags_options &amp; 1]" cond="(TCB[i].wait_flags != 0) &amp;&amp; ((TCB[i].flags_options &amp; 2) == 0)"/>
1338 <item property="Wait Flags" value="%x[TCB[i].wait_flags], %E[TCB[i].flags_options &amp; 1], osFlagsNoClear" cond="(TCB[i].wait_flags != 0) &amp;&amp; ((TCB[i].flags_options &amp; 2) != 0)"/>
Robert Rostoharb3c06362016-10-19 14:24:56 +02001339 <item property="TrustZone ID" value="%d[TCB[i].tz_memory]" cond="TCB[i].tz_memory"/>
Matthias Hertelb73eaf32016-07-22 15:18:56 +02001340 </item>
1341 </list>
1342 </item>
1343
1344 <!-- Timers -->
1345 <item cond="CCB_En" property="Timers" value="">
1346 <list name="i" start="0" limit="CCB._count">
Robert Rostoharb3c06362016-10-19 14:24:56 +02001347 <item cond="CCB[i].cb_valid" property="id: %x[CCB[i]._addr]%t[CCB[i].obj_name]" value="%E[CCB[i].state], Tick: %d[CCB[i].ex_tick]">
1348 <item property="State" value="%E[CCB[i].state]" />
1349 <item property="Type" value="%E[CCB[i].type]" />
1350 <item property="Tick" value="%d[CCB[i].ex_tick]" />
1351 <item property="Load" value="%d[CCB[i].load]" />
1352 <item property="Callback" value="Func: %S[CCB[i].finfo_fp], Arg: %x[CCB[i].finfo_arg]" />
Matthias Hertelb73eaf32016-07-22 15:18:56 +02001353 </item>
1354 </list>
1355 </item>
1356
1357 <!-- Semaphores -->
1358 <item cond="SCB_En" property="Semaphores" value="">
1359 <list name="i" start="0" limit="SCB._count">
Robert Rostoharb3c06362016-10-19 14:24:56 +02001360 <item cond="SCB[i].cb_valid" property="id: %x[SCB[i]._addr]%t[SCB[i].obj_name]" value="Tokens: %d[SCB[i].tokens], Max: %d[SCB[i].max_tokens]">
1361 <item property="Tokens" value="%d[SCB[i].tokens]" />
1362 <item property="Max Tokens" value="%d[SCB[i].max_tokens]" />
Matthias Hertelb73eaf32016-07-22 15:18:56 +02001363
1364 <!-- Waiting thread list -->
1365 <item cond="SCB[i].wl_cnt" property="Threads waiting (%d[SCB[i].wl_cnt])" value="">
1366
1367 <list name="j" start="SCB[i].wl_idx" limit="SCB[i].wl_idx + SCB[i].wl_cnt">
1368 <list name="k" start="0" limit="TCB._count">
Robert Rostoharb3c06362016-10-19 14:24:56 +02001369 <item property="id: %x[TCB[k]._addr]%t[TCB[k].obj_name]" value="Timeout: %d[TCB[k].ex_delay]" cond="(SWL[j].stack_mem == TCB[k].stack_mem) &amp;&amp; (TCB[k].ex_delay != -1)"/>
1370 <item property="id: %x[TCB[k]._addr]%t[TCB[k].obj_name]" value="Timeout: osWaitForever" cond="(SWL[j].stack_mem == TCB[k].stack_mem) &amp;&amp; (TCB[k].ex_delay == -1)"/>
Matthias Hertelb73eaf32016-07-22 15:18:56 +02001371 </list>
1372 </list>
1373
1374 </item>
1375 </item>
1376 </list>
1377 </item>
1378
1379 <!-- Mutexes -->
1380 <item cond="MCB_En" property="Mutexes" value="">
1381 <list name="i" start="0" limit="MCB._count">
Robert Rostoharb3c06362016-10-19 14:24:56 +02001382 <item cond="MCB[i].cb_valid" property="id: %x[MCB[i]._addr]%t[MCB[i].obj_name]" value="Lock counter: %d[MCB[i].lock]">
Robert Rostohar4c2b9442016-10-20 11:08:26 +02001383 <item property="Lock counter" value="%x[MCB[i].lock]"/>
Robert Rostoharb3c06362016-10-19 14:24:56 +02001384 <item property="Attributes" value="%x[MCB[i].attr]">
1385 <item property="osMutexRecursive" value="%t[(MCB[i].attr &amp; 0x01) ? &quot;True&quot; : &quot;False&quot;]" />
1386 <item property="osMutexPrioInherit" value="%t[(MCB[i].attr &amp; 0x02) ? &quot;True&quot; : &quot;False&quot;]" />
1387 <item property="osMutexRobust" value="%t[(MCB[i].attr &amp; 0x08) ? &quot;True&quot; : &quot;False&quot;]" />
1388 </item>
1389
1390 <list cond="MCB[i].owner_thread" name="n" start="0" limit="TCB._count">
1391 <item cond="MCB[i].owner_thread == TCB[n]._addr" property="Owner thread" value="id: %x[TCB[n]._addr]%t[TCB[n].obj_name]"/>
1392 </list>
Matthias Hertelb73eaf32016-07-22 15:18:56 +02001393
1394 <!-- Waiting thread list -->
1395 <item cond="MCB[i].wl_cnt" property="Threads waiting (%d[MCB[i].wl_cnt])" value="">
1396
1397 <list name="j" start="MCB[i].wl_idx" limit="MCB[i].wl_idx + MCB[i].wl_cnt">
1398 <list name="k" start="0" limit="TCB._count">
Robert Rostoharb3c06362016-10-19 14:24:56 +02001399 <item property="id: %x[TCB[k]._addr]%t[TCB[k].obj_name]" value="Timeout: %d[TCB[k].ex_delay]" cond="(MWL[j].stack_mem == TCB[k].stack_mem) &amp;&amp; (TCB[k].ex_delay != -1)"/>
1400 <item property="id: %x[TCB[k]._addr]%t[TCB[k].obj_name]" value="Timeout: osWaitForever" cond="(MWL[j].stack_mem == TCB[k].stack_mem) &amp;&amp; (TCB[k].ex_delay == -1)"/>
Matthias Hertelb73eaf32016-07-22 15:18:56 +02001401 </list>
1402 </list>
1403
1404 </item>
1405 </item>
1406 </list>
1407 </item>
1408
1409 <!-- Event Flags -->
1410 <item cond="ECB_En" property="Event Flags" value="">
1411 <list name="i" start="0" limit="ECB._count">
Robert Rostoharb3c06362016-10-19 14:24:56 +02001412 <item cond="ECB[i].cb_valid" property="id: %x[ECB[i]._addr]%t[ECB[i].obj_name]" value="Flags: %x[ECB[i].event_flags]">
Matthias Hertelb73eaf32016-07-22 15:18:56 +02001413
1414 <!-- Waiting thread list -->
1415 <item cond="ECB[i].wl_cnt" property="Threads waiting (%d[ECB[i].wl_cnt])" value="">
1416
1417 <list name="j" start="ECB[i].wl_idx" limit="ECB[i].wl_idx + ECB[i].wl_cnt">
1418 <list name="k" start="0" limit="TCB._count">
Robert Rostoharb3c06362016-10-19 14:24:56 +02001419 <item property="id: %x[TCB[k]._addr]%t[TCB[k].obj_name]" value="Timeout: %d[TCB[k].ex_delay]" cond="(EWL[j].stack_mem == TCB[k].stack_mem) &amp;&amp; (TCB[k].ex_delay != -1)"/>
1420 <item property="id: %x[TCB[k]._addr]%t[TCB[k].obj_name]" value="Timeout: osWaitForever" cond="(EWL[j].stack_mem == TCB[k].stack_mem) &amp;&amp; (TCB[k].ex_delay == -1)"/>
Matthias Hertelb73eaf32016-07-22 15:18:56 +02001421 </list>
1422 </list>
1423
1424 </item>
1425 </item>
1426 </list>
1427 </item>
1428
1429 <!-- Memory Pool -->
Robert Rostohar4c2b9442016-10-20 11:08:26 +02001430 <item cond="PCB_En" property="Memory Pools" value="">
Matthias Hertelb73eaf32016-07-22 15:18:56 +02001431 <list name="i" start="0" limit="PCB._count">
Robert Rostoharb3c06362016-10-19 14:24:56 +02001432 <item cond="PCB[i].cb_valid" property="id: %x[PCB[i]._addr]%t[PCB[i].obj_name]" value="Used: %d[PCB[i].used_blocks], Max: %d[PCB[i].max_blocks]">
Matthias Hertelb73eaf32016-07-22 15:18:56 +02001433
Robert Rostohar4d9f70d2016-12-12 13:03:38 +01001434 <item property="Used blocks" value="%d[PCB[i].used_blocks]"/>
1435 <item property="Max blocks" value="%d[PCB[i].max_blocks]"/>
1436 <item property="Block size" value="%d[PCB[i].block_size]"/>
1437 <item property="Memory base" value="%x[PCB[i].block_base]"/>
1438 <item property="Memory size" value="%d[PCB[i].block_lim - PCB[i].block_base]"/>
Matthias Hertelb73eaf32016-07-22 15:18:56 +02001439
1440 <!-- Waiting thread list -->
1441 <item cond="PCB[i].wl_cnt" property="Threads waiting (%d[PCB[i].wl_cnt])" value="">
1442
1443 <list name="j" start="PCB[i].wl_idx" limit="PCB[i].wl_idx + PCB[i].wl_cnt">
1444 <list name="k" start="0" limit="TCB._count">
Robert Rostoharb3c06362016-10-19 14:24:56 +02001445 <item property="id: %x[TCB[k]._addr]%t[TCB[k].obj_name]" value="Timeout: %d[TCB[k].ex_delay]" cond="(PWL[j].stack_mem == TCB[k].stack_mem) &amp;&amp; (TCB[k].ex_delay != -1)"/>
1446 <item property="id: %x[TCB[k]._addr]%t[TCB[k].obj_name]" value="Timeout: osWaitForever" cond="(PWL[j].stack_mem == TCB[k].stack_mem) &amp;&amp; (TCB[k].ex_delay == -1)"/>
Matthias Hertelb73eaf32016-07-22 15:18:56 +02001447 </list>
1448 </list>
1449
1450 </item>
1451 </item>
1452 </list>
1453 </item>
1454
1455 <!-- Message Queue -->
Robert Rostohar4c2b9442016-10-20 11:08:26 +02001456 <item cond="QCB_En" property="Message Queues" value="">
Matthias Hertelb73eaf32016-07-22 15:18:56 +02001457 <list name="i" start="0" limit="QCB._count">
Vladimir Umek31da0642017-05-11 07:23:08 +02001458 <item cond="QCB[i].cb_valid" property="id: %x[QCB[i]._addr]%t[QCB[i].obj_name]" value="Messages: %d[QCB[i].msg_count], Max: %d[QCB[i].max_blocks]">
Matthias Hertelb73eaf32016-07-22 15:18:56 +02001459
Vladimir Umek4e75ce62018-06-12 08:03:37 +02001460 <item property="Messages" value="%d[QCB[i].ml_cnt]"/>
Robert Rostoharb3c06362016-10-19 14:24:56 +02001461 <item property="Max Messages" value="%d[QCB[i].max_blocks]"/>
Robert Rostohar4d9f70d2016-12-12 13:03:38 +01001462 <item property="Message size" value="%d[QCB[i].msg_size]"/>
Matthias Hertelb73eaf32016-07-22 15:18:56 +02001463
1464 <!-- Waiting thread list -->
1465 <item cond="QCB[i].wl_cnt" property="Threads waiting (%d[QCB[i].wl_cnt])" value="">
1466
1467 <list name="j" start="QCB[i].wl_idx" limit="QCB[i].wl_idx + QCB[i].wl_cnt">
1468 <list name="k" start="0" limit="TCB._count">
Robert Rostoharb3c06362016-10-19 14:24:56 +02001469 <item property="id: %x[TCB[k]._addr]%t[TCB[k].obj_name]" value="Timeout: %d[TCB[k].ex_delay]" cond="(QWL[j].stack_mem == TCB[k].stack_mem) &amp;&amp; (TCB[k].ex_delay != -1)"/>
1470 <item property="id: %x[TCB[k]._addr]%t[TCB[k].obj_name]" value="Timeout: osWaitForever" cond="(QWL[j].stack_mem == TCB[k].stack_mem) &amp;&amp; (TCB[k].ex_delay == -1)"/>
Matthias Hertelb73eaf32016-07-22 15:18:56 +02001471 </list>
1472 </list>
1473
1474 </item>
Robert Rostoharb3c06362016-10-19 14:24:56 +02001475
1476 <!-- Queued messages list-->
Vladimir Umek4e75ce62018-06-12 08:03:37 +02001477 <item cond="QCB[i].ml_cnt" property="Queue (%d[QCB[i].ml_cnt])" value="">
Robert Rostoharb3c06362016-10-19 14:24:56 +02001478
Vladimir Umek4e75ce62018-06-12 08:03:37 +02001479 <list name="j" start="0" limit="QCB[i].ml_cnt">
Vladimir Umek31da0642017-05-11 07:23:08 +02001480 <item property="Queue[%d[j]]" value="Address: %x[QML[j + QCB[i].ml_idx].addr], Priority: %d[QML[j + QCB[i].ml_idx].priority]" />
Robert Rostoharb3c06362016-10-19 14:24:56 +02001481 </list>
1482
1483 </item>
Robert Rostohar4b6a2492016-11-09 13:34:23 +01001484
Matthias Hertelb73eaf32016-07-22 15:18:56 +02001485 </item>
1486 </list>
1487 </item>
1488
1489 </out>
1490 </object>
1491 </objects>
Robert Rostohar0667b182016-11-25 21:48:19 +01001492
1493 <events>
1494
1495 <group name="RTX5 RTOS">
1496 <component name="Memory Events" brief="RTX Memory" no="0xF0" prefix="EvrRtx" info="RTX5 RTOS Memory Management Events" />
1497 <component name="Kernel Events" brief="RTX Kernel" no="0xF1" prefix="EvrRtx" info="RTX5 RTOS Kernel Events" />
Robert Rostoharc2d79592018-06-18 11:42:47 +02001498 <component name="Thread Events" brief="RTX Thread" no="0xF2" prefix="EvrRtx" info="RTX5 RTOS Thread Events" >
Robert Rostohar83177af2018-09-04 10:27:04 +02001499 <state name="Inactive" plot="off" />
1500 <state name="Ready" plot="box" />
1501 <state name="Running" plot="box" bold="1" unique="1" />
1502 <state name="Blocked" plot="line" />
1503 <state name="Not-running" plot="line" bold="1" dormant="1" />
Robert Rostoharc2d79592018-06-18 11:42:47 +02001504 </component>
Robert Rostohar83177af2018-09-04 10:27:04 +02001505 <component name="Generic Wait Events" brief="RTX Wait" no="0xF3" prefix="EvrRtx" info="RTX5 RTOS Generic Wait Events" />
1506 <component name="ThreadFlags Events" brief="RTX ThFlags" no="0xF4" prefix="EvrRtx" info="RTX5 RTOS ThreadFlags Events" />
1507 <component name="EventFlags Events" brief="RTX EvFlags" no="0xF5" prefix="EvrRtx" info="RTX5 RTOS EventFlags Events" />
1508 <component name="Timer Events" brief="RTX Timer" no="0xF6" prefix="EvrRtx" info="RTX5 RTOS Timer Events" />
1509 <component name="Mutex Events" brief="RTX Mutex" no="0xF7" prefix="EvrRtx" info="RTX5 RTOS Mutex Events" >
Jonatan Antoniba9cdf32018-06-29 15:22:59 +02001510 <state name="Free" plot="line" color="blue" bold="1" />
Robert Rostohar83177af2018-09-04 10:27:04 +02001511 <state name="Used" plot="box" color="blue" />
1512 <state name="Error" plot="box" color="red" />
Jonatan Antoniba9cdf32018-06-29 15:22:59 +02001513 </component>
Robert Rostohar83177af2018-09-04 10:27:04 +02001514 <component name="Semaphore Events" brief="RTX Semaphore" no="0xF8" prefix="EvrRtx" info="RTX5 RTOS Semaphore Events" />
1515 <component name="MemoryPool Events" brief="RTX MemPool" no="0xF9" prefix="EvrRtx" info="RTX5 RTOS MemoryPool Events" />
1516 <component name="MessageQueue Events" brief="RTX MsgQueue" no="0xFA" prefix="EvrRtx" info="RTX5 RTOS MessageQueue Events" />
Robert Rostohar0667b182016-11-25 21:48:19 +01001517 </group>
1518
1519 <event id="0xF000 + 0x00" level="Op" property="MemoryInit" value="mem=%x[val1], size=%d[val2], result=%d[val3]" info=""/>
1520 <event id="0xF000 + 0x01" level="Op" property="MemoryAlloc" value="mem=%x[val1], size=%d[val2], type=%d[val3], block=%x[val4]" info=""/>
1521 <event id="0xF000 + 0x02" level="Op" property="MemoryFree" value="mem=%x[val1], block=%x[val2], result=%d[val3]" info=""/>
1522 <event id="0xF000 + 0x03" level="Op" property="MemoryBlockInit" value="mp_info=%x[val1], block_count=%d[val2], block_size=%d[val3], block_mem=%x[val4]" info=""/>
1523 <event id="0xF000 + 0x04" level="Op" property="MemoryBlockAlloc" value="mp_info=%x[val1], block=%x[val2]" info=""/>
1524 <event id="0xF000 + 0x05" level="Op" property="MemoryBlockFree" value="mp_info=%x[val1], block=%x[val2], status=%E[val3, rtx_t:status]" info=""/>
1525
Robert Rostoharc2d79592018-06-18 11:42:47 +02001526 <event id="0xF100 + 0x00" level="Error" property="KernelError" value="status=%E[val1, rtx_t:status]" info="Kernel error occurred."/>
1527 <event id="0xF100 + 0x01" level="API" property="KernelInitialize" value="" info="osKernelInitialize function was called."/>
1528 <event id="0xF100 + 0x02" level="Op" property="KernelInitialized" tracking="Reset" value="" info="Kernel was initialized."/>
1529 <event id="0xF100 + 0x03" level="API" property="KernelGetInfo" value="version=%x[val1], id_buf=%x[val2], id_size=%d[val3]" info="osKernelGetInfo function was called."/>
Robert Rostohar6c83b542018-09-05 07:53:50 +02001530 <event id="0xF100 + 0x04" level="Op" property="KernelInfoRetrieved" value="version_api=%d[val1/10000000].%d[(val1/10000)%1000].%d[val1%10000], version_kernel=%d[val2/10000000].%d[(val2/10000)%1000].%d[val2%10000]" info="Kernel information was retrieved."/>
1531 <event id="0xF100 + 0x05" level="Detail" property="KernelInfoRetrieved" value="id=%t[val1]" info="Kernel ID as ASCII string."/>
Vladimir Umek300d01d2018-06-27 10:43:23 +02001532 <event id="0xF100 + 0x06" level="API" property="KernelGetState" value="state=%E[val1, rtx_kernel_state:id]" info="osKernelGetState function was called and state was retrieved."/>
Robert Rostoharc2d79592018-06-18 11:42:47 +02001533 <event id="0xF100 + 0x07" level="API" property="KernelStart" value="" info="osKernelStart function was called."/>
1534 <event id="0xF100 + 0x08" level="Op" property="KernelStarted" value="" info="Kernel execution was started."/>
1535 <event id="0xF100 + 0x09" level="API" property="KernelLock" value="" info="osKernelLock function was called."/>
1536 <event id="0xF100 + 0x0A" level="Op" property="KernelLocked" value="lock=%d[val1]" info="Kernel was locked."/>
1537 <event id="0xF100 + 0x0B" level="API" property="KernelUnlock" value="" info="osKernelUnlock function was called."/>
1538 <event id="0xF100 + 0x0C" level="Op" property="KernelUnlocked" value="lock=%d[val1]" info="Kernel was unlocked."/>
1539 <event id="0xF100 + 0x0D" level="API" property="KernelRestoreLock" value="lock=%d[val1]" info="osKernelRestoreLock function was called."/>
1540 <event id="0xF100 + 0x0E" level="Op" property="KernelLockRestored" value="lock=%d[val1]" info="Kernel lock was restored."/>
1541 <event id="0xF100 + 0x0F" level="API" property="KernelSuspend" value="" info="osKernelSuspend function was called."/>
1542 <event id="0xF100 + 0x10" level="Op" property="KernelSuspended" value="sleep_ticks=%d[val1]" info="Kernel execution was suspended."/>
1543 <event id="0xF100 + 0x11" level="API" property="KernelResume" value="sleep_ticks=%d[val1]" info="osKernelResume function was called."/>
1544 <event id="0xF100 + 0x12" level="Op" property="KernelResumed" value="" info="Kernel execution was resumed."/>
1545 <event id="0xF100 + 0x13" level="API" property="KernelGetTickCount" value="count=%d[val1]" info="osKernelGetTickCount function was called."/>
1546 <event id="0xF100 + 0x14" level="API" property="KernelGetTickFreq" value="freq=%d[val1]" info="osKernelGetTickFreq function was called."/>
1547 <event id="0xF100 + 0x15" level="API" property="KernelGetSysTimerCount" value="count=%d[val1]" info="osKernelGetSysTimerCount function was called."/>
1548 <event id="0xF100 + 0x16" level="API" property="KernelGetSysTimerFreq" value="freq=%d[val1]" info="osKernelGetSysTimerFreq function was called."/>
Robert Rostohar0667b182016-11-25 21:48:19 +01001549
Robert Rostoharc2d79592018-06-18 11:42:47 +02001550 <event id="0xF200 + 0x00" level="Error" property="ThreadError" value="thread_id=%x[val1], status=%E[val2, rtx_t:status]" info="Thread error occurred."/>
1551 <event id="0xF200 + 0x01" level="API" property="ThreadNew" value="func=%S[val1], argument=%x[val2], attr=%x[val3]" info="osThreadNew function was called."/>
Robert Rostoharc2d79592018-06-18 11:42:47 +02001552 <event id="0xF200 + 0x03" level="Op" property="ThreadCreated" tracking="Start" state="Ready" handle="val1" hname="%S[val2]" value="thread_id=%x[val1]" info="Thread object was created."/>
Robert Rostoharf28ad452018-06-19 08:41:08 +02001553 <event id="0xF200 + 0x2C" level="Op" property="ThreadCreated" tracking="Start" state="Ready" handle="val1" hname="%N[val2]" value="thread_id=%x[val1]" info="Thread object was created."/>
Robert Rostoharc2d79592018-06-18 11:42:47 +02001554 <event id="0xF200 + 0x04" level="API" property="ThreadGetName" value="thread_id=%x[val1], name=%N[val2]" info="osThreadGetName function was called and object name was retrieved."/>
1555 <event id="0xF200 + 0x06" level="API" property="ThreadGetId" value="thread_id=%x[val1]" info="osThreadGetId function was called and current running thread id was retrieved."/>
1556 <event id="0xF200 + 0x07" level="API" property="ThreadGetState" value="thread_id=%x[val1], state=%E[val2, rtx_th_state:id]" info="osThreadGetState function was called and thread state was retrieved."/>
1557 <event id="0xF200 + 0x08" level="API" property="ThreadGetStackSize" value="thread_id=%x[val1], stack_size=%d[val2]" info="osThreadGetStackSize function was called and thread stack size was retrieved."/>
1558 <event id="0xF200 + 0x09" level="API" property="ThreadGetStackSpace" value="thread_id=%x[val1], stack_space=%d[val2]" info="osThreadGetStackSpace function was called and thread stack space was retrieved."/>
1559 <event id="0xF200 + 0x0A" level="API" property="ThreadSetPriority" value="thread_id=%x[val1], priority=%E[val2, rtx_th_priority:id]" info="osThreadSetPriority function was called."/>
Robert Rostohar83177af2018-09-04 10:27:04 +02001560 <event id="0xF200 + 0x2D" level="Op" property="ThreadPriorityUpdated" value="thread_id=%x[val1], priority=%E[val2, rtx_th_priority:id]" info="Thread priority was updated."/>
Robert Rostoharc2d79592018-06-18 11:42:47 +02001561 <event id="0xF200 + 0x0B" level="API" property="ThreadGetPriority" value="thread_id=%x[val1], priority=%E[val2, rtx_th_priority:id]" info="osThreadGetPriority function was called and thread priority was retrieved."/>
1562 <event id="0xF200 + 0x0C" level="API" property="ThreadYield" value="" info="osThreadYield function was called."/>
1563 <event id="0xF200 + 0x0D" level="API" property="ThreadSuspend" value="thread_id=%x[val1]" info="osThreadSuspend function was called."/>
1564 <event id="0xF200 + 0x0E" level="Op" property="ThreadSuspended" state="Blocked" handle="val1" value="thread_id=%x[val1]" info="Thread execution was suspended."/>
1565 <event id="0xF200 + 0x0F" level="API" property="ThreadResume" value="thread_id=%x[val1]" info="osThreadResume function was called."/>
1566 <event id="0xF200 + 0x10" level="Op" property="ThreadResumed" state="Ready" handle="val1" value="thread_id=%x[val1]" info="Thread execution was resumed."/>
1567 <event id="0xF200 + 0x11" level="API" property="ThreadDetach" value="thread_id=%x[val1]" info="osThreadDetach function was called."/>
1568 <event id="0xF200 + 0x12" level="Op" property="ThreadDetached" value="thread_id=%x[val1]" info="Thread was detached."/>
1569 <event id="0xF200 + 0x13" level="API" property="ThreadJoin" value="thread_id=%x[val1]" info="osThreadJoin function was called."/>
1570 <event id="0xF200 + 0x14" level="Op" property="ThreadJoinPending" value="thread_id=%x[val1]" info="Thread join is pending."/>
1571 <event id="0xF200 + 0x15" level="Op" property="ThreadJoined" value="thread_id=%x[val1]" info="Thread joined."/>
Robert Rostohar83177af2018-09-04 10:27:04 +02001572 <event id="0xF200 + 0x16" level="Detail" property="ThreadBlocked" state="Blocked" handle="val1" value="thread_id=%x[val1], timeout=%d[val2]" info="Current running thread execution was blocked."/>
1573 <event id="0xF200 + 0x17" level="Detail" property="ThreadUnblocked" state="Ready" handle="val1" value="thread_id=%x[val1], ret_val=%E[val2, rtx_t:status]" info="Thread execution was unblocked."/>
1574 <event id="0xF200 + 0x18" level="Detail" property="ThreadPreempted" state="Ready" handle="val1" value="thread_id=%x[val1]" info="Current running thread execution was preempted."/>
Robert Rostoharc2d79592018-06-18 11:42:47 +02001575 <event id="0xF200 + 0x19" level="Op" property="ThreadSwitched" state="Running" handle="val1" value="thread_id=%x[val1]" info="Switched execution of the current running thread."/>
1576 <event id="0xF200 + 0x1A" level="API" property="ThreadExit" value="" info="osThreadExit function was called."/>
1577 <event id="0xF200 + 0x1B" level="API" property="ThreadTerminate" value="thread_id=%x[val1]" info="osThreadTerminate function was called."/>
1578 <event id="0xF200 + 0x1C" level="Op" property="ThreadDestroyed" tracking="Stop" state="Inactive" handle="val1" value="thread_id=%x[val1]" info="Thread execution was terminated."/>
1579 <event id="0xF200 + 0x1D" level="API" property="ThreadGetCount" value="count=%d[val1]" info="osThreadGetCount function was called and number of active threads was retrieved."/>
1580 <event id="0xF200 + 0x1E" level="API" property="ThreadEnumerate" value="thread_array=%x[val1], array_items=%d[val2], count=%d[val3]" info="osThreadEnumerate function was called and active threads were enumerated."/>
Robert Rostohar0667b182016-11-25 21:48:19 +01001581
Robert Rostohar83177af2018-09-04 10:27:04 +02001582 <event id="0xF400 + 0x00" level="Error" property="ThreadFlagsError" value="thread_id=%x[val1], status=%E[val2, rtx_t:status]" info="Thread flags error occurred."/>
1583 <event id="0xF400 + 0x01" level="API" property="ThreadFlagsSet" value="thread_id=%x[val1], flags=%x[val2]" info="osThreadFlagsSet function was called."/>
1584 <event id="0xF400 + 0x02" level="Op" property="ThreadFlagsSetDone" value="thread_id=%x[val1], thread_flags=%x[val2]" info="Thread flags were set."/>
1585 <event id="0xF400 + 0x03" level="API" property="ThreadFlagsClear" value="flags=%x[val1]" info="osThreadFlagsClear function was called."/>
1586 <event id="0xF400 + 0x04" level="Op" property="ThreadFlagsClearDone" value="thread_flags=%x[val1]" info="Thread flags were cleared."/>
1587 <event id="0xF400 + 0x05" level="API" property="ThreadFlagsGet" value="thread_flags=%x[val1]" info="osThreadFlagsGet function was called and thread flags were retrieved."/>
1588 <event id="0xF400 + 0x06" level="API" property="ThreadFlagsWait" value="flags=%x[val1], options=%x[val2], timeout=%d[val3]" info="osThreadFlagsWait function was called."/>
1589 <event id="0xF400 + 0x07" level="Op" property="ThreadFlagsWaitPending" value="flags=%x[val1], options=%x[val2], timeout=%d[val3]" info="Waiting for thread flags to become signaled."/>
1590 <event id="0xF400 + 0x08" level="Op" property="ThreadFlagsWaitTimeout" value="" info="Waiting for thread flags timed out."/>
1591 <event id="0xF400 + 0x09" level="Op" property="ThreadFlagsWaitCompleted" value="flags=%x[val1], options=%x[val2], thread_flags=%x[val3]" info="Wait for thread flags completed."/>
1592 <event id="0xF400 + 0x0A" level="Op" property="ThreadFlagsWaitNotCompleted" value="flags=%x[val1], options=%x[val2]" info="Wait for thread flags not completed."/>
Robert Rostohar0667b182016-11-25 21:48:19 +01001593
Robert Rostohar83177af2018-09-04 10:27:04 +02001594 <event id="0xF300 + 0x00" level="Error" property="DelayError" value="status=%E[val1, rtx_t:status]" info="osDelay/osDelayUntil error occurred."/>
1595 <event id="0xF300 + 0x01" level="API" property="Delay" value="ticks=%d[val1]" info="osDelay function was called."/>
1596 <event id="0xF300 + 0x02" level="API" property="DelayUntil" value="ticks=%d[val1]" info="osDelayUntil function was called."/>
1597 <event id="0xF300 + 0x03" level="Op" property="DelayStarted" value="ticks=%d[val1]" info="osDelay/osDelayUntil started."/>
1598 <event id="0xF300 + 0x04" level="Op" property="DelayCompleted" value="" info="osDelay/osDelayUntil completed."/>
Robert Rostohar0667b182016-11-25 21:48:19 +01001599
Robert Rostohar83177af2018-09-04 10:27:04 +02001600 <event id="0xF600 + 0x00" level="Error" property="TimerError" value="timer_id=%x[val1], status=%E[val2, rtx_t:status]" info="Timer error occurred."/>
1601 <event id="0xF600 + 0x01" level="Op" property="TimerCallback" value="func=%S[val1], argument=%x[val2]" info="Timer callback function was called."/>
1602 <event id="0xF600 + 0x02" level="API" property="TimerNew" value="func=%S[val1], type=%E[val2, rtx_timer_type:id], argument=%x[val3], attr=%x[val4]" info="osTimerNew function was called."/>
1603 <event id="0xF600 + 0x04" level="Op" property="TimerCreated" value="timer_id=%x[val1]" info="Timer object was created."/>
1604 <event id="0xF600 + 0x05" level="API" property="TimerGetName" value="timer_id=%x[val1], name=%N[val2]" info="osTimerGetName function was called and object name was retrieved."/>
1605 <event id="0xF600 + 0x07" level="API" property="TimerStart" value="timer_id=%x[val1], ticks=%d[val2]" info="osTimerStart function was called."/>
1606 <event id="0xF600 + 0x08" level="Op" property="TimerStarted" value="timer_id=%x[val1]" info="Timer execution was started."/>
1607 <event id="0xF600 + 0x09" level="API" property="TimerStop" value="timer_id=%x[val1]" info="osTimerStop function was called."/>
1608 <event id="0xF600 + 0x0A" level="Op" property="TimerStopped" value="timer_id=%x[val1]" info="Timer execution was stopped."/>
1609 <event id="0xF600 + 0x0B" level="API" property="TimerIsRunning" value="timer_id=%x[val1], running=%d[val2]" info="osTimerIsRunning function was called and timer running state was retrieved."/>
1610 <event id="0xF600 + 0x0C" level="API" property="TimerDelete" value="timer_id=%x[val1]" info="osTimerDelete function was called."/>
1611 <event id="0xF600 + 0x0D" level="Op" property="TimerDestroyed" value="timer_id=%x[val1]" info="Timer object was deleted."/>
Robert Rostohar0667b182016-11-25 21:48:19 +01001612
Robert Rostohar83177af2018-09-04 10:27:04 +02001613 <event id="0xF500 + 0x00" level="Error" property="EventFlagsError" value="ef_id=%x[val1], status=%E[val2, rtx_t:status]" info="Event flags error occurred."/>
1614 <event id="0xF500 + 0x01" level="API" property="EventFlagsNew" value="attr=%x[val1]" info="osEventFlagsNew function was called."/>
1615 <event id="0xF500 + 0x03" level="Op" property="EventFlagsCreated" value="ef_id=%x[val1]" info="Event flags object was created."/>
1616 <event id="0xF500 + 0x04" level="API" property="EventFlagsGetName" value="ef_id=%x[val1], name=%N[val2]" info="osEventFlagsGetName function was called and object name was retrieved."/>
1617 <event id="0xF500 + 0x06" level="API" property="EventFlagsSet" value="ef_id=%x[val1], flags=%x[val2]" info="osEventFlagsSet function was called."/>
1618 <event id="0xF500 + 0x07" level="Op" property="EventFlagsSetDone" value="ef_id=%x[val1], event_flags=%x[val2]" info="Event flags were set."/>
1619 <event id="0xF500 + 0x08" level="API" property="EventFlagsClear" value="ef_id=%x[val1], flags=%x[val2]" info="osEventFlagsClear function was called."/>
1620 <event id="0xF500 + 0x09" level="Op" property="EventFlagsClearDone" value="ef_id=%x[val1], event_flags=%x[val2]" info="Event flags were cleared."/>
1621 <event id="0xF500 + 0x0A" level="API" property="EventFlagsGet" value="ef_id=%x[val1], event_flags=%x[val2]" info="osEventFlagsGet function was called and current event flags were retrieved."/>
1622 <event id="0xF500 + 0x0B" level="API" property="EventFlagsWait" value="ef_id=%x[val1], flags=%x[val2], options=%x[val3], timeout=%d[val4]" info="osEventFlagsWait function was called."/>
1623 <event id="0xF500 + 0x0C" level="Op" property="EventFlagsWaitPending" value="ef_id=%x[val1], flags=%x[val2], options=%x[val3], timeout=%d[val4]" info="Event flags wait is pending."/>
1624 <event id="0xF500 + 0x0D" level="Op" property="EventFlagsWaitTimeout" value="ef_id=%x[val1]" info="Event flags wait timed out."/>
1625 <event id="0xF500 + 0x0E" level="Op" property="EventFlagsWaitCompleted" value="ef_id=%x[val1], flags=%x[val2], options=%x[val3], event_flags=%x[val4]" info="Event flags wait completed."/>
1626 <event id="0xF500 + 0x0F" level="Op" property="EventFlagsWaitNotCompleted" value="ef_id=%x[val1], flags=%x[val2], options=%x[val3]" info="Event flags wait not completed."/>
1627 <event id="0xF500 + 0x10" level="API" property="EventFlagsDelete" value="ef_id=%x[val1]" info="osEventFlagsDelete function was called."/>
1628 <event id="0xF500 + 0x11" level="Op" property="EventFlagsDestroyed" value="ef_id=%x[val1]" info="Event flags object was deleted."/>
Robert Rostohar0667b182016-11-25 21:48:19 +01001629
Robert Rostohar83177af2018-09-04 10:27:04 +02001630 <event id="0xF700 + 0x00" level="Error" property="MutexError" state="Error" handle="val1" value="mutex_id=%x[val1], status=%E[val2, rtx_t:status]" info="Mutex error occurred."/>
1631 <event id="0xF700 + 0x01" level="API" property="MutexNew" value="attr=%x[val1]" info="osMutexNew function was called"/>
1632 <event id="0xF700 + 0x03" level="Op" property="MutexCreated" tracking="Start" state="Free" handle="val1" value="mutex_id=%x[val1]" info="Mutex object was created"/>
1633 <event id="0xF700 + 0x04" level="API" property="MutexGetName" value="mutex_id=%x[val1], name=%N[val2]" info="osMutexGetName function was called and object name was retrieved."/>
1634 <event id="0xF700 + 0x06" level="API" property="MutexAcquire" state="Used" handle="val1" value="mutex_id=%x[val1], timeout=%d[val2]" info="osMutexAcquire function was called."/>
1635 <event id="0xF700 + 0x07" level="Op" property="MutexAcquirePending" value="mutex_id=%x[val1], timeout=%d[val2]" info="Mutex object acquire is pending."/>
1636 <event id="0xF700 + 0x08" level="Op" property="MutexAcquireTimeout" value="mutex_id=%x[val1]" info="Mutex object acquire timed out."/>
1637 <event id="0xF700 + 0x09" level="Op" property="MutexAcquired" value="mutex_id=%x[val1], lock=%d[val2]" info="Mutex object was acquired."/>
1638 <event id="0xF700 + 0x0A" level="Op" property="MutexNotAcquired" value="mutex_id=%x[val1]" info="Mutex object was not acquired."/>
1639 <event id="0xF700 + 0x0B" level="API" property="MutexRelease" state="Free" handle="val1" value="mutex_id=%x[val1]" info="osMutexRelease function was called."/>
1640 <event id="0xF700 + 0x0C" level="Op" property="MutexReleased" value="mutex_id=%x[val1], lock=%d[val2]" info="Mutex object was released."/>
1641 <event id="0xF700 + 0x0D" level="API" property="MutexGetOwner" value="mutex_id=%x[val1], thread_id=%x[val2]" info="osMutexGetOwner function was called and mutex owner thread was retrieved."/>
1642 <event id="0xF700 + 0x0E" level="API" property="MutexDelete" value="mutex_id=%x[val1]" info="osMutexDelete function was called."/>
1643 <event id="0xF700 + 0x0F" level="Op" property="MutexDestroyed" tracking="Stop" state="Free" handle="val1" value="mutex_id=%x[val1]" info="Mutex object was deleted."/>
Robert Rostohar0667b182016-11-25 21:48:19 +01001644
Robert Rostohar83177af2018-09-04 10:27:04 +02001645 <event id="0xF800 + 0x00" level="Error" property="SemaphoreError" value="semaphore_id=%x[val1], status=%E[val2, rtx_t:status]" info="Semaphore error occurred."/>
1646 <event id="0xF800 + 0x01" level="API" property="SemaphoreNew" value="max_count=%d[val1], initial_count=%d[val2], attr=%x[val3]" info="osSemaphoreNew function was called."/>
1647 <event id="0xF800 + 0x03" level="Op" property="SemaphoreCreated" value="semaphore_id=%x[val1]" info="Semaphore object was created."/>
1648 <event id="0xF800 + 0x04" level="API" property="SemaphoreGetName" value="semaphore_id=%x[val1], name=%N[val2]" info="osSemaphoreGetName function was called and object name was retrieved."/>
1649 <event id="0xF800 + 0x06" level="API" property="SemaphoreAcquire" value="semaphore_id=%x[val1], timeout=%d[val2]" info="osSemaphoreAcquire function was called."/>
1650 <event id="0xF800 + 0x07" level="Op" property="SemaphoreAcquirePending" value="semaphore_id=%x[val1], timeout=%d[val2]" info="Semaphore object acquire is pending."/>
1651 <event id="0xF800 + 0x08" level="Op" property="SemaphoreAcquireTimeout" value="semaphore_id=%x[val1]" info="Semaphore object acquire timed out."/>
1652 <event id="0xF800 + 0x09" level="Op" property="SemaphoreAcquired" value="semaphore_id=%x[val1], tokens=%d[val2]" info="Semaphore object was acquired."/>
1653 <event id="0xF800 + 0x0A" level="Op" property="SemaphoreNotAcquired" value="semaphore_id=%x[val1]" info="Semaphore object was not acquired."/>
1654 <event id="0xF800 + 0x0B" level="API" property="SemaphoreRelease" value="semaphore_id=%x[val1]" info="osSemaphoreRelease function was called."/>
1655 <event id="0xF800 + 0x0C" level="Op" property="SemaphoreReleased" value="semaphore_id=%x[val1], tokens=%d[val2]" info="Semaphore object was released."/>
1656 <event id="0xF800 + 0x0D" level="API" property="SemaphoreGetCount" value="semaphore_id=%x[val1], count=%d[val2]" info="osSemaphoreGetCount function was called and current number of available tokens was retrieved."/>
1657 <event id="0xF800 + 0x0E" level="API" property="SemaphoreDelete" value="semaphore_id=%x[val1]" info="osSemaphoreDelete function was called."/>
1658 <event id="0xF800 + 0x0F" level="Op" property="SemaphoreDestroyed" value="semaphore_id=%x[val1]" info="Semaphore object was deleted."/>
1659
1660 <event id="0xF900 + 0x00" level="Error" property="MemoryPoolError" value="mp_id=%x[val1], status=%E[val2, rtx_t:status]" info="Memory pool error occurred."/>
1661 <event id="0xF900 + 0x01" level="API" property="MemoryPoolNew" value="block_count=%d[val1], block_size=%d[val2], attr=%x[val3]" info="osMemoryPoolNew function was called."/>
1662 <event id="0xF900 + 0x03" level="Op" property="MemoryPoolCreated" value="mp_id=%x[val1]" info="Memory Pool object was created"/>
1663 <event id="0xF900 + 0x04" level="API" property="MemoryPoolGetName" value="mp_id=%x[val1], name=%N[val2]" info="osMemoryPoolGetName function was called and object name was retrieved."/>
1664 <event id="0xF900 + 0x06" level="API" property="MemoryPoolAlloc" value="mp_id=%x[val1], timeout=%d[val2]" info="osMemoryPoolAlloc function was called."/>
1665 <event id="0xF900 + 0x07" level="Op" property="MemoryPoolAllocPending" value="mp_id=%x[val1], timeout=%d[val2]" info="Memory pool allocation is pending."/>
1666 <event id="0xF900 + 0x08" level="Op" property="MemoryPoolAllocTimeout" value="mp_id=%x[val1]" info="Memory pool allocation timed out."/>
1667 <event id="0xF900 + 0x09" level="Op" property="MemoryPoolAllocated" value="mp_id=%x[val1], block=%x[val2]" info="Memory pool was allocated."/>
1668 <event id="0xF900 + 0x0A" level="Op" property="MemoryPoolAllocFailed" value="mp_id=%x[val1]" info="Memory pool was not allocated."/>
1669 <event id="0xF900 + 0x0B" level="API" property="MemoryPoolFree" value="mp_id=%x[val1], block=%x[val2]" info="osMemoryPoolFree function was called."/>
1670 <event id="0xF900 + 0x0C" level="Op" property="MemoryPoolDeallocated" value="mp_id=%x[val1], block=%x[val2]" info="Memory pool was deallocated."/>
1671 <event id="0xF900 + 0x0D" level="Op" property="MemoryPoolFreeFailed" value="mp_id=%x[val1], block=%x[val2]" info="Memory pool was not deallocated."/>
1672 <event id="0xF900 + 0x0E" level="API" property="MemoryPoolGetCapacity" value="mp_id=%x[val1], capacity=%d[val2]" info="osMemoryPoolGetCapacity function was called and maximum number of memory blocks was retrieved."/>
1673 <event id="0xF900 + 0x0F" level="API" property="MemoryPoolGetBlockSize" value="mp_id=%x[val1], block_size=%d[val2]" info="osMemoryPoolGetBlockSize function was called and memory block size was retrieved."/>
1674 <event id="0xF900 + 0x10" level="API" property="MemoryPoolGetCount" value="mp_id=%x[val1], count=%d[val2]" info="osMemoryPoolGetCount function was called and number of used memory blocks was retrieved."/>
1675 <event id="0xF900 + 0x11" level="API" property="MemoryPoolGetSpace" value="mp_id=%x[val1], space=%d[val2]" info="osMemoryPoolGetSpace function was called and number of available memory blocks was retrieved."/>
1676 <event id="0xF900 + 0x12" level="API" property="MemoryPoolDelete" value="mp_id=%x[val1]" info="osMemoryPoolDelete function was called."/>
1677 <event id="0xF900 + 0x13" level="Op" property="MemoryPoolDestroyed" value="mp_id=%x[val1]" info="Memory pool object was deleted."/>
1678
1679 <event id="0xFA00 + 0x00" level="Error" property="MessageQueueError" value="mq_id=%x[val1], status=%E[val2, rtx_t:status]" info="Message queue error occurred."/>
1680 <event id="0xFA00 + 0x01" level="API" property="MessageQueueNew" value="msg_count=%d[val1], msg_size=%d[val2], attr=%x[val3]" info="osMessageQueueNew function was called."/>
1681 <event id="0xFA00 + 0x03" level="Op" property="MessageQueueCreated" value="mq_id=%x[val1]" info="Message Queue object was created"/>
1682 <event id="0xFA00 + 0x04" level="API" property="MessageQueueGetName" value="mq_id=%x[val1], name=%N[val2]" info="osMessageQueueGetName function was called and object name was retrieved."/>
1683 <event id="0xFA00 + 0x06" level="API" property="MessageQueuePut" value="mq_id=%x[val1], msg_ptr=%x[val2], msg_prio=%d[val3], timeout=%d[val4]" info="osMessageQueuePut function was called."/>
1684 <event id="0xFA00 + 0x07" level="Op" property="MessageQueuePutPending" value="mq_id=%x[val1], msg_ptr=%x[val2], timeout=%d[val3]" info="Message put is pending."/>
1685 <event id="0xFA00 + 0x08" level="Op" property="MessageQueuePutTimeout" value="mq_id=%x[val1]" info="Message put timed out."/>
1686 <event id="0xFA00 + 0x09" level="Op" property="MessageQueueInsertPending" value="mq_id=%x[val1], msg_ptr=%x[val2]" info="Message insert is pending."/>
1687 <event id="0xFA00 + 0x0A" level="Op" property="MessageQueueInserted" value="mq_id=%x[val1], msg_ptr=%x[val2]" info="Message was inserted."/>
1688 <event id="0xFA00 + 0x0B" level="Op" property="MessageQueueNotInserted" value="mq_id=%x[val1], msg_ptr=%x[val2]" info="Message was not inserted"/>
1689 <event id="0xFA00 + 0x0C" level="API" property="MessageQueueGet" value="mq_id=%x[val1], msg_ptr=%x[val2], msg_prio=%x[val3], timeout=%d[val4]" info="osMessageQueueGet function was called."/>
1690 <event id="0xFA00 + 0x0D" level="Op" property="MessageQueueGetPending" value="mq_id=%x[val1], msg_ptr=%x[val2], timeout=%d[val3]" info="Message get is pending."/>
1691 <event id="0xFA00 + 0x0E" level="Op" property="MessageQueueGetTimeout" value="mq_id=%x[val1]" info="Message get timed out."/>
1692 <event id="0xFA00 + 0x0F" level="Op" property="MessageQueueRetrieved" value="mq_id=%x[val1], msg_ptr=%x[val2]" info="Message was retrieved."/>
1693 <event id="0xFA00 + 0x10" level="Op" property="MessageQueueNotRetrieved" value="mq_id=%x[val1], msg_ptr=%x[val2]" info="Message was not retrieved."/>
1694 <event id="0xFA00 + 0x11" level="API" property="MessageQueueGetCapacity" value="mq_id=%x[val1], capacity=%d[val2]" info="osMessageQueueGetCapacity function was called and maximum number of messages was retrieved."/>
1695 <event id="0xFA00 + 0x12" level="API" property="MessageQueueGetMsgSize" value="mq_id=%x[val1], msg_size=%d[val2]" info="osMessageQueueGetMsgSize function was called and maximum message size was retrieved."/>
1696 <event id="0xFA00 + 0x13" level="API" property="MessageQueueGetCount" value="mq_id=%x[val1], count=%d[val2]" info="osMessageQueueGetCount function was called and number of queued messages was retrieved."/>
1697 <event id="0xFA00 + 0x14" level="API" property="MessageQueueGetSpace" value="mq_id=%x[val1], space=%d[val2]" info="osMessageQueueGetSpace function was called and number of available message slots was retrieved."/>
1698 <event id="0xFA00 + 0x15" level="API" property="MessageQueueReset" value="mq_id=%x[val1]" info="osMessageQueueReset function was called."/>
1699 <event id="0xFA00 + 0x16" level="Op" property="MessageQueueResetDone" value="mq_id=%x[val1]" info="Message queue was reset."/>
1700 <event id="0xFA00 + 0x17" level="API" property="MessageQueueDelete" value="mq_id=%x[val1]" info="osMessageQueueDelete function was called."/>
1701 <event id="0xFA00 + 0x18" level="Op" property="MessageQueueDestroyed" value="mq_id=%x[val1]" info="Message queue object was deleted."/>
Robert Rostohar0667b182016-11-25 21:48:19 +01001702
1703 </events>
Matthias Hertelb73eaf32016-07-22 15:18:56 +02001704</component_viewer>