Matthias Hertel | b73eaf3 | 2016-07-22 15:18:56 +0200 | [diff] [blame] | 1 | <?xml version="1.0" encoding="utf-8"?> |
Robert Rostohar | c2d7959 | 2018-06-18 11:42:47 +0200 | [diff] [blame] | 2 | <component_viewer schemaVersion="1.2.0" xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="Component_Viewer.xsd"> |
Vladimir Umek | 757e808 | 2019-04-25 08:48:06 +0200 | [diff] [blame] | 3 | <component name="CMSIS:RTOS2:Keil RTX5" shortname="RTX5" version="5.5.1"/> <!-- name and version of the component --> |
Matthias Hertel | b73eaf3 | 2016-07-22 15:18:56 +0200 | [diff] [blame] | 4 | |
| 5 | <typedefs> |
Robert Rostohar | 0667b18 | 2016-11-25 21:48:19 +0100 | [diff] [blame] | 6 | <!-- 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 Rostohar | e6ffbc4 | 2016-09-14 10:35:53 +0200 | [diff] [blame] | 71 | <!-- Thread Control Block --> |
Robert Rostohar | 0667b18 | 2016-11-25 21:48:19 +0100 | [diff] [blame] | 72 | <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 Hertel | b73eaf3 | 2016-07-22 15:18:56 +0200 | [diff] [blame] | 75 | <enum name="osThreadInactive" value="0" info=""/> |
| 76 | <enum name="osThreadReady" value="1" info=""/> |
| 77 | <enum name="osThreadRunning" value="2" info=""/> |
Robert Rostohar | b3c0636 | 2016-10-19 14:24:56 +0200 | [diff] [blame] | 78 | <enum name="osThreadBlocked" value="3" info=""/> |
| 79 | <enum name="osThreadTerminated" value="4" info=""/> |
Matthias Hertel | b73eaf3 | 2016-07-22 15:18:56 +0200 | [diff] [blame] | 80 | <enum name="osThreadError" value="-1" info=""/> |
| 81 | |
Robert Rostohar | b3c0636 | 2016-10-19 14:24:56 +0200 | [diff] [blame] | 82 | <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 Hertel | b73eaf3 | 2016-07-22 15:18:56 +0200 | [diff] [blame] | 91 | </member> |
Robert Rostohar | 0667b18 | 2016-11-25 21:48:19 +0100 | [diff] [blame] | 92 | <member name="flags" type="uint8_t" offset="2" info="Object Flags"/> |
| 93 | <member name="attr" type="uint8_t" offset="3" info="Object Attributes"> |
Robert Rostohar | b3c0636 | 2016-10-19 14:24:56 +0200 | [diff] [blame] | 94 | <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 Rostohar | 0667b18 | 2016-11-25 21:48:19 +0100 | [diff] [blame] | 97 | <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 Hertel | b73eaf3 | 2016-07-22 15:18:56 +0200 | [diff] [blame] | 105 | <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 Rostohar | 0667b18 | 2016-11-25 21:48:19 +0100 | [diff] [blame] | 158 | <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 Umek | 971a284 | 2017-03-06 07:58:56 +0100 | [diff] [blame] | 161 | <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 Rostohar | b3c0636 | 2016-10-19 14:24:56 +0200 | [diff] [blame] | 164 | </member> |
Robert Rostohar | 0667b18 | 2016-11-25 21:48:19 +0100 | [diff] [blame] | 165 | <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 Hertel | b73eaf3 | 2016-07-22 15:18:56 +0200 | [diff] [blame] | 173 | |
Vladimir Umek | 04f9687 | 2018-04-20 10:45:32 +0200 | [diff] [blame] | 174 | <var name="cb_valid" type="uint32_t" info="Control block validation status (valid=1, invalid=0)"/> |
| 175 | <var name="sp_valid" type="uint32_t" info="Stack pointer validation status (valid=1, invalid=0)"/> |
Vladimir Umek | bf186a6 | 2017-07-03 13:04:32 +0200 | [diff] [blame] | 176 | <var name="out_type" type="uint8_t" info="Output display type ID"/> |
Matthias Hertel | b73eaf3 | 2016-07-22 15:18:56 +0200 | [diff] [blame] | 177 | |
Robert Rostohar | e6ffbc4 | 2016-09-14 10:35:53 +0200 | [diff] [blame] | 178 | <var name="ex_delay" type="uint32_t" info="Calculated execution delay"/> |
Matthias Hertel | b73eaf3 | 2016-07-22 15:18:56 +0200 | [diff] [blame] | 179 | |
Robert Rostohar | e6ffbc4 | 2016-09-14 10:35:53 +0200 | [diff] [blame] | 180 | <var name="stack_val" type="uint32_t" info="Stack usage: analysis result"/> |
Vladimir Umek | bf186a6 | 2017-07-03 13:04:32 +0200 | [diff] [blame] | 181 | <var name="stack_cur" type="uint32_t" info="Stack usage: current (address)"/> |
Robert Rostohar | b3c0636 | 2016-10-19 14:24:56 +0200 | [diff] [blame] | 182 | <var name="stack_curp" type="uint32_t" info="Stack usage: current (in percent)"/> |
| 183 | <var name="stack_curb" type="uint32_t" info="Stack usage: current (in bytes)"/> |
Robert Rostohar | e6ffbc4 | 2016-09-14 10:35:53 +0200 | [diff] [blame] | 184 | <var name="stack_maxb" type="uint32_t" info="Stack usage: maximum (in bytes)"/> |
| 185 | <var name="stack_maxp" type="uint32_t" info="Stack usage: maximum (in percent)"/> |
| 186 | <var name="stack_over" type="uint8_t" info="Stack usage: overflow"/> |
Matthias Hertel | b73eaf3 | 2016-07-22 15:18:56 +0200 | [diff] [blame] | 187 | </typedef> |
| 188 | |
Robert Rostohar | e6ffbc4 | 2016-09-14 10:35:53 +0200 | [diff] [blame] | 189 | <!-- Timer Control Block --> |
Robert Rostohar | 0667b18 | 2016-11-25 21:48:19 +0100 | [diff] [blame] | 190 | <typedef name="osRtxTimer_t" info="" size="32"> |
| 191 | <member name="id" type="uint8_t" offset="0" info="Object Identifier"/> |
| 192 | <member name="state" type="uint8_t" offset="1" info="Object State"> |
Matthias Hertel | b73eaf3 | 2016-07-22 15:18:56 +0200 | [diff] [blame] | 193 | <enum name="Inactive" value="0" info="Timer is not active"/> |
| 194 | <enum name="Stopped" value="1" info="Timer is stopped"/> |
| 195 | <enum name="Running" value="2" info="Timer is running"/> |
| 196 | </member> |
Robert Rostohar | 0667b18 | 2016-11-25 21:48:19 +0100 | [diff] [blame] | 197 | <member name="flags" type="uint8_t" offset="2" info="Object Flags"/> |
| 198 | <member name="type" type="uint8_t" offset="3" info="Timer Type"> |
Matthias Hertel | b73eaf3 | 2016-07-22 15:18:56 +0200 | [diff] [blame] | 199 | <enum name="osTimerOnce" value="0" info="One-shot timer"/> |
| 200 | <enum name="osTimerPeriodic" value="1" info="Periodic timer"/> |
| 201 | </member> |
Robert Rostohar | 0667b18 | 2016-11-25 21:48:19 +0100 | [diff] [blame] | 202 | <member name="name" type="uint32_t" offset="4" info="Object name (type is *uint8_t)"/> |
| 203 | <member name="prev" type="*osRtxTimer_t" offset="8" info="Pointer to previous active timer"/> |
| 204 | <member name="next" type="*osRtxTimer_t" offset="12" info="Pointer to next active timer"/> |
| 205 | <member name="tick" type="uint32_t" offset="16" info="Timer current tick"/> |
| 206 | <member name="load" type="uint32_t" offset="20" info="Timer load value"/> |
Vladimir Umek | 971a284 | 2017-03-06 07:58:56 +0100 | [diff] [blame] | 207 | <!-- Inlined "osRtxTimerFinfo_t" structure --> |
Robert Rostohar | 0667b18 | 2016-11-25 21:48:19 +0100 | [diff] [blame] | 208 | <member name="finfo_fp" type="uint32_t" offset="24" info="Timer function pointer (type is void *)"/> |
| 209 | <member name="finfo_arg" type="uint32_t" offset="28" info="Timer function argument (type is void *)"/> |
Matthias Hertel | b73eaf3 | 2016-07-22 15:18:56 +0200 | [diff] [blame] | 210 | |
Robert Rostohar | e6ffbc4 | 2016-09-14 10:35:53 +0200 | [diff] [blame] | 211 | <var name="cb_valid" type="uint32_t" info="Control Block validation status (valid=1, invalid=0)"/> |
| 212 | <var name="ex_tick" type="uint32_t" info="Calculated absolute tick time"/> |
Matthias Hertel | b73eaf3 | 2016-07-22 15:18:56 +0200 | [diff] [blame] | 213 | </typedef> |
| 214 | |
Robert Rostohar | e6ffbc4 | 2016-09-14 10:35:53 +0200 | [diff] [blame] | 215 | <!-- Event Flags Control Block --> |
Robert Rostohar | 0667b18 | 2016-11-25 21:48:19 +0100 | [diff] [blame] | 216 | <typedef name="osRtxEventFlags_t" info="" size="16"> |
| 217 | <member name="id" type="uint8_t" offset="0" info="Object Identifier"/> |
| 218 | <member name="state" type="uint8_t" offset="1" info="Object State"/> |
| 219 | <member name="flags" type="uint8_t" offset="2" info="Object Flags"/> |
| 220 | <member name="reserved" type="uint8_t" offset="3" info=""/> |
| 221 | <member name="name" type="uint32_t" offset="4" info="Object name (type is *uint8_t)"/> |
| 222 | <member name="thread_list" type="*osRtxThread_t" offset="8" info="Waiting threads list"/> |
| 223 | <member name="event_flags" type="int32_t" offset="12" info="Event flags"/> |
Matthias Hertel | b73eaf3 | 2016-07-22 15:18:56 +0200 | [diff] [blame] | 224 | |
Robert Rostohar | e6ffbc4 | 2016-09-14 10:35:53 +0200 | [diff] [blame] | 225 | <var name="cb_valid" type="uint32_t" info="Control Block validation status (valid=1, invalid=0)"/> |
| 226 | <var name="wl_idx" type="uint32_t" info="EventFlags waiting list (EWL) index" /> |
| 227 | <var name="wl_cnt" type="uint32_t" info="Number of threads waiting for event flags" /> |
Matthias Hertel | b73eaf3 | 2016-07-22 15:18:56 +0200 | [diff] [blame] | 228 | </typedef> |
| 229 | |
Robert Rostohar | e6ffbc4 | 2016-09-14 10:35:53 +0200 | [diff] [blame] | 230 | <!-- Mutex Control Block --> |
Robert Rostohar | 0667b18 | 2016-11-25 21:48:19 +0100 | [diff] [blame] | 231 | <typedef name="osRtxMutex_t" info="" size="28"> |
| 232 | <member name="id" type="uint8_t" offset="0" info="Object Identifier"/> |
| 233 | <member name="state" type="uint8_t" offset="1" info="Object State"/> |
| 234 | <member name="flags" type="uint8_t" offset="2" info="Object Flags"/> |
| 235 | <member name="attr" type="uint8_t" offset="3" info="Object Attributes"> |
Robert Rostohar | b3c0636 | 2016-10-19 14:24:56 +0200 | [diff] [blame] | 236 | <enum name="osMutexRecursive" value="0x01" info="Recursive mutex."/> |
| 237 | <enum name="osMutexPrioInherit" value="0x02" info="Priority inherit protocol."/> |
| 238 | <enum name="osMutexRobust" value="0x08" info="Robust mutex."/> |
| 239 | </member> |
Robert Rostohar | 0667b18 | 2016-11-25 21:48:19 +0100 | [diff] [blame] | 240 | <member name="name" type="uint32_t" offset="4" info="Object name (type is *uint8_t)"/> |
| 241 | <member name="thread_list" type="*osRtxThread_t" offset="8" info="Waiting threads list"/> |
| 242 | <member name="owner_thread" type="*osRtxThread_t" offset="12" info="Owner thread"/> |
| 243 | <member name="owner_prev" type="*osRtxMutex_t" offset="16" info="Pointer to previous owned mutex"/> |
| 244 | <member name="owner_next" type="*osRtxMutex_t" offset="20" info="Pointer to next owned mutex"/> |
| 245 | <member name="lock" type="uint8_t" offset="24" info="Lock counter"/> |
Matthias Hertel | b73eaf3 | 2016-07-22 15:18:56 +0200 | [diff] [blame] | 246 | |
Robert Rostohar | e6ffbc4 | 2016-09-14 10:35:53 +0200 | [diff] [blame] | 247 | <var name="cb_valid" type="uint32_t" info="Control Block validation status (valid=1, invalid=0)"/> |
| 248 | <var name="wl_idx" type="uint32_t" info="Mutex waiting list (MWL) index" /> |
| 249 | <var name="wl_cnt" type="uint32_t" info="Number of threads waiting for current mutex" /> |
Matthias Hertel | b73eaf3 | 2016-07-22 15:18:56 +0200 | [diff] [blame] | 250 | </typedef> |
| 251 | |
Robert Rostohar | e6ffbc4 | 2016-09-14 10:35:53 +0200 | [diff] [blame] | 252 | <!-- Semaphore Control Block --> |
Robert Rostohar | 0667b18 | 2016-11-25 21:48:19 +0100 | [diff] [blame] | 253 | <typedef name="osRtxSemaphore_t" info="" size="16"> |
| 254 | <member name="id" type="uint8_t" offset="0" info="Object Identifier"/> |
| 255 | <member name="state" type="uint8_t" offset="1" info="Object State"/> |
| 256 | <member name="flags" type="uint8_t" offset="2" info="Object Flags"/> |
| 257 | <member name="reserved" type="uint8_t" offset="3" info=""/> |
| 258 | <member name="name" type="uint32_t" offset="4" info="Object name (type is *uint8_t)"/> |
| 259 | <member name="thread_list" type="*osRtxThread_t" offset="8" info="Waiting threads list"/> |
| 260 | <member name="tokens" type="uint16_t" offset="12" info="Current number of tokens"/> |
| 261 | <member name="max_tokens" type="uint16_t" offset="14" info="Maximum number of tokens"/> |
Matthias Hertel | b73eaf3 | 2016-07-22 15:18:56 +0200 | [diff] [blame] | 262 | |
Robert Rostohar | e6ffbc4 | 2016-09-14 10:35:53 +0200 | [diff] [blame] | 263 | <var name="cb_valid" type="uint32_t" info="Control Block validation status (valid=1, invalid=0)"/> |
| 264 | <var name="wl_idx" type="uint32_t" info="Semaphore waiting list (SWL) index" /> |
| 265 | <var name="wl_cnt" type="uint32_t" info="Number of threads waiting for current semaphore" /> |
Matthias Hertel | b73eaf3 | 2016-07-22 15:18:56 +0200 | [diff] [blame] | 266 | </typedef> |
| 267 | |
Robert Rostohar | e6ffbc4 | 2016-09-14 10:35:53 +0200 | [diff] [blame] | 268 | <!-- Memory Pool Information --> |
Robert Rostohar | 0667b18 | 2016-11-25 21:48:19 +0100 | [diff] [blame] | 269 | <typedef name="osRtxMpInfo_t" info="Memory pool information" size="24"> |
Matthias Hertel | b73eaf3 | 2016-07-22 15:18:56 +0200 | [diff] [blame] | 270 | <member name="max_blocks" type="uint32_t" offset="0" info="Maximum number of blocks"/> |
| 271 | <member name="used_blocks" type="uint32_t" offset="4" info="Number of used blocks"/> |
| 272 | <member name="block_size" type="uint32_t" offset="8" info="Block size"/> |
| 273 | <member name="block_base" type="uint32_t" offset="12" info="Block memory base address (type is void *)"/> |
| 274 | <member name="block_lim" type="uint32_t" offset="16" info="Block memory limit address (type is void *)"/> |
| 275 | <member name="block_free" type="uint32_t" offset="20" info="First free block address (type is void *)"/> |
| 276 | </typedef> |
| 277 | |
Robert Rostohar | e6ffbc4 | 2016-09-14 10:35:53 +0200 | [diff] [blame] | 278 | <!-- Memory Pool Control Block --> |
Robert Rostohar | 0667b18 | 2016-11-25 21:48:19 +0100 | [diff] [blame] | 279 | <typedef name="osRtxMemoryPool_t" info="" size="36"> |
| 280 | <member name="id" type="uint8_t" offset="0" info="Object Identifier"/> |
| 281 | <member name="state" type="uint8_t" offset="1" info="Object State"/> |
| 282 | <member name="flags" type="uint8_t" offset="2" info="Object Flags"/> |
| 283 | <member name="reserved" type="uint8_t" offset="3" info=""/> |
| 284 | <member name="name" type="uint32_t" offset="4" info="Object name (type is *uint8_t)"/> |
| 285 | <member name="thread_list" type="*osRtxThread_t" offset="8" info="Waiting threads list"/> |
Matthias Hertel | b73eaf3 | 2016-07-22 15:18:56 +0200 | [diff] [blame] | 286 | |
Robert Rostohar | 0667b18 | 2016-11-25 21:48:19 +0100 | [diff] [blame] | 287 | <!-- Inlined "osRtxMpInfo_t" structure --> |
| 288 | <member name="max_blocks" type="uint32_t" offset="12+0" info="Maximum number of blocks"/> |
| 289 | <member name="used_blocks" type="uint32_t" offset="12+4" info="Number of used blocks"/> |
| 290 | <member name="block_size" type="uint32_t" offset="12+8" info="Block size"/> |
| 291 | <member name="block_base" type="uint32_t" offset="12+12" info="Block memory base address (type is void *)"/> |
| 292 | <member name="block_lim" type="uint32_t" offset="12+16" info="Block memory limit address (type is void *)"/> |
| 293 | <member name="block_free" type="uint32_t" offset="12+20" info="First free block address (type is void *)"/> |
Matthias Hertel | b73eaf3 | 2016-07-22 15:18:56 +0200 | [diff] [blame] | 294 | |
Robert Rostohar | e6ffbc4 | 2016-09-14 10:35:53 +0200 | [diff] [blame] | 295 | <var name="cb_valid" type="uint32_t" info="Control Block validation status (valid=1, invalid=0)"/> |
| 296 | <var name="wl_idx" type="uint32_t" info="Memory Pool waiting list (PWL) index" /> |
| 297 | <var name="wl_cnt" type="uint32_t" info="Number of threads waiting for memory pool" /> |
Matthias Hertel | b73eaf3 | 2016-07-22 15:18:56 +0200 | [diff] [blame] | 298 | </typedef> |
| 299 | |
Robert Rostohar | e6ffbc4 | 2016-09-14 10:35:53 +0200 | [diff] [blame] | 300 | <!-- Message Control Block --> |
Robert Rostohar | 0667b18 | 2016-11-25 21:48:19 +0100 | [diff] [blame] | 301 | <typedef name="osRtxMessage_t" info="" size="12"> |
| 302 | <member name="id" type="uint8_t" offset="0" info="Object Identifier"/> |
| 303 | <member name="state" type="uint8_t" offset="1" info="Object State"/> |
| 304 | <member name="flags" type="uint8_t" offset="2" info="Object Flags"/> |
| 305 | <member name="priority" type="uint8_t" offset="3" info="Message priority"/> |
| 306 | <member name="prev" type="*osRtxMessage_t" offset="4" info="Pointer to previous message"/> |
| 307 | <member name="next" type="*osRtxMessage_t" offset="8" info="Pointer to next message"/> |
Robert Rostohar | b3c0636 | 2016-10-19 14:24:56 +0200 | [diff] [blame] | 308 | |
| 309 | <var name="addr" type="uint32_t" info="Message location address" /> |
Matthias Hertel | b73eaf3 | 2016-07-22 15:18:56 +0200 | [diff] [blame] | 310 | </typedef> |
| 311 | |
Robert Rostohar | e6ffbc4 | 2016-09-14 10:35:53 +0200 | [diff] [blame] | 312 | <!-- Message Queue Control Block --> |
Robert Rostohar | 0667b18 | 2016-11-25 21:48:19 +0100 | [diff] [blame] | 313 | <typedef name="osRtxMessageQueue_t" info="" size="52"> |
| 314 | <member name="id" type="uint8_t" offset="0" info="Object Identifier"/> |
| 315 | <member name="state" type="uint8_t" offset="1" info="Object State"/> |
| 316 | <member name="flags" type="uint8_t" offset="2" info="Object Flags"/> |
| 317 | <member name="reserved" type="uint8_t" offset="3" info=""/> |
| 318 | <member name="name" type="uint32_t" offset="4" info="Object name (type is *uint8_t)"/> |
| 319 | <member name="thread_list" type="*osRtxThread_t" offset="8" info="Waiting threads list"/> |
Matthias Hertel | b73eaf3 | 2016-07-22 15:18:56 +0200 | [diff] [blame] | 320 | |
Robert Rostohar | 0667b18 | 2016-11-25 21:48:19 +0100 | [diff] [blame] | 321 | <!-- Inlined "osRtxMpInfo_t" structure --> |
| 322 | <member name="max_blocks" type="uint32_t" offset="12+0" info="Maximum number of blocks"/> |
| 323 | <member name="used_blocks" type="uint32_t" offset="12+4" info="Number of used blocks"/> |
| 324 | <member name="block_size" type="uint32_t" offset="12+8" info="Block size"/> |
| 325 | <member name="block_base" type="uint32_t" offset="12+12" info="Block memory base address (type is void *)"/> |
| 326 | <member name="block_lim" type="uint32_t" offset="12+16" info="Block memory limit address (type is void *)"/> |
| 327 | <member name="block_free" type="uint32_t" offset="12+20" info="First free block address (type is void *)"/> |
Matthias Hertel | b73eaf3 | 2016-07-22 15:18:56 +0200 | [diff] [blame] | 328 | |
Robert Rostohar | 0667b18 | 2016-11-25 21:48:19 +0100 | [diff] [blame] | 329 | <member name="msg_size" type="uint32_t" offset="36" info="Message size"/> |
| 330 | <member name="msg_count" type="uint32_t" offset="40" info="Number of queued messages"/> |
| 331 | <member name="msg_first" type="*osRtxMessage_t" offset="44" info="Pointer to first message"/> |
| 332 | <member name="msg_last" type="*osRtxMessage_t" offset="48" info="Pointer to last message"/> |
Matthias Hertel | b73eaf3 | 2016-07-22 15:18:56 +0200 | [diff] [blame] | 333 | |
Robert Rostohar | e6ffbc4 | 2016-09-14 10:35:53 +0200 | [diff] [blame] | 334 | <var name="cb_valid" type="uint32_t" info="Control Block validation status (valid=1, invalid=0)"/> |
| 335 | <var name="wl_idx" type="uint32_t" info="Waiting list index (QWL)" /> |
| 336 | <var name="wl_cnt" type="uint32_t" info="Number of threads waiting" /> |
Robert Rostohar | b3c0636 | 2016-10-19 14:24:56 +0200 | [diff] [blame] | 337 | <var name="ml_idx" type="uint32_t" info="Queue message list index (QML)" /> |
Vladimir Umek | 4e75ce6 | 2018-06-12 08:03:37 +0200 | [diff] [blame] | 338 | <var name="ml_cnt" type="uint32_t" info="Number of enqueued messages" /> |
Matthias Hertel | b73eaf3 | 2016-07-22 15:18:56 +0200 | [diff] [blame] | 339 | </typedef> |
| 340 | |
Robert Rostohar | e6ffbc4 | 2016-09-14 10:35:53 +0200 | [diff] [blame] | 341 | <!-- OS Runtime Information structure --> |
Robert Rostohar | dcfd432 | 2017-06-09 13:11:57 +0200 | [diff] [blame] | 342 | <typedef name="osRtxInfo_t" info="OS Runtime Information" size="164"> |
Robert Rostohar | 0667b18 | 2016-11-25 21:48:19 +0100 | [diff] [blame] | 343 | <member name="os_id" type="uint32_t" offset="0" info="OS Identification (type is *uint8_t)"/> |
| 344 | <member name="version" type="uint32_t" offset="4" info="OS Version"/> |
| 345 | <member name="kernel_state" type="uint8_t" offset="8" info="Kernel state"> |
Matthias Hertel | b73eaf3 | 2016-07-22 15:18:56 +0200 | [diff] [blame] | 346 | <enum name="osKernelInactive" value="0" info="Inactive"/> |
| 347 | <enum name="osKernelReady" value="1" info="Ready"/> |
| 348 | <enum name="osKernelRunning" value="2" info="Running"/> |
| 349 | <enum name="osKernelLocked" value="3" info="Locked"/> |
| 350 | <enum name="osKernelSuspended" value="4" info="Suspended"/> |
| 351 | <enum name="osKernelError" value="5" info="Error"/> |
| 352 | </member> |
Robert Rostohar | 0667b18 | 2016-11-25 21:48:19 +0100 | [diff] [blame] | 353 | <member name="kernel_blocked" type="uint8_t" offset="9" info="Kernel blocked"/> |
Robert Rostohar | dcfd432 | 2017-06-09 13:11:57 +0200 | [diff] [blame] | 354 | <member name="kernel_pendSV" type="uint8_t" offset="10" info="Kernel pending SV"/> |
| 355 | <member name="kernel_tick" type="uint32_t" offset="12" info="Kernel tick counter"/> |
| 356 | <member name="tick_irqn" type="int32_t" offset="16" info="Tick timer IRQ number"/> |
| 357 | <member name="thread_run_curr" type="*osRtxThread_t" offset="20" info="Current running thread"/> |
| 358 | <member name="thread_run_next" type="*osRtxThread_t" offset="24" info="Next thread to run"/> |
Matthias Hertel | b73eaf3 | 2016-07-22 15:18:56 +0200 | [diff] [blame] | 359 | |
Robert Rostohar | dcfd432 | 2017-06-09 13:11:57 +0200 | [diff] [blame] | 360 | <!-- Inlined "osRtxObject_t" structure at offset: 28 --> |
| 361 | <member name="thread_ready_id" type="uint8_t" offset="28+0" info="Object Identifier" /> |
| 362 | <member name="thread_ready_state" type="uint8_t" offset="28+1" info="Object State" /> |
| 363 | <member name="thread_ready_flags" type="uint8_t" offset="28+2" info="Object Flags" /> |
| 364 | <member name="thread_ready_rsvd" type="uint8_t" offset="28+3" info="Reserved" /> |
| 365 | <member name="thread_ready_name" type="uint32_t" offset="28+4" info="Object Name (type is *uint8_t)" /> |
| 366 | <member name="thread_ready_thread_list" type="*osRtxThread_t" offset="28+8" info="Threads List" /> |
Matthias Hertel | b73eaf3 | 2016-07-22 15:18:56 +0200 | [diff] [blame] | 367 | |
Robert Rostohar | dcfd432 | 2017-06-09 13:11:57 +0200 | [diff] [blame] | 368 | <member name="thread_idle" type="*osRtxThread_t" offset="40" info="Idle thread"/> |
| 369 | <member name="thread_delay_list" type="*osRtxThread_t" offset="44" info="Delay list"/> |
| 370 | <member name="thread_wait_list" type="*osRtxThread_t" offset="48" info="Wait list (no timeout)"/> |
| 371 | <member name="thread_terminate_list" type="*osRtxThread_t" offset="52" info="Terminate list"/> |
Matthias Hertel | b73eaf3 | 2016-07-22 15:18:56 +0200 | [diff] [blame] | 372 | |
Robert Rostohar | dcfd432 | 2017-06-09 13:11:57 +0200 | [diff] [blame] | 373 | <member name="thread_robin_thread" type="*osRtxThread_t" offset="56" info="Round Robin thread"/> |
| 374 | <member name="thread_robin_tick" type="uint32_t" offset="60" info="Round Robin time tick"/> |
| 375 | <member name="thread_timeout" type="uint32_t" offset="64" info="Round Robin timeout"/> |
Matthias Hertel | b73eaf3 | 2016-07-22 15:18:56 +0200 | [diff] [blame] | 376 | |
Robert Rostohar | dcfd432 | 2017-06-09 13:11:57 +0200 | [diff] [blame] | 377 | <member name="timer_list" type="*osRtxTimer_t" offset="68" info="Active timer list"/> |
| 378 | <member name="timer_thread" type="*osRtxThread_t" offset="72" info="Timer thread"/> |
| 379 | <member name="timer_mq" type="*osRtxMessageQueue_t" offset="76" info="Timer message queue"/> |
| 380 | <member name="timer_tick" type="uint32_t" offset="80" info="Timer tick function (type is func *)"/> |
Matthias Hertel | b73eaf3 | 2016-07-22 15:18:56 +0200 | [diff] [blame] | 381 | |
Robert Rostohar | dcfd432 | 2017-06-09 13:11:57 +0200 | [diff] [blame] | 382 | <member name="isr_queue_max" type="uint16_t" offset="84" info="Maximum items"/> |
| 383 | <member name="isr_queue_cnt" type="uint16_t" offset="86" info="Item count"/> |
| 384 | <member name="isr_queue_in" type="uint16_t" offset="88" info="Incoming item index"/> |
| 385 | <member name="isr_queue_out" type="uint16_t" offset="90" info="Outgoing item index"/> |
| 386 | <member name="isr_queue_data" type="uint32_t" offset="92" info="Queue data (type is void **)"/> |
Matthias Hertel | b73eaf3 | 2016-07-22 15:18:56 +0200 | [diff] [blame] | 387 | |
Robert Rostohar | dcfd432 | 2017-06-09 13:11:57 +0200 | [diff] [blame] | 388 | <member name="post_process_thread" type="uint32_t" offset="96" info="Thread post processing function (type is func *)"/> |
| 389 | <member name="post_process_event_flags" type="uint32_t" offset="100" info="Event flags post processing function (type is func *)"/> |
| 390 | <member name="post_process_semaphore" type="uint32_t" offset="104" info="Semaphore post processing function (type is func *)"/> |
| 391 | <member name="post_process_memory_pool" type="uint32_t" offset="108" info="Memory pool post processing function (type is func *)"/> |
| 392 | <member name="post_process_message_queue" type="uint32_t" offset="112" info="Message queue post processing function (type is func *)"/> |
Matthias Hertel | b73eaf3 | 2016-07-22 15:18:56 +0200 | [diff] [blame] | 393 | |
Robert Rostohar | dcfd432 | 2017-06-09 13:11:57 +0200 | [diff] [blame] | 394 | <member name="mem_stack" type="uint32_t" offset="116" info="Stack memory (type is void *)"/> |
| 395 | <member name="mem_mp_data" type="uint32_t" offset="120" info="Memory pool data memory (type is void *)"/> |
| 396 | <member name="mem_mq_data" type="uint32_t" offset="124" info="Message queue Data memory (type is void *)"/> |
| 397 | <member name="mem_common" type="uint32_t" offset="128" info="Common memory address (type is void *)"/> |
Matthias Hertel | b73eaf3 | 2016-07-22 15:18:56 +0200 | [diff] [blame] | 398 | |
Robert Rostohar | dcfd432 | 2017-06-09 13:11:57 +0200 | [diff] [blame] | 399 | <member name="mpi_stack" type="*osRtxMpInfo_t" offset="132" info="Stack for threads"/> |
| 400 | <member name="mpi_thread" type="*osRtxMpInfo_t" offset="136" info="Thread control blocks"/> |
| 401 | <member name="mpi_timer" type="*osRtxMpInfo_t" offset="140" info="Timer control blocks"/> |
| 402 | <member name="mpi_event_flags" type="*osRtxMpInfo_t" offset="144" info="Event flags control blocks"/> |
| 403 | <member name="mpi_mutex" type="*osRtxMpInfo_t" offset="148" info="Mutex control blocks"/> |
| 404 | <member name="mpi_semaphore" type="*osRtxMpInfo_t" offset="152" info="Semaphore control blocks"/> |
| 405 | <member name="mpi_memory_pool" type="*osRtxMpInfo_t" offset="156" info="Memory pool control blocks"/> |
| 406 | <member name="mpi_message_queue" type="*osRtxMpInfo_t" offset="160" info="Message queue control blocks"/> |
Matthias Hertel | b73eaf3 | 2016-07-22 15:18:56 +0200 | [diff] [blame] | 407 | </typedef> |
| 408 | |
Vladimir Umek | ad63173 | 2018-01-15 07:38:49 +0100 | [diff] [blame] | 409 | <!-- OS Runtime Object Memory Usage structure --> |
| 410 | <typedef name="osRtxObjectMemUsage_t" info="OS Runtime Object Memory Usage" size="12"> |
| 411 | <member name="cnt_alloc" type="uint32_t" offset="0" info="Counter for alloc"/> |
| 412 | <member name="cnt_free" type="uint32_t" offset="4" info="Counter for free"/> |
| 413 | <member name="max_used" type="uint32_t" offset="8" info="Maximum used"/> |
| 414 | </typedef> |
| 415 | |
Robert Rostohar | e6ffbc4 | 2016-09-14 10:35:53 +0200 | [diff] [blame] | 416 | <!-- OS Configuration structure --> |
Vladimir Umek | 31da064 | 2017-05-11 07:23:08 +0200 | [diff] [blame] | 417 | <typedef name="osRtxConfig_t" const="1" info="OS Configuration Structure" size="104"> |
Matthias Hertel | b73eaf3 | 2016-07-22 15:18:56 +0200 | [diff] [blame] | 418 | <member name="flags" type="uint32_t" offset="0" info="OS configuration flags"/> |
Robert Rostohar | b3c0636 | 2016-10-19 14:24:56 +0200 | [diff] [blame] | 419 | <member name="tick_freq" type="uint32_t" offset="4" info="Kernel tick frequency"/> |
Robert Rostohar | 4b6a249 | 2016-11-09 13:34:23 +0100 | [diff] [blame] | 420 | |
Vladimir Umek | c767db3 | 2019-02-14 10:45:02 +0100 | [diff] [blame] | 421 | <member name="robin_timeout" type="uint32_t" offset="8" info="Round Robin timeout tick"/> |
Vladimir Umek | 97c5696 | 2017-04-03 13:10:55 +0200 | [diff] [blame] | 422 | <member name="isr_queue_data" type="uint32_t" offset="12" info="ISR post processing queue (type is void **)"/> |
Martin Günther | 7f62de8 | 2017-03-03 11:02:31 +0100 | [diff] [blame] | 423 | <member name="isr_queue_max" type="uint16_t" offset="16" info="Maximum data"/> |
| 424 | <member name="isr_queue_padding" type="uint16_t" offset="18" info="Padding bytes"/> |
Matthias Hertel | b73eaf3 | 2016-07-22 15:18:56 +0200 | [diff] [blame] | 425 | |
Robert Rostohar | b3c0636 | 2016-10-19 14:24:56 +0200 | [diff] [blame] | 426 | <member name="mem_stack_addr" type="uint32_t" offset="20" info="Stack memory address"/> |
| 427 | <member name="mem_stack_size" type="uint32_t" offset="24" info="Stack memory size"/> |
| 428 | <member name="mem_mp_data_addr" type="uint32_t" offset="28" info="Memory pool data memory address"/> |
| 429 | <member name="mem_mp_data_size" type="uint32_t" offset="32" info="Memory pool data memory size"/> |
| 430 | <member name="mem_mq_data_addr" type="uint32_t" offset="36" info="Message queue data memory address"/> |
| 431 | <member name="mem_mq_data_size" type="uint32_t" offset="40" info="Message queue data memory size"/> |
| 432 | <member name="mem_common_addr" type="uint32_t" offset="44" info="Common memory address"/> |
| 433 | <member name="mem_common_size" type="uint32_t" offset="48" info="Common memory size"/> |
Matthias Hertel | b73eaf3 | 2016-07-22 15:18:56 +0200 | [diff] [blame] | 434 | |
Robert Rostohar | 0667b18 | 2016-11-25 21:48:19 +0100 | [diff] [blame] | 435 | <member name="mpi_stack" type="*osRtxMpInfo_t" offset="52" info="Stack for threads"/> |
| 436 | <member name="mpi_thread" type="*osRtxMpInfo_t" offset="56" info="Thread control blocks"/> |
| 437 | <member name="mpi_timer" type="*osRtxMpInfo_t" offset="60" info="Timer control blocks"/> |
| 438 | <member name="mpi_event_flags" type="*osRtxMpInfo_t" offset="64" info="Event flags control blocks"/> |
| 439 | <member name="mpi_mutex" type="*osRtxMpInfo_t" offset="68" info="Mutex control blocks"/> |
| 440 | <member name="mpi_semaphore" type="*osRtxMpInfo_t" offset="72" info="Semaphore control blocks"/> |
| 441 | <member name="mpi_memory_pool" type="*osRtxMpInfo_t" offset="76" info="Memory pool control blocks"/> |
| 442 | <member name="mpi_message_queue" type="*osRtxMpInfo_t" offset="80" info="Message queue control blocks"/> |
Matthias Hertel | b73eaf3 | 2016-07-22 15:18:56 +0200 | [diff] [blame] | 443 | |
Robert Rostohar | b3c0636 | 2016-10-19 14:24:56 +0200 | [diff] [blame] | 444 | <member name="thread_stack_size" type="uint32_t" offset="84" info="Default thread stack size"/> |
Vladimir Umek | 97c5696 | 2017-04-03 13:10:55 +0200 | [diff] [blame] | 445 | <member name="idle_thread_attr" type="uint32_t" offset="88" info="Idle thread attributes (type is osThreadAttr_s *)"/> |
| 446 | <member name="timer_thread_attr" type="uint32_t" offset="92" info="Timer thread attributes (type is osThreadAttr_s *)"/> |
| 447 | <member name="timer_mq_attr" type="uint32_t" offset="96" info="Timer message queue attributes (type is osMessageQueueAttr_s *)"/> |
Robert Rostohar | b3c0636 | 2016-10-19 14:24:56 +0200 | [diff] [blame] | 448 | <member name="timer_mq_mcnt" type="uint32_t" offset="100" info="Timer message queue maximum messages"/> |
Matthias Hertel | b73eaf3 | 2016-07-22 15:18:56 +0200 | [diff] [blame] | 449 | </typedef> |
| 450 | |
| 451 | <!-- Memory Pool Header --> |
| 452 | <typedef name="mem_head_t" info="Memory Pool Header Structure" size="8"> |
| 453 | <member name="size" type="uint32_t" offset="0" info="Memory pool size"/> |
| 454 | <member name="used" type="uint32_t" offset="4" info="Size of used memory"/> |
Vladimir Umek | ad63173 | 2018-01-15 07:38:49 +0100 | [diff] [blame] | 455 | |
| 456 | <var name="max_used" type="uint32_t" info="Maximum size of used memory" /> |
Matthias Hertel | b73eaf3 | 2016-07-22 15:18:56 +0200 | [diff] [blame] | 457 | </typedef> |
| 458 | |
| 459 | <!-- Memory Block Header + Object Header --> |
| 460 | <typedef name="mem_block_t" info="Memory Block Header Structure" size="9"> |
| 461 | <member name="next" type="*mem_block_t" offset="0" info="Next memory block"/> |
| 462 | <member name="len" type="uint32_t" offset="4" info="Memory block size"/> |
| 463 | <member name="id" type="uint8_t" offset="8" info="Object Identifier"/> |
| 464 | </typedef> |
| 465 | |
Robert Rostohar | 0667b18 | 2016-11-25 21:48:19 +0100 | [diff] [blame] | 466 | <!-- Helper typedefs --> |
Robert Rostohar | a6abe96 | 2016-11-29 15:57:42 +0100 | [diff] [blame] | 467 | <typedef name="rtx_sections_t" info="RTX Control Block Sections Info Structure" size="56"> |
| 468 | <member name="thread_cb_start" type="uint32_t" offset="0" info="Thread control block section start"/> |
| 469 | <member name="thread_cb_end" type="uint32_t" offset="4" info="Thread control block section end"/> |
| 470 | <member name="timer_cb_start" type="uint32_t" offset="8" info="Timer control block section start"/> |
| 471 | <member name="timer_cb_end" type="uint32_t" offset="12" info="Timer control block section end"/> |
| 472 | <member name="evflags_cb_start" type="uint32_t" offset="16" info="Event flags control block section start"/> |
| 473 | <member name="evflags_cb_end" type="uint32_t" offset="20" info="Event flags control block section end"/> |
| 474 | <member name="mutex_cb_start" type="uint32_t" offset="24" info="Mutex control block section start"/> |
| 475 | <member name="mutex_cb_end" type="uint32_t" offset="28" info="Mutex control block section end"/> |
| 476 | <member name="semaphore_cb_start" type="uint32_t" offset="32" info="Semaphore control block section start"/> |
| 477 | <member name="semaphore_cb_end" type="uint32_t" offset="36" info="Semaphore control block section end"/> |
| 478 | <member name="mempool_cb_start" type="uint32_t" offset="40" info="Memory pool control block section start"/> |
| 479 | <member name="mempool_cb_end" type="uint32_t" offset="44" info="Memory pool control block section end"/> |
| 480 | <member name="msgqueue_cb_start" type="uint32_t" offset="48" info="Message queue control block section start"/> |
| 481 | <member name="msgqueue_cb_end" type="uint32_t" offset="52" info="Message queue control block section end"/> |
| 482 | </typedef> |
| 483 | |
Robert Rostohar | 0667b18 | 2016-11-25 21:48:19 +0100 | [diff] [blame] | 484 | <typedef name="rtx_t" info="Various RTX Definitions" size="8"> |
| 485 | <member name="status" type="int32_t" offset="0" info="RTX5 operations status"> |
| 486 | <enum name="osOK" value="0" info="Operation completed successfully"/> |
| 487 | <enum name="osError" value="-1" info="Unspecified RTOS error: run-time error but no other error message fits."/> |
| 488 | <enum name="osErrorTimeout" value="-2" info="Operation not completed within the timeout period."/> |
| 489 | <enum name="osErrorResource" value="-3" info="Resource not available"/> |
| 490 | <enum name="osErrorParameter" value="-4" info="Parameter error"/> |
| 491 | <enum name="osErrorNoMemory" value="-5" info="System is out of memory: it was impossible to allocate or reserve memory for the operation"/> |
| 492 | <enum name="osErrorISR" value="-6" info="Not allowed in ISR context: the function cannot be called from interrupt service routines"/> |
| 493 | <enum name="osRtxErrorKernelNotReady" value="-7" info="RTOS Kernel scheduler is not ready"/> |
| 494 | <enum name="osRtxErrorKernelNotRunning" value="-8" info="RTOS Kernel scheduler is not running"/> |
| 495 | <enum name="osRtxErrorInvalidControlBlock" value="-9" info="Object control block is not properly aligned or has an invalid size"/> |
| 496 | <enum name="osRtxErrorInvalidDataMemory" value="-10" info="Data memory is not is not properly aligned or has an invalid size"/> |
| 497 | <enum name="osRtxErrorInvalidThreadStack" value="-11" info="Thread stack is invalid"/> |
| 498 | <enum name="osRtxErrorInvalidPriority" value="-12" info="Thread priority is invalid"/> |
| 499 | <enum name="osRtxErrorThreadNotJoinable" value="-13" info="Thread is not joinable"/> |
| 500 | <enum name="osRtxErrorMutexNotOwned" value="-14" info="Mutex is not owned by the current running thread"/> |
| 501 | <enum name="osRtxErrorMutexNotLocked" value="-15" info="Mutex is not locked"/> |
| 502 | <enum name="osRtxErrorMutexLockLimit" value="-16" info="Maximum number of recursive mutex locks reached"/> |
| 503 | <enum name="osRtxErrorSemaphoreCountLimit" value="-17" info="Semaphore count limit reached"/> |
| 504 | <enum name="osRtxErrorTZ_InitContext_S" value="-18" info=""/> |
| 505 | <enum name="osRtxErrorTZ_AllocContext_S" value="-19" info=""/> |
| 506 | <enum name="osRtxErrorTZ_FreeContext_S" value="-20" info=""/> |
| 507 | <enum name="osRtxErrorTZ_LoadContext_S" value="-21" info=""/> |
| 508 | <enum name="osRtxErrorTZ_SaveContext_S" value="-22" info=""/> |
| 509 | </member> |
Robert Rostohar | 4d9f70d | 2016-12-12 13:03:38 +0100 | [diff] [blame] | 510 | </typedef> |
Robert Rostohar | 0667b18 | 2016-11-25 21:48:19 +0100 | [diff] [blame] | 511 | |
Robert Rostohar | 4d9f70d | 2016-12-12 13:03:38 +0100 | [diff] [blame] | 512 | <typedef name="rtx_th_state" info="RTX5 thread state" size="4"> |
| 513 | <member name="id" type="int32_t" offset="0" info="RTX5 thread state ID"> |
Robert Rostohar | 0667b18 | 2016-11-25 21:48:19 +0100 | [diff] [blame] | 514 | <enum name="os_ThreadInactive" value="0x00" info=""/> |
| 515 | <enum name="os_ThreadReady" value="0x01" info=""/> |
| 516 | <enum name="os_ThreadRunning" value="0x02" info=""/> |
| 517 | <enum name="os_ThreadBlocked" value="0x03" info=""/> |
| 518 | <enum name="os_ThreadTerminated" value="0x04" info=""/> |
| 519 | <enum name="os_ThreadWaitingDelay" value="0x13" info=""/> |
| 520 | <enum name="os_ThreadWaitingJoin" value="0x23" info=""/> |
| 521 | <enum name="os_ThreadWaitingThreadFlags" value="0x33" info=""/> |
| 522 | <enum name="os_ThreadWaitingEventFlags" value="0x43" info=""/> |
| 523 | <enum name="os_ThreadWaitingMutex" value="0x53" info=""/> |
| 524 | <enum name="os_ThreadWaitingSemaphore" value="0x63" info=""/> |
| 525 | <enum name="os_ThreadWaitingMemoryPool" value="0x73" info=""/> |
| 526 | <enum name="os_ThreadWaitingMessageGet" value="0x83" info=""/> |
| 527 | <enum name="os_ThreadWaitingMessagePut" value="0x93" info=""/> |
| 528 | </member> |
| 529 | </typedef> |
| 530 | |
Robert Rostohar | 4d9f70d | 2016-12-12 13:03:38 +0100 | [diff] [blame] | 531 | <typedef name="rtx_th_priority" info="RTX5 thread priority" size="4"> |
| 532 | <member name="id" type="int32_t" offset="0" info="RTX5 thread priority ID"> |
| 533 | <enum name="osPriorityNone" value="0" info=""/> |
| 534 | <enum name="osPriorityIdle" value="1" info=""/> |
| 535 | <enum name="osPriorityLow" value="8" info=""/> |
| 536 | <enum name="osPriorityLow1" value="9" info=""/> |
| 537 | <enum name="osPriorityLow2" value="10" info=""/> |
| 538 | <enum name="osPriorityLow3" value="11" info=""/> |
| 539 | <enum name="osPriorityLow4" value="12" info=""/> |
| 540 | <enum name="osPriorityLow5" value="13" info=""/> |
| 541 | <enum name="osPriorityLow6" value="14" info=""/> |
| 542 | <enum name="osPriorityLow7" value="15" info=""/> |
| 543 | <enum name="osPriorityBelowNormal" value="16" info=""/> |
| 544 | <enum name="osPriorityBelowNormal1" value="17" info=""/> |
| 545 | <enum name="osPriorityBelowNormal2" value="18" info=""/> |
| 546 | <enum name="osPriorityBelowNormal3" value="19" info=""/> |
| 547 | <enum name="osPriorityBelowNormal4" value="20" info=""/> |
| 548 | <enum name="osPriorityBelowNormal5" value="21" info=""/> |
| 549 | <enum name="osPriorityBelowNormal6" value="22" info=""/> |
| 550 | <enum name="osPriorityBelowNormal7" value="23" info=""/> |
| 551 | <enum name="osPriorityNormal" value="24" info=""/> |
| 552 | <enum name="osPriorityNormal1" value="25" info=""/> |
| 553 | <enum name="osPriorityNormal2" value="26" info=""/> |
| 554 | <enum name="osPriorityNormal3" value="27" info=""/> |
| 555 | <enum name="osPriorityNormal4" value="28" info=""/> |
| 556 | <enum name="osPriorityNormal5" value="29" info=""/> |
| 557 | <enum name="osPriorityNormal6" value="30" info=""/> |
| 558 | <enum name="osPriorityNormal7" value="31" info=""/> |
| 559 | <enum name="osPriorityAboveNormal" value="32" info=""/> |
| 560 | <enum name="osPriorityAboveNormal1" value="33" info=""/> |
| 561 | <enum name="osPriorityAboveNormal2" value="34" info=""/> |
| 562 | <enum name="osPriorityAboveNormal3" value="35" info=""/> |
| 563 | <enum name="osPriorityAboveNormal4" value="36" info=""/> |
| 564 | <enum name="osPriorityAboveNormal5" value="37" info=""/> |
| 565 | <enum name="osPriorityAboveNormal6" value="38" info=""/> |
| 566 | <enum name="osPriorityAboveNormal7" value="39" info=""/> |
| 567 | <enum name="osPriorityHigh" value="40" info=""/> |
| 568 | <enum name="osPriorityHigh1" value="41" info=""/> |
| 569 | <enum name="osPriorityHigh2" value="42" info=""/> |
| 570 | <enum name="osPriorityHigh3" value="43" info=""/> |
| 571 | <enum name="osPriorityHigh4" value="44" info=""/> |
| 572 | <enum name="osPriorityHigh5" value="45" info=""/> |
| 573 | <enum name="osPriorityHigh6" value="46" info=""/> |
| 574 | <enum name="osPriorityHigh7" value="47" info=""/> |
| 575 | <enum name="osPriorityRealtime" value="48" info=""/> |
| 576 | <enum name="osPriorityRealtime1" value="49" info=""/> |
| 577 | <enum name="osPriorityRealtime2" value="50" info=""/> |
| 578 | <enum name="osPriorityRealtime3" value="51" info=""/> |
| 579 | <enum name="osPriorityRealtime4" value="52" info=""/> |
| 580 | <enum name="osPriorityRealtime5" value="53" info=""/> |
| 581 | <enum name="osPriorityRealtime6" value="54" info=""/> |
| 582 | <enum name="osPriorityRealtime7" value="55" info=""/> |
| 583 | <enum name="osPriorityISR" value="56" info=""/> |
| 584 | <enum name="osPriorityError" value="-1" info=""/> |
| 585 | </member> |
| 586 | </typedef> |
| 587 | |
Vladimir Umek | 300d01d | 2018-06-27 10:43:23 +0200 | [diff] [blame] | 588 | <typedef name="rtx_kernel_state" info="RTX5 kernel state" size="1"> |
| 589 | <member name="id" type="uint8_t" offset="0" info="Kernel state"> |
| 590 | <enum name="osKernelInactive" value="0" info="Inactive"/> |
| 591 | <enum name="osKernelReady" value="1" info="Ready"/> |
| 592 | <enum name="osKernelRunning" value="2" info="Running"/> |
| 593 | <enum name="osKernelLocked" value="3" info="Locked"/> |
| 594 | <enum name="osKernelSuspended" value="4" info="Suspended"/> |
| 595 | <enum name="osKernelError" value="5" info="Error"/> |
| 596 | </member> |
| 597 | </typedef> |
| 598 | |
| 599 | <typedef name="rtx_timer_type" info="RTX5 timer type" size="1"> |
| 600 | <member name="id" type="uint8_t" offset="0" info="Timer Type"> |
| 601 | <enum name="osTimerOnce" value="0" info="One-shot timer"/> |
| 602 | <enum name="osTimerPeriodic" value="1" info="Periodic timer"/> |
| 603 | </member> |
| 604 | </typedef> |
| 605 | |
Matthias Hertel | b73eaf3 | 2016-07-22 15:18:56 +0200 | [diff] [blame] | 606 | </typedefs> |
| 607 | |
| 608 | <objects> |
| 609 | <object name="RTX RTOS Object"> |
Vladimir Umek | 4e75ce6 | 2018-06-12 08:03:37 +0200 | [diff] [blame] | 610 | <var name="i" type="uint32_t" value="0" /> |
| 611 | <var name="j" type="uint32_t" value="0" /> |
| 612 | <var name="k" type="uint32_t" value="0" /> |
| 613 | <var name="n" type="uint32_t" value="0" /> |
| 614 | <var name="sp" type="uint32_t" value="0" /> |
| 615 | <var name="addr" type="uint32_t" value="0" /> |
Vladimir Umek | 09e3221 | 2018-02-15 09:34:49 +0100 | [diff] [blame] | 616 | <var name="ipsr" type="uint32_t" value="0" /> |
| 617 | <var name="psp" type="uint32_t" value="0" /> |
| 618 | <var name="v8m_ns" type="uint32_t" value="0" /> |
Matthias Hertel | b73eaf3 | 2016-07-22 15:18:56 +0200 | [diff] [blame] | 619 | |
Robert Rostohar | a6abe96 | 2016-11-29 15:57:42 +0100 | [diff] [blame] | 620 | <var name="TCB_Rd" type="uint32_t" value="0" /> |
| 621 | <var name="CCB_Rd" type="uint32_t" value="0" /> |
| 622 | <var name="SCB_Rd" type="uint32_t" value="0" /> |
| 623 | <var name="MCB_Rd" type="uint32_t" value="0" /> |
| 624 | <var name="ECB_Rd" type="uint32_t" value="0" /> |
| 625 | <var name="PCB_Rd" type="uint32_t" value="0" /> |
| 626 | <var name="QCB_Rd" type="uint32_t" value="0" /> |
| 627 | |
Robert Rostohar | 4b6a249 | 2016-11-09 13:34:23 +0100 | [diff] [blame] | 628 | <var name="RTX_En" type="uint8_t" value="0" /> |
Matthias Hertel | b73eaf3 | 2016-07-22 15:18:56 +0200 | [diff] [blame] | 629 | <var name="TCB_En" type="uint8_t" value="0" /> |
| 630 | <var name="CCB_En" type="uint8_t" value="0" /> |
| 631 | <var name="SCB_En" type="uint8_t" value="0" /> |
| 632 | <var name="MCB_En" type="uint8_t" value="0" /> |
| 633 | <var name="ECB_En" type="uint8_t" value="0" /> |
| 634 | <var name="PCB_En" type="uint8_t" value="0" /> |
| 635 | <var name="QCB_En" type="uint8_t" value="0" /> |
Vladimir Umek | ad63173 | 2018-01-15 07:38:49 +0100 | [diff] [blame] | 636 | <var name="MUC_En" type="uint8_t" value="0" /> |
Robert Rostohar | 4b6a249 | 2016-11-09 13:34:23 +0100 | [diff] [blame] | 637 | |
Robert Rostohar | b3c0636 | 2016-10-19 14:24:56 +0200 | [diff] [blame] | 638 | <var name="StaticMp_En" type="uint8_t" value="0" /> |
Matthias Hertel | b73eaf3 | 2016-07-22 15:18:56 +0200 | [diff] [blame] | 639 | |
Vladimir Umek | ad63173 | 2018-01-15 07:38:49 +0100 | [diff] [blame] | 640 | <var name="MUC_Thread_En" type="uint8_t" value="0" /> |
| 641 | <var name="MUC_Timer_En" type="uint8_t" value="0" /> |
| 642 | <var name="MUC_EventFlags_En" type="uint8_t" value="0" /> |
| 643 | <var name="MUC_Mutex_En" type="uint8_t" value="0" /> |
| 644 | <var name="MUC_Semaphore_En" type="uint8_t" value="0" /> |
| 645 | <var name="MUC_MemPool_En" type="uint8_t" value="0" /> |
| 646 | <var name="MUC_MsgQueue_En" type="uint8_t" value="0" /> |
| 647 | |
Robert Rostohar | bc04f0e | 2016-12-13 10:33:34 +0100 | [diff] [blame] | 648 | <var name="V_Major" type="uint32_t" value="0"/> |
| 649 | <var name="V_Minor" type="uint32_t" value="0"/> |
| 650 | <var name="V_Patch" type="uint32_t" value="0"/> |
| 651 | |
Vladimir Umek | 09e3221 | 2018-02-15 09:34:49 +0100 | [diff] [blame] | 652 | <!-- Check TrustZone symbol existence --> |
| 653 | <calc> |
| 654 | v8m_ns = __Symbol_exists("TZ_InitContextSystem_S"); |
| 655 | </calc> |
| 656 | |
Matthias Hertel | b73eaf3 | 2016-07-22 15:18:56 +0200 | [diff] [blame] | 657 | <!-- Read main OS information and configuration structures --> |
Vladimir Umek | c767db3 | 2019-02-14 10:45:02 +0100 | [diff] [blame] | 658 | <read name="os_Info" type="osRtxInfo_t" symbol="osRtxInfo"/> |
| 659 | <read name="os_Config" type="osRtxConfig_t" symbol="osRtxConfig" const="1"/> |
Matthias Hertel | b73eaf3 | 2016-07-22 15:18:56 +0200 | [diff] [blame] | 660 | |
Robert Rostohar | 4b6a249 | 2016-11-09 13:34:23 +0100 | [diff] [blame] | 661 | <calc cond="((os_Info.version / 10000000) == 5) && (os_Info.kernel_state > 0) && (os_Info.kernel_state < 5)"> |
| 662 | RTX_En = 1; |
| 663 | </calc> |
Vladimir Umek | ad63173 | 2018-01-15 07:38:49 +0100 | [diff] [blame] | 664 | |
Robert Rostohar | bc04f0e | 2016-12-13 10:33:34 +0100 | [diff] [blame] | 665 | <calc cond="RTX_En"> |
| 666 | V_Major = os_Info.version / 10000000; |
| 667 | V_Minor = (os_Info.version / 10000) % 1000; |
| 668 | V_Patch = os_Info.version % 10000; |
| 669 | </calc> |
Robert Rostohar | 4b6a249 | 2016-11-09 13:34:23 +0100 | [diff] [blame] | 670 | |
| 671 | <calc cond="RTX_En && (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 Rostohar | b3c0636 | 2016-10-19 14:24:56 +0200 | [diff] [blame] | 672 | StaticMp_En = 1; |
| 673 | </calc> |
Robert Rostohar | 4b6a249 | 2016-11-09 13:34:23 +0100 | [diff] [blame] | 674 | |
Robert Rostohar | b3c0636 | 2016-10-19 14:24:56 +0200 | [diff] [blame] | 675 | <var name="stack_check" type="uint8_t" value="(os_Config.flags >> 1) & 1"/> |
| 676 | <var name="stack_wmark" type="uint8_t" value="(os_Config.flags >> 2) & 1"/> |
Matthias Hertel | b73eaf3 | 2016-07-22 15:18:56 +0200 | [diff] [blame] | 677 | |
| 678 | <!-- Read ISR FIFO queue --> |
Robert Rostohar | 4b6a249 | 2016-11-09 13:34:23 +0100 | [diff] [blame] | 679 | <read name="ISR_FIFO" cond="RTX_En" type="uint32_t" offset="os_Config.isr_queue_data" size="os_Config.isr_queue_max"/> |
Matthias Hertel | b73eaf3 | 2016-07-22 15:18:56 +0200 | [diff] [blame] | 680 | |
Robert Rostohar | a6abe96 | 2016-11-29 15:57:42 +0100 | [diff] [blame] | 681 | <!-- Read control block sections info structure --> |
Vladimir Umek | c767db3 | 2019-02-14 10:45:02 +0100 | [diff] [blame] | 682 | <read name="cb_Sections" cond="__Symbol_exists ("os_cb_sections")" type="rtx_sections_t" symbol="os_cb_sections" const="1"/>/> |
Robert Rostohar | a6abe96 | 2016-11-29 15:57:42 +0100 | [diff] [blame] | 683 | |
| 684 | <!-- Determine section sizes --> |
| 685 | <calc cond="RTX_En && __Symbol_exists ("os_cb_sections")"> |
| 686 | TCB_Rd = cb_Sections.thread_cb_end - cb_Sections.thread_cb_start; |
| 687 | CCB_Rd = cb_Sections.timer_cb_end - cb_Sections.timer_cb_start; |
| 688 | ECB_Rd = cb_Sections.evflags_cb_end - cb_Sections.evflags_cb_start; |
| 689 | MCB_Rd = cb_Sections.mutex_cb_end - cb_Sections.mutex_cb_start; |
| 690 | SCB_Rd = cb_Sections.semaphore_cb_end - cb_Sections.semaphore_cb_start; |
| 691 | PCB_Rd = cb_Sections.mempool_cb_end - cb_Sections.mempool_cb_start; |
| 692 | QCB_Rd = cb_Sections.msgqueue_cb_end - cb_Sections.msgqueue_cb_start; |
| 693 | </calc> |
| 694 | |
| 695 | <!-- Determine number of control blocks to read --> |
| 696 | <calc cond="TCB_Rd"> TCB_Rd /= 68; </calc> |
| 697 | <calc cond="CCB_Rd"> CCB_Rd /= 32; </calc> |
| 698 | <calc cond="ECB_Rd"> ECB_Rd /= 16; </calc> |
| 699 | <calc cond="MCB_Rd"> MCB_Rd /= 28; </calc> |
| 700 | <calc cond="SCB_Rd"> SCB_Rd /= 16; </calc> |
| 701 | <calc cond="PCB_Rd"> PCB_Rd /= 36; </calc> |
| 702 | <calc cond="QCB_Rd"> QCB_Rd /= 52; </calc> |
| 703 | |
| 704 | <!-- Read object control blocks using sections info --> |
| 705 | <readlist name="TCB" cond="TCB_Rd" type="osRtxThread_t" offset="cb_Sections.thread_cb_start" count="TCB_Rd"/> |
| 706 | <readlist name="CCB" cond="CCB_Rd" type="osRtxTimer_t" offset="cb_Sections.timer_cb_start" count="CCB_Rd"/> |
| 707 | <readlist name="ECB" cond="ECB_Rd" type="osRtxEventFlags_t" offset="cb_Sections.evflags_cb_start" count="ECB_Rd"/> |
| 708 | <readlist name="MCB" cond="MCB_Rd" type="osRtxMutex_t" offset="cb_Sections.mutex_cb_start" count="MCB_Rd"/> |
| 709 | <readlist name="PCB" cond="PCB_Rd" type="osRtxMemoryPool_t" offset="cb_Sections.mempool_cb_start" count="PCB_Rd"/> |
| 710 | <readlist name="SCB" cond="SCB_Rd" type="osRtxSemaphore_t" offset="cb_Sections.semaphore_cb_start" count="SCB_Rd"/> |
| 711 | <readlist name="QCB" cond="QCB_Rd" type="osRtxMessageQueue_t" offset="cb_Sections.msgqueue_cb_start" count="QCB_Rd"/> |
| 712 | |
| 713 | <!-- Read statically allocated control blocks --> |
Robert Rostohar | 4d9f70d | 2016-12-12 13:03:38 +0100 | [diff] [blame] | 714 | <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 Rostohar | a6abe96 | 2016-11-29 15:57:42 +0100 | [diff] [blame] | 715 | <readlist name="cfg_mp_thread" cond="os_Config.mpi_thread" type="osRtxMpInfo_t" offset="os_Config.mpi_thread" const="1" count="1" init="1"/> |
| 716 | <readlist name="cfg_mp_timer" cond="os_Config.mpi_timer" type="osRtxMpInfo_t" offset="os_Config.mpi_timer" const="1" count="1" init="1"/> |
| 717 | <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"/> |
| 718 | <readlist name="cfg_mp_mutex" cond="os_Config.mpi_mutex" type="osRtxMpInfo_t" offset="os_Config.mpi_mutex" const="1" count="1" init="1"/> |
| 719 | <readlist name="cfg_mp_semaphore" cond="os_Config.mpi_semaphore" type="osRtxMpInfo_t" offset="os_Config.mpi_semaphore" const="1" count="1" init="1"/> |
| 720 | <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"/> |
| 721 | <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"/> |
| 722 | |
Matthias Hertel | b73eaf3 | 2016-07-22 15:18:56 +0200 | [diff] [blame] | 723 | <!-- Read idle and timer thread control blocks --> |
Robert Rostohar | a6abe96 | 2016-11-29 15:57:42 +0100 | [diff] [blame] | 724 | <readlist name="TCB" cond="RTX_En && (TCB_Rd == 0) && os_Info.thread_idle" type="osRtxThread_t" offset="os_Info.thread_idle" count="1" /> |
| 725 | <readlist name="TCB" cond="RTX_En && (TCB_Rd == 0) && os_Info.timer_thread" type="osRtxThread_t" offset="os_Info.timer_thread" count="1" /> |
Matthias Hertel | b73eaf3 | 2016-07-22 15:18:56 +0200 | [diff] [blame] | 726 | |
| 727 | <!-- Read thread control blocks (MPI) --> |
Robert Rostohar | a6abe96 | 2016-11-29 15:57:42 +0100 | [diff] [blame] | 728 | <readlist name="mp_thread" cond="RTX_En && (TCB_Rd == 0) && os_Info.mpi_thread" type="osRtxMpInfo_t" offset="os_Info.mpi_thread" count="1" init="1"/> |
| 729 | <readlist name="TCB" cond="RTX_En && (TCB_Rd == 0) && os_Info.mpi_thread" type="osRtxThread_t" offset="mp_thread.block_base" count="mp_thread.max_blocks" /> |
Matthias Hertel | b73eaf3 | 2016-07-22 15:18:56 +0200 | [diff] [blame] | 730 | |
| 731 | <!-- Read timer control blocks (MPI) --> |
Robert Rostohar | a6abe96 | 2016-11-29 15:57:42 +0100 | [diff] [blame] | 732 | <readlist name="mp_timer" cond="RTX_En && (CCB_Rd == 0) && os_Info.mpi_timer" type="osRtxMpInfo_t" offset="os_Info.mpi_timer" count="1" init="1"/> |
| 733 | <readlist name="CCB" cond="RTX_En && (CCB_Rd == 0) && os_Info.mpi_timer" type="osRtxTimer_t" offset="mp_timer.block_base" count="mp_timer.max_blocks" /> |
Matthias Hertel | b73eaf3 | 2016-07-22 15:18:56 +0200 | [diff] [blame] | 734 | |
| 735 | <!-- Read event flags control blocks (MPI) --> |
Robert Rostohar | a6abe96 | 2016-11-29 15:57:42 +0100 | [diff] [blame] | 736 | <readlist name="mp_events" cond="RTX_En && (ECB_Rd == 0) && os_Info.mpi_event_flags" type="osRtxMpInfo_t" offset="os_Info.mpi_event_flags" count="1" init="1"/> |
| 737 | <readlist name="ECB" cond="RTX_En && (ECB_Rd == 0) && os_Info.mpi_event_flags" type="osRtxEventFlags_t" offset="mp_events.block_base" count="mp_events.max_blocks" /> |
Matthias Hertel | b73eaf3 | 2016-07-22 15:18:56 +0200 | [diff] [blame] | 738 | |
| 739 | <!-- Read mutex control blocks (MPI) --> |
Robert Rostohar | a6abe96 | 2016-11-29 15:57:42 +0100 | [diff] [blame] | 740 | <readlist name="mp_mutex" cond="RTX_En && (MCB_Rd == 0) && os_Info.mpi_mutex" type="osRtxMpInfo_t" offset="os_Info.mpi_mutex" count="1" init="1"/> |
| 741 | <readlist name="MCB" cond="RTX_En && (MCB_Rd == 0) && os_Info.mpi_mutex" type="osRtxMutex_t" offset="mp_mutex.block_base" count="mp_mutex.max_blocks" /> |
Matthias Hertel | b73eaf3 | 2016-07-22 15:18:56 +0200 | [diff] [blame] | 742 | |
| 743 | <!-- Read semaphore control blocks (MPI) --> |
Robert Rostohar | a6abe96 | 2016-11-29 15:57:42 +0100 | [diff] [blame] | 744 | <readlist name="mp_semaphore" cond="RTX_En && (SCB_Rd == 0) && os_Info.mpi_semaphore" type="osRtxMpInfo_t" offset="os_Info.mpi_semaphore" count="1" init="1"/> |
| 745 | <readlist name="SCB" cond="RTX_En && (SCB_Rd == 0) && os_Info.mpi_semaphore" type="osRtxSemaphore_t" offset="mp_semaphore.block_base" count="mp_semaphore.max_blocks" /> |
Matthias Hertel | b73eaf3 | 2016-07-22 15:18:56 +0200 | [diff] [blame] | 746 | |
| 747 | <!-- Read memory pool control blocks (MPI) --> |
Robert Rostohar | a6abe96 | 2016-11-29 15:57:42 +0100 | [diff] [blame] | 748 | <readlist name="mp_mpool" cond="RTX_En && (PCB_Rd == 0) && os_Info.mpi_memory_pool" type="osRtxMpInfo_t" offset="os_Info.mpi_memory_pool" count="1" init="1"/> |
| 749 | <readlist name="PCB" cond="RTX_En && (PCB_Rd == 0) && os_Info.mpi_memory_pool" type="osRtxMemoryPool_t" offset="mp_mpool.block_base" count="mp_mpool.max_blocks" /> |
Matthias Hertel | b73eaf3 | 2016-07-22 15:18:56 +0200 | [diff] [blame] | 750 | |
| 751 | <!-- Read message queue control blocks (MPI) --> |
Robert Rostohar | a6abe96 | 2016-11-29 15:57:42 +0100 | [diff] [blame] | 752 | <readlist name="mp_mqueue" cond="RTX_En && (QCB_Rd == 0) && os_Info.mpi_message_queue" type="osRtxMpInfo_t" offset="os_Info.mpi_message_queue" count="1" init="1"/> |
| 753 | <readlist name="QCB" cond="RTX_En && (QCB_Rd == 0) && os_Info.mpi_message_queue" type="osRtxMessageQueue_t" offset="mp_mqueue.block_base" count="mp_mqueue.max_blocks" /> |
Matthias Hertel | b73eaf3 | 2016-07-22 15:18:56 +0200 | [diff] [blame] | 754 | |
Vladimir Umek | ad63173 | 2018-01-15 07:38:49 +0100 | [diff] [blame] | 755 | <!-- Read stack memory header and block list (MEM) --> |
| 756 | <readlist name="mem_head_stack" cond="RTX_En && os_Config.mem_stack_addr" type="mem_head_t" offset="os_Config.mem_stack_addr" count="1"/> |
| 757 | <readlist name="mem_list_stack" cond="RTX_En && os_Config.mem_stack_addr" type="mem_block_t" offset="os_Config.mem_stack_addr + 8" next="next"/> |
Matthias Hertel | b73eaf3 | 2016-07-22 15:18:56 +0200 | [diff] [blame] | 758 | |
Vladimir Umek | ad63173 | 2018-01-15 07:38:49 +0100 | [diff] [blame] | 759 | <calc cond="RTX_En && os_Config.mem_stack_addr"> mem_head_stack.max_used = mem_list_stack[mem_list_stack._count-1].len; </calc> |
| 760 | |
| 761 | <!-- Read memory pool data memory header and block list (MEM) --> |
| 762 | <readlist name="mem_head_mp_data" cond="RTX_En && os_Config.mem_mp_data_addr" type="mem_head_t" offset="os_Config.mem_mp_data_addr" count="1"/> |
| 763 | <readlist name="mem_list_mp_data" cond="RTX_En && os_Config.mem_mp_data_addr" type="mem_block_t" offset="os_Config.mem_mp_data_addr + 8" next="next"/> |
| 764 | |
| 765 | <calc cond="RTX_En && os_Config.mem_mp_data_addr"> mem_head_mp_data.max_used = mem_list_mp_data[mem_list_mp_data._count-1].len; </calc> |
| 766 | |
| 767 | <!-- Read message queue data memory header and block list (MEM) --> |
| 768 | <readlist name="mem_head_mq_data" cond="RTX_En && os_Config.mem_mq_data_addr" type="mem_head_t" offset="os_Config.mem_mq_data_addr" count="1"/> |
| 769 | <readlist name="mem_list_mq_data" cond="RTX_En && os_Config.mem_mq_data_addr" type="mem_block_t" offset="os_Config.mem_mq_data_addr + 8" next="next"/> |
| 770 | |
| 771 | <calc cond="RTX_En && os_Config.mem_mq_data_addr"> mem_head_mq_data.max_used = mem_list_mq_data[mem_list_mq_data._count-1].len; </calc> |
| 772 | |
| 773 | <!-- Read common memory header and block list (MEM) --> |
| 774 | <readlist name="mem_head_com" cond="RTX_En && os_Config.mem_common_addr" type="mem_head_t" offset="os_Config.mem_common_addr" count="1"/> |
| 775 | <readlist name="mem_list_com" cond="RTX_En && os_Config.mem_common_addr" type="mem_block_t" offset="os_Config.mem_common_addr + 8" next="next"/> |
| 776 | |
| 777 | <calc cond="RTX_En && os_Config.mem_common_addr"> mem_head_com.max_used = mem_list_com[mem_list_com._count-1].len; </calc> |
| 778 | |
| 779 | <!-- Extract control blocks located in the common memory --> |
| 780 | <list cond="mem_list_com._count > 1" name="i" start="0" limit="mem_list_com._count-1"> |
Matthias Hertel | b73eaf3 | 2016-07-22 15:18:56 +0200 | [diff] [blame] | 781 | <calc> |
Vladimir Umek | ad63173 | 2018-01-15 07:38:49 +0100 | [diff] [blame] | 782 | addr = mem_list_com[i]._addr; |
Matthias Hertel | b73eaf3 | 2016-07-22 15:18:56 +0200 | [diff] [blame] | 783 | addr += 8; |
| 784 | </calc> |
| 785 | |
| 786 | <!-- Read Thread Control Block --> |
Robert Rostohar | 87c33cf | 2018-11-29 09:33:00 +0100 | [diff] [blame] | 787 | <readlist cond="(mem_list_com[i].len & 1) && (mem_list_com[i].id == 0xF1)" name="TCB" type="osRtxThread_t" offset="addr" count="1" /> |
Matthias Hertel | b73eaf3 | 2016-07-22 15:18:56 +0200 | [diff] [blame] | 788 | |
| 789 | <!-- Read Timer Control Block --> |
Robert Rostohar | 87c33cf | 2018-11-29 09:33:00 +0100 | [diff] [blame] | 790 | <readlist cond="(mem_list_com[i].len & 1) && (mem_list_com[i].id == 0xF2)" name="CCB" type="osRtxTimer_t" offset="addr" count="1" /> |
Matthias Hertel | b73eaf3 | 2016-07-22 15:18:56 +0200 | [diff] [blame] | 791 | |
| 792 | <!-- Read EventFlags Control Block --> |
Robert Rostohar | 87c33cf | 2018-11-29 09:33:00 +0100 | [diff] [blame] | 793 | <readlist cond="(mem_list_com[i].len & 1) && (mem_list_com[i].id == 0xF3)" name="ECB" type="osRtxEventFlags_t" offset="addr" count="1" /> |
Matthias Hertel | b73eaf3 | 2016-07-22 15:18:56 +0200 | [diff] [blame] | 794 | |
| 795 | <!-- Read Mutex Control Block --> |
Robert Rostohar | 87c33cf | 2018-11-29 09:33:00 +0100 | [diff] [blame] | 796 | <readlist cond="(mem_list_com[i].len & 1) && (mem_list_com[i].id == 0xF5)" name="MCB" type="osRtxMutex_t" offset="addr" count="1" /> |
Matthias Hertel | b73eaf3 | 2016-07-22 15:18:56 +0200 | [diff] [blame] | 797 | |
| 798 | <!-- Read Semaphore Control Block --> |
Robert Rostohar | 87c33cf | 2018-11-29 09:33:00 +0100 | [diff] [blame] | 799 | <readlist cond="(mem_list_com[i].len & 1) && (mem_list_com[i].id == 0xF6)" name="SCB" type="osRtxSemaphore_t" offset="addr" count="1" /> |
Matthias Hertel | b73eaf3 | 2016-07-22 15:18:56 +0200 | [diff] [blame] | 800 | |
| 801 | <!-- Read MemoryPool Control Block --> |
Robert Rostohar | 87c33cf | 2018-11-29 09:33:00 +0100 | [diff] [blame] | 802 | <readlist cond="(mem_list_com[i].len & 1) && (mem_list_com[i].id == 0xF7)" name="PCB" type="osRtxMemoryPool_t" offset="addr" count="1" /> |
Matthias Hertel | b73eaf3 | 2016-07-22 15:18:56 +0200 | [diff] [blame] | 803 | |
| 804 | <!-- Read MessageQueue Control Block --> |
Robert Rostohar | 87c33cf | 2018-11-29 09:33:00 +0100 | [diff] [blame] | 805 | <readlist cond="(mem_list_com[i].len & 1) && (mem_list_com[i].id == 0xFA)" name="QCB" type="osRtxMessageQueue_t" offset="addr" count="1" /> |
Matthias Hertel | b73eaf3 | 2016-07-22 15:18:56 +0200 | [diff] [blame] | 806 | </list> |
| 807 | |
Robert Rostohar | b3c0636 | 2016-10-19 14:24:56 +0200 | [diff] [blame] | 808 | <!-- Read thread wait list --> |
Robert Rostohar | 0667b18 | 2016-11-25 21:48:19 +0100 | [diff] [blame] | 809 | <readlist name="TWL" cond="RTX_En && os_Info.thread_wait_list" type="osRtxThread_t" offset="os_Info.thread_wait_list" next="delay_next"/> |
Robert Rostohar | b3c0636 | 2016-10-19 14:24:56 +0200 | [diff] [blame] | 810 | |
Matthias Hertel | b73eaf3 | 2016-07-22 15:18:56 +0200 | [diff] [blame] | 811 | <!-- Validate and process Thread control blocks --> |
| 812 | <list name="i" start="0" limit="TCB._count"> |
| 813 | <calc> |
Robert Rostohar | 87c33cf | 2018-11-29 09:33:00 +0100 | [diff] [blame] | 814 | TCB[i].cb_valid = (TCB[i].id == 0xF1) && (TCB[i].state != 0) && (TCB[i].sp != 0); |
Vladimir Umek | 04f9687 | 2018-04-20 10:45:32 +0200 | [diff] [blame] | 815 | TCB[i].sp_valid = 1; |
Matthias Hertel | b73eaf3 | 2016-07-22 15:18:56 +0200 | [diff] [blame] | 816 | </calc> |
| 817 | |
Matthias Hertel | b73eaf3 | 2016-07-22 15:18:56 +0200 | [diff] [blame] | 818 | <!-- Stack pointer for running thread --> |
Vladimir Umek | 09e3221 | 2018-02-15 09:34:49 +0100 | [diff] [blame] | 819 | <calc cond="(TCB[i].state == 2) && (__Running == 0)"> |
| 820 | ipsr = __GetRegVal("XPSR") & 0x01FF; |
| 821 | psp = (v8m_ns == 0) ? (__GetRegVal("PSP")) : (__GetRegVal("PSP_NS")); |
| 822 | psp = (psp == 0) ? (TCB[i].sp) : (psp); |
| 823 | |
| 824 | sp = ((ipsr != 0) && (ipsr < 16)) ? (TCB[i].sp) : (psp); |
Vladimir Umek | 04f9687 | 2018-04-20 10:45:32 +0200 | [diff] [blame] | 825 | |
| 826 | TCB[i].sp_valid = ((ipsr != 0) && (ipsr < 16)) ? (0) : (1); |
Vladimir Umek | 09e3221 | 2018-02-15 09:34:49 +0100 | [diff] [blame] | 827 | </calc> |
| 828 | |
| 829 | <calc cond="(TCB[i].state == 2) && (__Running == 1)"> |
Vladimir Umek | 04f9687 | 2018-04-20 10:45:32 +0200 | [diff] [blame] | 830 | TCB[i].sp_valid = 0; |
Vladimir Umek | 09e3221 | 2018-02-15 09:34:49 +0100 | [diff] [blame] | 831 | sp = TCB[i].sp; |
Matthias Hertel | b73eaf3 | 2016-07-22 15:18:56 +0200 | [diff] [blame] | 832 | </calc> |
| 833 | |
| 834 | <!-- Stack pointer for waiting thread --> |
| 835 | <calc cond="TCB[i].state != 2"> |
| 836 | sp = TCB[i].sp; |
| 837 | </calc> |
Vladimir Umek | ad63173 | 2018-01-15 07:38:49 +0100 | [diff] [blame] | 838 | |
Vladimir Umek | bf186a6 | 2017-07-03 13:04:32 +0200 | [diff] [blame] | 839 | <!-- Save current stack pointer --> |
| 840 | <calc> |
| 841 | TCB[i].stack_cur = sp; |
| 842 | </calc> |
Matthias Hertel | b73eaf3 | 2016-07-22 15:18:56 +0200 | [diff] [blame] | 843 | |
| 844 | <!-- Determine current stack usage --> |
| 845 | <calc cond="TCB[i].sp != 0"> |
Robert Rostohar | b3c0636 | 2016-10-19 14:24:56 +0200 | [diff] [blame] | 846 | TCB[i].stack_curb = TCB[i].stack_mem + TCB[i].stack_size; |
| 847 | TCB[i].stack_curb -= sp; |
| 848 | TCB[i].stack_curp = TCB[i].stack_curb; |
| 849 | TCB[i].stack_curp *= 100; |
| 850 | TCB[i].stack_curp /= TCB[i].stack_size; |
Matthias Hertel | b73eaf3 | 2016-07-22 15:18:56 +0200 | [diff] [blame] | 851 | </calc> |
| 852 | |
Vladimir Umek | 6681697 | 2017-10-13 14:59:19 +0200 | [diff] [blame] | 853 | <!-- Check for current sp overflow --> |
| 854 | <calc cond="TCB[i].sp != 0"> |
| 855 | TCB[i].stack_over = (sp <= TCB[i].stack_mem) ? 1 : 0; |
| 856 | </calc> |
| 857 | |
| 858 | <!-- Check also control values to determine maximum stack usage --> |
Vladimir Umek | 2a7ed79 | 2019-02-14 15:19:13 +0100 | [diff] [blame] | 859 | <calc cond="(stack_wmark != 0) && (TCB[i].sp != 0) && (TCB[i].stack_over == 0) && (TCB[i].stack_size < 65536)"> |
| 860 | TCB[i].stack_val = __CalcMemUsed (TCB[i].stack_mem, sp - TCB[i].stack_mem, 0xCCCCCCCC, 0xE25A2EA5); |
Vladimir Umek | 6681697 | 2017-10-13 14:59:19 +0200 | [diff] [blame] | 861 | TCB[i].stack_over = TCB[i].stack_val >> 31; |
Vladimir Umek | 2a7ed79 | 2019-02-14 15:19:13 +0100 | [diff] [blame] | 862 | TCB[i].stack_maxb = (TCB[i].stack_mem + TCB[i].stack_size) - sp; |
| 863 | TCB[i].stack_maxb += TCB[i].stack_val & 0xFFFFF; |
| 864 | TCB[i].stack_maxp = (TCB[i].stack_maxb * 100)/ TCB[i].stack_size; |
Vladimir Umek | 6681697 | 2017-10-13 14:59:19 +0200 | [diff] [blame] | 865 | </calc> |
| 866 | |
| 867 | <!-- Set max usage in case of stack overflow --> |
| 868 | <calc cond="(TCB[i].sp != 0) && (TCB[i].stack_over != 0)"> |
| 869 | TCB[i].stack_maxb = TCB[i].stack_size; |
| 870 | TCB[i].stack_maxp = 100; |
| 871 | </calc> |
| 872 | |
| 873 | <!-- Adjust maximum usage in case if current sp below max --> |
| 874 | <calc cond="(TCB[i].sp != 0) && (TCB[i].stack_curb >= TCB[i].stack_maxb)"> |
| 875 | TCB[i].stack_maxb = TCB[i].stack_curb; |
| 876 | TCB[i].stack_maxp = TCB[i].stack_curp; |
| 877 | </calc> |
| 878 | |
Matthias Hertel | b73eaf3 | 2016-07-22 15:18:56 +0200 | [diff] [blame] | 879 | <calc> |
| 880 | TCB[i].ex_delay = TCB[i].delay; |
| 881 | </calc> |
| 882 | |
| 883 | <!-- Create Thread Delay List (TDL) --> |
Robert Rostohar | 0667b18 | 2016-11-25 21:48:19 +0100 | [diff] [blame] | 884 | <readlist cond="TCB[i].delay != -1" name="TDL" type="osRtxThread_t" offset="TCB[i].delay_prev" next="delay_prev" init="1"/> |
Matthias Hertel | b73eaf3 | 2016-07-22 15:18:56 +0200 | [diff] [blame] | 885 | |
Robert Rostohar | b3c0636 | 2016-10-19 14:24:56 +0200 | [diff] [blame] | 886 | <list cond="TCB[i].delay != -1" name="j" start="0" limit="TDL._count"> |
Matthias Hertel | b73eaf3 | 2016-07-22 15:18:56 +0200 | [diff] [blame] | 887 | <calc> |
| 888 | TCB[i].ex_delay += TDL[j].delay; |
| 889 | </calc> |
| 890 | </list> |
| 891 | </list> |
| 892 | |
| 893 | <!-- Validate and process Timer control blocks --> |
| 894 | <list name="i" start="0" limit="CCB._count"> |
| 895 | <calc> |
Robert Rostohar | 87c33cf | 2018-11-29 09:33:00 +0100 | [diff] [blame] | 896 | CCB[i].cb_valid = (CCB[i].id == 0xF2) && (CCB[i].state != 0); |
Matthias Hertel | b73eaf3 | 2016-07-22 15:18:56 +0200 | [diff] [blame] | 897 | CCB[i].ex_tick = CCB[i].tick; |
| 898 | </calc> |
| 899 | |
| 900 | <!-- Create Timer Execution List (TEL) --> |
Robert Rostohar | 0667b18 | 2016-11-25 21:48:19 +0100 | [diff] [blame] | 901 | <readlist name="TEL" type="osRtxTimer_t" offset="CCB[i].prev" next="prev" init="1"/> |
Matthias Hertel | b73eaf3 | 2016-07-22 15:18:56 +0200 | [diff] [blame] | 902 | |
| 903 | <list name="j" start="0" limit="TEL._count"> |
| 904 | <calc> |
| 905 | CCB[i].ex_tick += TEL[j].tick; |
| 906 | </calc> |
| 907 | </list> |
| 908 | </list> |
| 909 | |
| 910 | <!-- Validate and process EventFlags control blocks --> |
| 911 | <calc> k = 0; </calc> |
| 912 | |
| 913 | <list name="i" start="0" limit="ECB._count"> |
| 914 | <calc> |
Robert Rostohar | 87c33cf | 2018-11-29 09:33:00 +0100 | [diff] [blame] | 915 | ECB[i].cb_valid = (ECB[i].id == 0xF3); |
Vladimir Umek | bf186a6 | 2017-07-03 13:04:32 +0200 | [diff] [blame] | 916 | ECB[i].wl_idx = k; |
| 917 | ECB[i].wl_cnt = 0; |
Matthias Hertel | b73eaf3 | 2016-07-22 15:18:56 +0200 | [diff] [blame] | 918 | </calc> |
| 919 | |
| 920 | <!-- Create a list of threads waiting for event flags --> |
Vladimir Umek | bf186a6 | 2017-07-03 13:04:32 +0200 | [diff] [blame] | 921 | <readlist name="EWL" type="osRtxThread_t" offset="ECB[i].thread_list" next="thread_next" cond="ECB[i].thread_list"/> |
Matthias Hertel | b73eaf3 | 2016-07-22 15:18:56 +0200 | [diff] [blame] | 922 | |
Vladimir Umek | bf186a6 | 2017-07-03 13:04:32 +0200 | [diff] [blame] | 923 | <calc cond="ECB[i].thread_list"> |
Matthias Hertel | b73eaf3 | 2016-07-22 15:18:56 +0200 | [diff] [blame] | 924 | ECB[i].wl_cnt = (EWL._count - k); |
| 925 | k = EWL._count; |
| 926 | </calc> |
| 927 | </list> |
| 928 | |
| 929 | <!-- Validate and process Mutex control blocks --> |
| 930 | <calc> k = 0; </calc> |
| 931 | |
| 932 | <list cond="MCB._count" name="i" start="0" limit="MCB._count"> |
| 933 | <calc> |
Robert Rostohar | 87c33cf | 2018-11-29 09:33:00 +0100 | [diff] [blame] | 934 | MCB[i].cb_valid = (MCB[i].id == 0xF5); |
Vladimir Umek | bf186a6 | 2017-07-03 13:04:32 +0200 | [diff] [blame] | 935 | MCB[i].wl_idx = k; |
| 936 | MCB[i].wl_cnt = 0; |
Matthias Hertel | b73eaf3 | 2016-07-22 15:18:56 +0200 | [diff] [blame] | 937 | </calc> |
| 938 | |
| 939 | <!-- Create a list of threads waiting for mutex --> |
Vladimir Umek | bf186a6 | 2017-07-03 13:04:32 +0200 | [diff] [blame] | 940 | <readlist name="MWL" type="osRtxThread_t" offset="MCB[i].thread_list" next="thread_next" cond="MCB[i].thread_list"/> |
Matthias Hertel | b73eaf3 | 2016-07-22 15:18:56 +0200 | [diff] [blame] | 941 | |
Vladimir Umek | bf186a6 | 2017-07-03 13:04:32 +0200 | [diff] [blame] | 942 | <calc cond="MCB[i].thread_list"> |
Matthias Hertel | b73eaf3 | 2016-07-22 15:18:56 +0200 | [diff] [blame] | 943 | MCB[i].wl_cnt = (MWL._count - k); |
| 944 | k = MWL._count; |
| 945 | </calc> |
| 946 | </list> |
| 947 | |
| 948 | |
| 949 | <!-- Validate and process semaphore control blocks --> |
| 950 | <calc> k = 0; </calc> |
| 951 | |
| 952 | <list cond="SCB._count" name="i" start="0" limit="SCB._count"> |
| 953 | <calc> |
Robert Rostohar | 87c33cf | 2018-11-29 09:33:00 +0100 | [diff] [blame] | 954 | SCB[i].cb_valid = (SCB[i].id == 0xF6); |
Vladimir Umek | bf186a6 | 2017-07-03 13:04:32 +0200 | [diff] [blame] | 955 | SCB[i].wl_idx = k; |
| 956 | SCB[i].wl_cnt = 0; |
Matthias Hertel | b73eaf3 | 2016-07-22 15:18:56 +0200 | [diff] [blame] | 957 | </calc> |
| 958 | |
| 959 | <!-- Create a list of threads waiting for semaphore --> |
Vladimir Umek | bf186a6 | 2017-07-03 13:04:32 +0200 | [diff] [blame] | 960 | <readlist name="SWL" type="osRtxThread_t" offset="SCB[i].thread_list" next="thread_next" cond="SCB[i].thread_list"/> |
Matthias Hertel | b73eaf3 | 2016-07-22 15:18:56 +0200 | [diff] [blame] | 961 | |
Vladimir Umek | bf186a6 | 2017-07-03 13:04:32 +0200 | [diff] [blame] | 962 | <calc cond="SCB[i].thread_list"> |
Matthias Hertel | b73eaf3 | 2016-07-22 15:18:56 +0200 | [diff] [blame] | 963 | SCB[i].wl_cnt = (SWL._count - k); |
| 964 | k = SWL._count; |
| 965 | </calc> |
| 966 | </list> |
| 967 | |
| 968 | <!-- Validate and process MemoryPool control blocks --> |
| 969 | <calc> k = 0; </calc> |
| 970 | |
| 971 | <list cond="PCB._count" name="i" start="0" limit="PCB._count"> |
| 972 | <calc> |
Robert Rostohar | 87c33cf | 2018-11-29 09:33:00 +0100 | [diff] [blame] | 973 | PCB[i].cb_valid = (PCB[i].id == 0xF7); |
Vladimir Umek | bf186a6 | 2017-07-03 13:04:32 +0200 | [diff] [blame] | 974 | PCB[i].wl_idx = k; |
| 975 | PCB[i].wl_cnt = 0; |
Matthias Hertel | b73eaf3 | 2016-07-22 15:18:56 +0200 | [diff] [blame] | 976 | </calc> |
| 977 | |
| 978 | <!-- Create a list of threads waiting for memory pool --> |
Vladimir Umek | bf186a6 | 2017-07-03 13:04:32 +0200 | [diff] [blame] | 979 | <readlist name="PWL" type="osRtxThread_t" offset="PCB[i].thread_list" next="thread_next" cond="PCB[i].thread_list"/> |
Matthias Hertel | b73eaf3 | 2016-07-22 15:18:56 +0200 | [diff] [blame] | 980 | |
Vladimir Umek | bf186a6 | 2017-07-03 13:04:32 +0200 | [diff] [blame] | 981 | <calc cond="PCB[i].thread_list"> |
Matthias Hertel | b73eaf3 | 2016-07-22 15:18:56 +0200 | [diff] [blame] | 982 | PCB[i].wl_cnt = (PWL._count - k); |
| 983 | k = PWL._count; |
| 984 | </calc> |
| 985 | </list> |
| 986 | |
| 987 | |
| 988 | <!-- Validate and process MessageQueue control blocks --> |
Robert Rostohar | b3c0636 | 2016-10-19 14:24:56 +0200 | [diff] [blame] | 989 | <calc> k = 0; j = 0; </calc> |
Matthias Hertel | b73eaf3 | 2016-07-22 15:18:56 +0200 | [diff] [blame] | 990 | |
| 991 | <list cond="QCB._count" name="i" start="0" limit="QCB._count"> |
| 992 | <calc> |
Robert Rostohar | 87c33cf | 2018-11-29 09:33:00 +0100 | [diff] [blame] | 993 | QCB[i].cb_valid = (QCB[i].id == 0xFA); |
Matthias Hertel | b73eaf3 | 2016-07-22 15:18:56 +0200 | [diff] [blame] | 994 | QCB[i].wl_idx = k; |
Vladimir Umek | bf186a6 | 2017-07-03 13:04:32 +0200 | [diff] [blame] | 995 | QCB[i].wl_cnt = 0; |
Matthias Hertel | b73eaf3 | 2016-07-22 15:18:56 +0200 | [diff] [blame] | 996 | </calc> |
| 997 | |
| 998 | <!-- Create a list of threads waiting for message queue --> |
Vladimir Umek | bf186a6 | 2017-07-03 13:04:32 +0200 | [diff] [blame] | 999 | <readlist name="QWL" type="osRtxThread_t" offset="QCB[i].thread_list" next="thread_next" cond="QCB[i].thread_list"/> |
Matthias Hertel | b73eaf3 | 2016-07-22 15:18:56 +0200 | [diff] [blame] | 1000 | |
Vladimir Umek | bf186a6 | 2017-07-03 13:04:32 +0200 | [diff] [blame] | 1001 | <calc cond="QCB[i].thread_list"> |
Matthias Hertel | b73eaf3 | 2016-07-22 15:18:56 +0200 | [diff] [blame] | 1002 | QCB[i].wl_cnt = (QWL._count - k); |
| 1003 | k = QWL._count; |
| 1004 | </calc> |
Robert Rostohar | b3c0636 | 2016-10-19 14:24:56 +0200 | [diff] [blame] | 1005 | |
Robert Rostohar | b3c0636 | 2016-10-19 14:24:56 +0200 | [diff] [blame] | 1006 | <!-- Create a list of enqueued messages --> |
Vladimir Umek | bf186a6 | 2017-07-03 13:04:32 +0200 | [diff] [blame] | 1007 | <readlist name="QML" type="osRtxMessage_t" offset="QCB[i].msg_first" next="next" cond="QCB[i].msg_first"/> |
Robert Rostohar | b3c0636 | 2016-10-19 14:24:56 +0200 | [diff] [blame] | 1008 | |
| 1009 | <calc> |
| 1010 | QCB[i].ml_idx = j; |
Vladimir Umek | 4e75ce6 | 2018-06-12 08:03:37 +0200 | [diff] [blame] | 1011 | QCB[i].ml_cnt = (QML._count - j) |
Robert Rostohar | b3c0636 | 2016-10-19 14:24:56 +0200 | [diff] [blame] | 1012 | j = QML._count; |
| 1013 | </calc> |
| 1014 | </list> |
| 1015 | |
| 1016 | <!-- Determine the addresses of enqueued messages --> |
| 1017 | <list cond="QML._count" name="i" start="0" limit="QML._count"> |
| 1018 | <calc> |
| 1019 | QML[i].addr = QML[i]._addr; |
| 1020 | QML[i].addr += 12; |
| 1021 | </calc> |
Matthias Hertel | b73eaf3 | 2016-07-22 15:18:56 +0200 | [diff] [blame] | 1022 | </list> |
| 1023 | |
Vladimir Umek | ad63173 | 2018-01-15 07:38:49 +0100 | [diff] [blame] | 1024 | <!-- Read Object Memory Usage Counters (MUC) --> |
| 1025 | <calc cond="__Symbol_exists ("osRtxThreadMemUsage")"> MUC_Thread_En = 1; </calc> |
| 1026 | <calc cond="__Symbol_exists ("osRtxTimerMemUsage")"> MUC_Timer_En = 1; </calc> |
| 1027 | <calc cond="__Symbol_exists ("osRtxEventFlagsMemUsage")"> MUC_EventFlags_En = 1; </calc> |
| 1028 | <calc cond="__Symbol_exists ("osRtxMutexMemUsage")"> MUC_Mutex_En = 1; </calc> |
| 1029 | <calc cond="__Symbol_exists ("osRtxSemaphoreMemUsage")"> MUC_Semaphore_En = 1; </calc> |
| 1030 | <calc cond="__Symbol_exists ("osRtxMemoryPoolMemUsage")"> MUC_MemPool_En = 1; </calc> |
| 1031 | <calc cond="__Symbol_exists ("osRtxMessageQueueMemUsage")"> MUC_MsgQueue_En = 1; </calc> |
| 1032 | |
| 1033 | <calc> |
| 1034 | MUC_En = MUC_Thread_En | MUC_Timer_En | MUC_EventFlags_En | MUC_Mutex_En | MUC_Semaphore_En | MUC_MemPool_En | MUC_MsgQueue_En; |
| 1035 | </calc> |
| 1036 | |
| 1037 | <readlist name="MUC_Thread" type="osRtxObjectMemUsage_t" symbol="osRtxThreadMemUsage" count="1" init="1" cond="MUC_Thread_En"/> |
| 1038 | <readlist name="MUC_Timer" type="osRtxObjectMemUsage_t" symbol="osRtxTimerMemUsage" count="1" init="1" cond="MUC_Timer_En"/> |
| 1039 | <readlist name="MUC_EventFlags" type="osRtxObjectMemUsage_t" symbol="osRtxEventFlagsMemUsage" count="1" init="1" cond="MUC_EventFlags_En"/> |
| 1040 | <readlist name="MUC_Mutex" type="osRtxObjectMemUsage_t" symbol="osRtxMutexMemUsage" count="1" init="1" cond="MUC_Mutex_En"/> |
| 1041 | <readlist name="MUC_Semaphore" type="osRtxObjectMemUsage_t" symbol="osRtxSemaphoreMemUsage" count="1" init="1" cond="MUC_Semaphore_En"/> |
| 1042 | <readlist name="MUC_MemPool" type="osRtxObjectMemUsage_t" symbol="osRtxMemoryPoolMemUsage" count="1" init="1" cond="MUC_MemPool_En"/> |
| 1043 | <readlist name="MUC_MsgQueue" type="osRtxObjectMemUsage_t" symbol="osRtxMessageQueueMemUsage" count="1" init="1" cond="MUC_MsgQueue_En"/> |
| 1044 | |
| 1045 | |
Matthias Hertel | b73eaf3 | 2016-07-22 15:18:56 +0200 | [diff] [blame] | 1046 | <!-- Determine what to display --> |
| 1047 | <list cond="TCB._count" name="i" start="0" limit="TCB._count"> |
| 1048 | <calc>TCB_En += TCB[i].cb_valid; </calc> |
Vladimir Umek | bf186a6 | 2017-07-03 13:04:32 +0200 | [diff] [blame] | 1049 | |
| 1050 | <calc cond="TCB[i].cb_valid == 0"> TCB[i].out_type = 0;</calc> |
| 1051 | <calc cond="TCB[i].cb_valid && (TCB[i].name == 0) && (stack_wmark == 0)"> TCB[i].out_type = 1; </calc> |
| 1052 | <calc cond="TCB[i].cb_valid && (TCB[i].name == 0) && (stack_wmark != 0)"> TCB[i].out_type = 2; </calc> |
| 1053 | <calc cond="TCB[i].cb_valid && (TCB[i].name != 0) && (stack_wmark == 0)"> TCB[i].out_type = 3; </calc> |
| 1054 | <calc cond="TCB[i].cb_valid && (TCB[i].name != 0) && (stack_wmark != 0)"> TCB[i].out_type = 4; </calc> |
Vladimir Umek | 04f9687 | 2018-04-20 10:45:32 +0200 | [diff] [blame] | 1055 | |
| 1056 | <calc cond="TCB[i].sp_valid == 0"> TCB[i].out_type += 4; </calc> |
Matthias Hertel | b73eaf3 | 2016-07-22 15:18:56 +0200 | [diff] [blame] | 1057 | </list> |
| 1058 | <list cond="CCB._count" name="i" start="0" limit="CCB._count"> |
| 1059 | <calc>CCB_En += CCB[i].cb_valid; </calc> |
| 1060 | </list> |
| 1061 | <list cond="SCB._count" name="i" start="0" limit="SCB._count"> |
| 1062 | <calc>SCB_En += SCB[i].cb_valid; </calc> |
| 1063 | </list> |
| 1064 | <list cond="MCB._count" name="i" start="0" limit="MCB._count"> |
| 1065 | <calc>MCB_En += MCB[i].cb_valid; </calc> |
| 1066 | </list> |
| 1067 | <list cond="ECB._count" name="i" start="0" limit="ECB._count"> |
| 1068 | <calc>ECB_En += ECB[i].cb_valid; </calc> |
| 1069 | </list> |
| 1070 | <list cond="PCB._count" name="i" start="0" limit="PCB._count"> |
| 1071 | <calc>PCB_En += PCB[i].cb_valid; </calc> |
| 1072 | </list> |
| 1073 | <list cond="QCB._count" name="i" start="0" limit="QCB._count"> |
| 1074 | <calc>QCB_En += QCB[i].cb_valid; </calc> |
| 1075 | </list> |
| 1076 | |
| 1077 | <out name="RTX RTOS"> |
| 1078 | <!-- System --> |
| 1079 | <item property="System" value=""> |
Robert Rostohar | bc04f0e | 2016-12-13 10:33:34 +0100 | [diff] [blame] | 1080 | <item property="Kernel ID" value="RTX V%d[V_Major].%d[V_Minor].%d[V_Patch]" cond="RTX_En != 0"/> |
Robert Rostohar | 4b6a249 | 2016-11-09 13:34:23 +0100 | [diff] [blame] | 1081 | <item property="Kernel State" value="osKernelInactive" cond="RTX_En == 0"/> |
| 1082 | <item property="Kernel State" value="%E[os_Info.kernel_state]" cond="RTX_En != 0"/> |
Robert Rostohar | e2a35ba | 2016-12-13 11:23:45 +0100 | [diff] [blame] | 1083 | <item property="Kernel Tick Count" value="%d[os_Info.kernel_tick]" cond="RTX_En != 0"/> |
Vladimir Umek | ad63173 | 2018-01-15 07:38:49 +0100 | [diff] [blame] | 1084 | <item property="Kernel Tick Frequency" value="%d[os_Config.tick_freq]" cond="RTX_En != 0" /> |
Robert Rostohar | e2a35ba | 2016-12-13 11:23:45 +0100 | [diff] [blame] | 1085 | <item property="Round Robin" value="Disabled" cond="(os_Config.robin_timeout == 0) && (RTX_En != 0)" /> |
| 1086 | <item property="Round Robin Tick Count" value="%d[os_Info.thread_robin_tick]" cond="(os_Config.robin_timeout > 0) && (RTX_En != 0)" /> |
| 1087 | <item property="Round Robin Timeout" value="%d[os_Config.robin_timeout]" cond="(os_Config.robin_timeout > 0) && (RTX_En != 0)" /> |
Vladimir Umek | ad63173 | 2018-01-15 07:38:49 +0100 | [diff] [blame] | 1088 | <item property="Global Dynamic Memory" value="Not used" cond="(os_Config.mem_common_size == 0) && (RTX_En != 0)"/> |
| 1089 | <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) && (RTX_En != 0)"/> |
Robert Rostohar | e2a35ba | 2016-12-13 11:23:45 +0100 | [diff] [blame] | 1090 | <item property="Stack Overrun Check" value="%t[stack_check ? "Enabled" : "Disabled"]" cond="RTX_En != 0"/> |
| 1091 | <item property="Stack Usage Watermark" value="%t[stack_wmark ? "Enabled" : "Disabled"]" cond="RTX_En != 0"/> |
| 1092 | <item property="Default Thread Stack Size" value="%d[os_Config.thread_stack_size]" cond="RTX_En != 0"/> |
Matthias Hertel | b73eaf3 | 2016-07-22 15:18:56 +0200 | [diff] [blame] | 1093 | |
Robert Rostohar | 4b6a249 | 2016-11-09 13:34:23 +0100 | [diff] [blame] | 1094 | <item property="ISR FIFO Queue" value="Size: %d[os_Info.isr_queue_max], Used: %d[os_Info.isr_queue_cnt]" cond="RTX_En"> |
Robert Rostohar | b3c0636 | 2016-10-19 14:24:56 +0200 | [diff] [blame] | 1095 | <list name="i" start="0" limit="os_Info.isr_queue_cnt"> |
Matthias Hertel | b73eaf3 | 2016-07-22 15:18:56 +0200 | [diff] [blame] | 1096 | <item property="data[%d[i]]" value="%x[ISR_FIFO[i]]" /> |
| 1097 | </list> |
| 1098 | </item> |
Robert Rostohar | b3c0636 | 2016-10-19 14:24:56 +0200 | [diff] [blame] | 1099 | |
Vladimir Umek | ad63173 | 2018-01-15 07:38:49 +0100 | [diff] [blame] | 1100 | <item property="Object specific Memory allocation" value="" cond="StaticMp_En"> |
Robert Rostohar | 4d9f70d | 2016-12-12 13:03:38 +0100 | [diff] [blame] | 1101 | <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 Umek | ad63173 | 2018-01-15 07:38:49 +0100 | [diff] [blame] | 1102 | <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]"/> |
| 1103 | <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"/> |
| 1104 | <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 Rostohar | 4d9f70d | 2016-12-12 13:03:38 +0100 | [diff] [blame] | 1105 | </item> |
| 1106 | <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 Umek | ad63173 | 2018-01-15 07:38:49 +0100 | [diff] [blame] | 1107 | <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 Rostohar | 4d9f70d | 2016-12-12 13:03:38 +0100 | [diff] [blame] | 1108 | </item> |
| 1109 | <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 Umek | ad63173 | 2018-01-15 07:38:49 +0100 | [diff] [blame] | 1110 | <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 Rostohar | 4d9f70d | 2016-12-12 13:03:38 +0100 | [diff] [blame] | 1111 | </item> |
| 1112 | <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 Umek | ad63173 | 2018-01-15 07:38:49 +0100 | [diff] [blame] | 1113 | <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 Rostohar | 4d9f70d | 2016-12-12 13:03:38 +0100 | [diff] [blame] | 1114 | </item> |
| 1115 | <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 Umek | ad63173 | 2018-01-15 07:38:49 +0100 | [diff] [blame] | 1116 | <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 Rostohar | 4d9f70d | 2016-12-12 13:03:38 +0100 | [diff] [blame] | 1117 | </item> |
| 1118 | <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 Umek | ad63173 | 2018-01-15 07:38:49 +0100 | [diff] [blame] | 1119 | <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]"/> |
| 1120 | <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 Rostohar | 4d9f70d | 2016-12-12 13:03:38 +0100 | [diff] [blame] | 1121 | </item> |
| 1122 | <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 Umek | ad63173 | 2018-01-15 07:38:49 +0100 | [diff] [blame] | 1123 | <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]"/> |
| 1124 | <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 Rostohar | 4d9f70d | 2016-12-12 13:03:38 +0100 | [diff] [blame] | 1125 | </item> |
Robert Rostohar | b3c0636 | 2016-10-19 14:24:56 +0200 | [diff] [blame] | 1126 | </item> |
Vladimir Umek | ad63173 | 2018-01-15 07:38:49 +0100 | [diff] [blame] | 1127 | |
| 1128 | <item property="Object Memory usage counters" value="" cond="(MUC_En != 0) && (RTX_En != 0)"> |
| 1129 | <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"/> |
| 1130 | <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"/> |
| 1131 | <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"/> |
| 1132 | <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"/> |
| 1133 | <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"/> |
| 1134 | <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"/> |
| 1135 | <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"/> |
| 1136 | </item> |
Matthias Hertel | b73eaf3 | 2016-07-22 15:18:56 +0200 | [diff] [blame] | 1137 | </item> |
| 1138 | |
| 1139 | <!-- Threads --> |
| 1140 | <item cond="TCB_En" property="Threads" value=""> |
| 1141 | <list name="i" start="0" limit="TCB._count"> |
Vladimir Umek | bf186a6 | 2017-07-03 13:04:32 +0200 | [diff] [blame] | 1142 | <item> |
Vladimir Umek | ba157cf | 2019-01-09 14:22:15 +0100 | [diff] [blame] | 1143 | <print cond="TCB[i].out_type == 1" property="id: %x[TCB[i]._addr] "%S[TCB[i].thread_addr]"" value="%E[TCB[i].state & 0x07], %E[TCB[i].priority], Stack Used: %d[TCB[i].stack_curp]%%" alert="TCB[i].stack_over != 0"/> |
| 1144 | <print cond="TCB[i].out_type == 2" property="id: %x[TCB[i]._addr] "%S[TCB[i].thread_addr]"" value="%E[TCB[i].state & 0x07], %E[TCB[i].priority], Stack Used: %d[TCB[i].stack_curp]%%, Max: %d[TCB[i].stack_maxp]%%" alert="TCB[i].stack_over != 0"/> |
| 1145 | <print cond="TCB[i].out_type == 3" property="id: %x[TCB[i]._addr] %N[TCB[i].name]" value="%E[TCB[i].state & 0x07], %E[TCB[i].priority], Stack Used: %d[TCB[i].stack_curp]%%" alert="TCB[i].stack_over != 0"/> |
| 1146 | <print cond="TCB[i].out_type == 4" property="id: %x[TCB[i]._addr] %N[TCB[i].name]" value="%E[TCB[i].state & 0x07], %E[TCB[i].priority], Stack Used: %d[TCB[i].stack_curp]%%, Max: %d[TCB[i].stack_maxp]%%" alert="TCB[i].stack_over != 0"/> |
Vladimir Umek | bf186a6 | 2017-07-03 13:04:32 +0200 | [diff] [blame] | 1147 | |
Vladimir Umek | ba157cf | 2019-01-09 14:22:15 +0100 | [diff] [blame] | 1148 | <print cond="TCB[i].out_type == 5" property="id: %x[TCB[i]._addr] "%S[TCB[i].thread_addr]"" value="%E[TCB[i].state & 0x07], %E[TCB[i].priority], Stack Used: unknown" alert="TCB[i].stack_over != 0"/> |
| 1149 | <print cond="TCB[i].out_type == 6" property="id: %x[TCB[i]._addr] "%S[TCB[i].thread_addr]"" value="%E[TCB[i].state & 0x07], %E[TCB[i].priority], Stack Used: unknown, Max: %d[TCB[i].stack_maxp]%%" alert="TCB[i].stack_over != 0"/> |
| 1150 | <print cond="TCB[i].out_type == 7" property="id: %x[TCB[i]._addr] %N[TCB[i].name]" value="%E[TCB[i].state & 0x07], %E[TCB[i].priority], Stack Used: unknown" alert="TCB[i].stack_over != 0"/> |
| 1151 | <print cond="TCB[i].out_type == 8" property="id: %x[TCB[i]._addr] %N[TCB[i].name]" value="%E[TCB[i].state & 0x07], %E[TCB[i].priority], Stack Used: unknown, Max: %d[TCB[i].stack_maxp]%%" alert="TCB[i].stack_over != 0"/> |
Vladimir Umek | 04f9687 | 2018-04-20 10:45:32 +0200 | [diff] [blame] | 1152 | |
Robert Rostohar | a6abe96 | 2016-11-29 15:57:42 +0100 | [diff] [blame] | 1153 | <item property="State" value="%E[TCB[i].state & 0x07]"/> |
| 1154 | <item property="Priority" value="%E[TCB[i].priority]"/> |
| 1155 | <item property="Attributes" value="%E[TCB[i].attr & 0x01]"/> |
| 1156 | |
Vladimir Umek | bf186a6 | 2017-07-03 13:04:32 +0200 | [diff] [blame] | 1157 | <item> |
| 1158 | <print property="Waiting" value="%E[TCB[i].state], Timeout: %d[TCB[i].ex_delay]" cond="((TCB[i].state & 0x07) == 3) && (TCB[i].ex_delay != -1)"/> |
| 1159 | <print property="Waiting" value="%E[TCB[i].state], Timeout: osWaitForever" cond="((TCB[i].state & 0x07) == 3) && (TCB[i].ex_delay == -1)"/> |
Robert Rostohar | a6abe96 | 2016-11-29 15:57:42 +0100 | [diff] [blame] | 1160 | <!-- Wait Thread Flags --> |
| 1161 | <item cond="TCB[i].state == 0x33" property="id: %x[TCB[i].thread_prev]" value=""/> |
| 1162 | |
| 1163 | <list cond="TCB[i].state == 0x43" name="n" start="0" limit="ECB._count"> |
| 1164 | <!-- Wait Event Flags --> |
Vladimir Umek | ba157cf | 2019-01-09 14:22:15 +0100 | [diff] [blame] | 1165 | <item cond="TCB[i].thread_prev == ECB[n]._addr" property="id: %x[ECB[n]._addr] %N[ECB[n].name]" value=""/> |
Robert Rostohar | a6abe96 | 2016-11-29 15:57:42 +0100 | [diff] [blame] | 1166 | </list> |
| 1167 | |
| 1168 | <list cond="TCB[i].state == 0x53" name="n" start="0" limit="MCB._count"> |
| 1169 | <!-- Wait Mutex --> |
Vladimir Umek | ba157cf | 2019-01-09 14:22:15 +0100 | [diff] [blame] | 1170 | <item cond="TCB[i].thread_prev == MCB[n]._addr" property="id: %x[MCB[n]._addr] %N[MCB[n].name]" value=""/> |
Robert Rostohar | a6abe96 | 2016-11-29 15:57:42 +0100 | [diff] [blame] | 1171 | </list> |
| 1172 | |
| 1173 | <list cond="TCB[i].state == 0x63" name="n" start="0" limit="SCB._count"> |
| 1174 | <!-- Wait Semaphore --> |
Vladimir Umek | ba157cf | 2019-01-09 14:22:15 +0100 | [diff] [blame] | 1175 | <item cond="TCB[i].thread_prev == SCB[n]._addr" property="id: %x[SCB[n]._addr] %N[SCB[n].name]" value=""/> |
Robert Rostohar | a6abe96 | 2016-11-29 15:57:42 +0100 | [diff] [blame] | 1176 | </list> |
| 1177 | |
| 1178 | <list cond="TCB[i].state == 0x73" name="n" start="0" limit="PCB._count"> |
| 1179 | <!-- Wait Memory Pool --> |
Vladimir Umek | ba157cf | 2019-01-09 14:22:15 +0100 | [diff] [blame] | 1180 | <item cond="TCB[i].thread_prev == PCB[n]._addr" property="id: %x[PCB[n]._addr] %N[PCB[n].name]" value=""/> |
Robert Rostohar | a6abe96 | 2016-11-29 15:57:42 +0100 | [diff] [blame] | 1181 | </list> |
| 1182 | |
| 1183 | <list cond="(TCB[i].state == 0x83) || (TCB[i].state == 0x84)" name="n" start="0" limit="QCB._count"> |
| 1184 | <!-- Wait Message Queue --> |
Vladimir Umek | ba157cf | 2019-01-09 14:22:15 +0100 | [diff] [blame] | 1185 | <item cond="TCB[i].thread_prev == QCB[n]._addr" property="id: %x[QCB[n]._addr] %N[QCB[n].name]" value=""/> |
Robert Rostohar | a6abe96 | 2016-11-29 15:57:42 +0100 | [diff] [blame] | 1186 | </list> |
| 1187 | </item> |
| 1188 | |
Vladimir Umek | bf186a6 | 2017-07-03 13:04:32 +0200 | [diff] [blame] | 1189 | <item> |
Vladimir Umek | 04f9687 | 2018-04-20 10:45:32 +0200 | [diff] [blame] | 1190 | <print cond="(TCB[i].sp_valid == 0) && (stack_wmark == 0)" property="Stack" value="Used: unknown"/> |
| 1191 | <print cond="(TCB[i].sp_valid == 0) && (stack_wmark != 0)" property="Stack" value="Used: unknown, Max: %d[TCB[i].stack_maxp]%% [%d[TCB[i].stack_maxb]]"/> |
| 1192 | <print cond="(TCB[i].sp_valid == 1) && (stack_wmark == 0)" property="Stack" value="Used: %d[TCB[i].stack_curp]%% [%d[TCB[i].stack_curb]]"/> |
| 1193 | <print cond="(TCB[i].sp_valid == 1) && (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 Rostohar | a6abe96 | 2016-11-29 15:57:42 +0100 | [diff] [blame] | 1194 | |
Vladimir Umek | 04f9687 | 2018-04-20 10:45:32 +0200 | [diff] [blame] | 1195 | <item> |
| 1196 | <print cond="TCB[i].sp_valid == 0" property="Used" value="unknown"/> |
| 1197 | <print cond="TCB[i].sp_valid == 1" property="Used" value="%d[TCB[i].stack_curb]"/> |
| 1198 | </item> |
Vladimir Umek | bf186a6 | 2017-07-03 13:04:32 +0200 | [diff] [blame] | 1199 | <item property="Max" value="%d[TCB[i].stack_maxb]" cond="stack_wmark != 0"/> |
Robert Rostohar | a6abe96 | 2016-11-29 15:57:42 +0100 | [diff] [blame] | 1200 | <item property="Top" value="%x[TCB[i].stack_mem + TCB[i].stack_size]"/> |
Vladimir Umek | 95a3ae4 | 2018-07-18 07:11:34 +0200 | [diff] [blame] | 1201 | <item> |
| 1202 | <print cond="TCB[i].sp_valid == 0" property="Current" value="unknown"/> |
| 1203 | <print cond="TCB[i].sp_valid == 1" property="Current" value="%x[TCB[i].stack_cur]"/> |
| 1204 | </item> |
Robert Rostohar | b3c0636 | 2016-10-19 14:24:56 +0200 | [diff] [blame] | 1205 | <item property="Limit" value="%x[TCB[i].stack_mem]"/> |
| 1206 | <item property="Size" value="%d[TCB[i].stack_size]"/> |
| 1207 | </item> |
Matthias Hertel | b73eaf3 | 2016-07-22 15:18:56 +0200 | [diff] [blame] | 1208 | |
Robert Rostohar | b3c0636 | 2016-10-19 14:24:56 +0200 | [diff] [blame] | 1209 | <item property="Stack Overrun" value="Overrun detected" cond="TCB[i].stack_over != 0"/> |
| 1210 | <item property="Flags" value="%x[TCB[i].thread_flags]"/> |
Vladimir Umek | 971a284 | 2017-03-06 07:58:56 +0100 | [diff] [blame] | 1211 | <item property="Wait Flags" value="%x[TCB[i].wait_flags], %E[TCB[i].flags_options & 1]" cond="(TCB[i].wait_flags != 0) && ((TCB[i].flags_options & 2) == 0)"/> |
| 1212 | <item property="Wait Flags" value="%x[TCB[i].wait_flags], %E[TCB[i].flags_options & 1], osFlagsNoClear" cond="(TCB[i].wait_flags != 0) && ((TCB[i].flags_options & 2) != 0)"/> |
Robert Rostohar | b3c0636 | 2016-10-19 14:24:56 +0200 | [diff] [blame] | 1213 | <item property="TrustZone ID" value="%d[TCB[i].tz_memory]" cond="TCB[i].tz_memory"/> |
Matthias Hertel | b73eaf3 | 2016-07-22 15:18:56 +0200 | [diff] [blame] | 1214 | </item> |
| 1215 | </list> |
| 1216 | </item> |
| 1217 | |
| 1218 | <!-- Timers --> |
| 1219 | <item cond="CCB_En" property="Timers" value=""> |
| 1220 | <list name="i" start="0" limit="CCB._count"> |
Vladimir Umek | ba157cf | 2019-01-09 14:22:15 +0100 | [diff] [blame] | 1221 | <item cond="CCB[i].cb_valid" property="id: %x[CCB[i]._addr] %N[CCB[i].name]" value="%E[CCB[i].state], Tick: %d[CCB[i].ex_tick]"> |
Robert Rostohar | b3c0636 | 2016-10-19 14:24:56 +0200 | [diff] [blame] | 1222 | <item property="State" value="%E[CCB[i].state]" /> |
| 1223 | <item property="Type" value="%E[CCB[i].type]" /> |
| 1224 | <item property="Tick" value="%d[CCB[i].ex_tick]" /> |
| 1225 | <item property="Load" value="%d[CCB[i].load]" /> |
| 1226 | <item property="Callback" value="Func: %S[CCB[i].finfo_fp], Arg: %x[CCB[i].finfo_arg]" /> |
Matthias Hertel | b73eaf3 | 2016-07-22 15:18:56 +0200 | [diff] [blame] | 1227 | </item> |
| 1228 | </list> |
| 1229 | </item> |
| 1230 | |
| 1231 | <!-- Semaphores --> |
| 1232 | <item cond="SCB_En" property="Semaphores" value=""> |
| 1233 | <list name="i" start="0" limit="SCB._count"> |
Vladimir Umek | ba157cf | 2019-01-09 14:22:15 +0100 | [diff] [blame] | 1234 | <item cond="SCB[i].cb_valid" property="id: %x[SCB[i]._addr] %N[SCB[i].name]" value="Tokens: %d[SCB[i].tokens], Max: %d[SCB[i].max_tokens]"> |
Robert Rostohar | b3c0636 | 2016-10-19 14:24:56 +0200 | [diff] [blame] | 1235 | <item property="Tokens" value="%d[SCB[i].tokens]" /> |
| 1236 | <item property="Max Tokens" value="%d[SCB[i].max_tokens]" /> |
Matthias Hertel | b73eaf3 | 2016-07-22 15:18:56 +0200 | [diff] [blame] | 1237 | |
| 1238 | <!-- Waiting thread list --> |
| 1239 | <item cond="SCB[i].wl_cnt" property="Threads waiting (%d[SCB[i].wl_cnt])" value=""> |
| 1240 | |
| 1241 | <list name="j" start="SCB[i].wl_idx" limit="SCB[i].wl_idx + SCB[i].wl_cnt"> |
| 1242 | <list name="k" start="0" limit="TCB._count"> |
Vladimir Umek | ba157cf | 2019-01-09 14:22:15 +0100 | [diff] [blame] | 1243 | <item property="id: %x[TCB[k]._addr] %N[TCB[k].name]" value="Timeout: %d[TCB[k].ex_delay]" cond="(SWL[j].stack_mem == TCB[k].stack_mem) && (TCB[k].ex_delay != -1)"/> |
| 1244 | <item property="id: %x[TCB[k]._addr] %N[TCB[k].name]" value="Timeout: osWaitForever" cond="(SWL[j].stack_mem == TCB[k].stack_mem) && (TCB[k].ex_delay == -1)"/> |
Matthias Hertel | b73eaf3 | 2016-07-22 15:18:56 +0200 | [diff] [blame] | 1245 | </list> |
| 1246 | </list> |
| 1247 | |
| 1248 | </item> |
| 1249 | </item> |
| 1250 | </list> |
| 1251 | </item> |
| 1252 | |
| 1253 | <!-- Mutexes --> |
| 1254 | <item cond="MCB_En" property="Mutexes" value=""> |
| 1255 | <list name="i" start="0" limit="MCB._count"> |
Vladimir Umek | ba157cf | 2019-01-09 14:22:15 +0100 | [diff] [blame] | 1256 | <item cond="MCB[i].cb_valid" property="id: %x[MCB[i]._addr] %N[MCB[i].name]" value="Lock counter: %d[MCB[i].lock]"> |
Robert Rostohar | 4c2b944 | 2016-10-20 11:08:26 +0200 | [diff] [blame] | 1257 | <item property="Lock counter" value="%x[MCB[i].lock]"/> |
Robert Rostohar | b3c0636 | 2016-10-19 14:24:56 +0200 | [diff] [blame] | 1258 | <item property="Attributes" value="%x[MCB[i].attr]"> |
| 1259 | <item property="osMutexRecursive" value="%t[(MCB[i].attr & 0x01) ? "True" : "False"]" /> |
| 1260 | <item property="osMutexPrioInherit" value="%t[(MCB[i].attr & 0x02) ? "True" : "False"]" /> |
| 1261 | <item property="osMutexRobust" value="%t[(MCB[i].attr & 0x08) ? "True" : "False"]" /> |
| 1262 | </item> |
| 1263 | |
Vladimir Umek | 757e808 | 2019-04-25 08:48:06 +0200 | [diff] [blame] | 1264 | <list cond="MCB[i].lock" name="n" start="0" limit="TCB._count"> |
Vladimir Umek | ba157cf | 2019-01-09 14:22:15 +0100 | [diff] [blame] | 1265 | <item cond="MCB[i].owner_thread == TCB[n]._addr" property="Owner thread" value="id: %x[TCB[n]._addr] %N[TCB[n].name]"/> |
Robert Rostohar | b3c0636 | 2016-10-19 14:24:56 +0200 | [diff] [blame] | 1266 | </list> |
Matthias Hertel | b73eaf3 | 2016-07-22 15:18:56 +0200 | [diff] [blame] | 1267 | |
| 1268 | <!-- Waiting thread list --> |
| 1269 | <item cond="MCB[i].wl_cnt" property="Threads waiting (%d[MCB[i].wl_cnt])" value=""> |
| 1270 | |
| 1271 | <list name="j" start="MCB[i].wl_idx" limit="MCB[i].wl_idx + MCB[i].wl_cnt"> |
| 1272 | <list name="k" start="0" limit="TCB._count"> |
Vladimir Umek | ba157cf | 2019-01-09 14:22:15 +0100 | [diff] [blame] | 1273 | <item property="id: %x[TCB[k]._addr] %N[TCB[k].name]" value="Timeout: %d[TCB[k].ex_delay]" cond="(MWL[j].stack_mem == TCB[k].stack_mem) && (TCB[k].ex_delay != -1)"/> |
| 1274 | <item property="id: %x[TCB[k]._addr] %N[TCB[k].name]" value="Timeout: osWaitForever" cond="(MWL[j].stack_mem == TCB[k].stack_mem) && (TCB[k].ex_delay == -1)"/> |
Matthias Hertel | b73eaf3 | 2016-07-22 15:18:56 +0200 | [diff] [blame] | 1275 | </list> |
| 1276 | </list> |
| 1277 | |
| 1278 | </item> |
| 1279 | </item> |
| 1280 | </list> |
| 1281 | </item> |
| 1282 | |
| 1283 | <!-- Event Flags --> |
| 1284 | <item cond="ECB_En" property="Event Flags" value=""> |
| 1285 | <list name="i" start="0" limit="ECB._count"> |
Vladimir Umek | ba157cf | 2019-01-09 14:22:15 +0100 | [diff] [blame] | 1286 | <item cond="ECB[i].cb_valid" property="id: %x[ECB[i]._addr] %N[ECB[i].name]" value="Flags: %x[ECB[i].event_flags]"> |
Matthias Hertel | b73eaf3 | 2016-07-22 15:18:56 +0200 | [diff] [blame] | 1287 | |
| 1288 | <!-- Waiting thread list --> |
| 1289 | <item cond="ECB[i].wl_cnt" property="Threads waiting (%d[ECB[i].wl_cnt])" value=""> |
| 1290 | |
| 1291 | <list name="j" start="ECB[i].wl_idx" limit="ECB[i].wl_idx + ECB[i].wl_cnt"> |
| 1292 | <list name="k" start="0" limit="TCB._count"> |
Vladimir Umek | ba157cf | 2019-01-09 14:22:15 +0100 | [diff] [blame] | 1293 | <item property="id: %x[TCB[k]._addr] %N[TCB[k].name]" value="Timeout: %d[TCB[k].ex_delay]" cond="(EWL[j].stack_mem == TCB[k].stack_mem) && (TCB[k].ex_delay != -1)"/> |
| 1294 | <item property="id: %x[TCB[k]._addr] %N[TCB[k].name]" value="Timeout: osWaitForever" cond="(EWL[j].stack_mem == TCB[k].stack_mem) && (TCB[k].ex_delay == -1)"/> |
Matthias Hertel | b73eaf3 | 2016-07-22 15:18:56 +0200 | [diff] [blame] | 1295 | </list> |
| 1296 | </list> |
| 1297 | |
| 1298 | </item> |
| 1299 | </item> |
| 1300 | </list> |
| 1301 | </item> |
| 1302 | |
| 1303 | <!-- Memory Pool --> |
Robert Rostohar | 4c2b944 | 2016-10-20 11:08:26 +0200 | [diff] [blame] | 1304 | <item cond="PCB_En" property="Memory Pools" value=""> |
Matthias Hertel | b73eaf3 | 2016-07-22 15:18:56 +0200 | [diff] [blame] | 1305 | <list name="i" start="0" limit="PCB._count"> |
Vladimir Umek | ba157cf | 2019-01-09 14:22:15 +0100 | [diff] [blame] | 1306 | <item cond="PCB[i].cb_valid" property="id: %x[PCB[i]._addr] %N[PCB[i].name]" value="Used: %d[PCB[i].used_blocks], Max: %d[PCB[i].max_blocks]"> |
Matthias Hertel | b73eaf3 | 2016-07-22 15:18:56 +0200 | [diff] [blame] | 1307 | |
Robert Rostohar | 4d9f70d | 2016-12-12 13:03:38 +0100 | [diff] [blame] | 1308 | <item property="Used blocks" value="%d[PCB[i].used_blocks]"/> |
| 1309 | <item property="Max blocks" value="%d[PCB[i].max_blocks]"/> |
| 1310 | <item property="Block size" value="%d[PCB[i].block_size]"/> |
| 1311 | <item property="Memory base" value="%x[PCB[i].block_base]"/> |
| 1312 | <item property="Memory size" value="%d[PCB[i].block_lim - PCB[i].block_base]"/> |
Matthias Hertel | b73eaf3 | 2016-07-22 15:18:56 +0200 | [diff] [blame] | 1313 | |
| 1314 | <!-- Waiting thread list --> |
| 1315 | <item cond="PCB[i].wl_cnt" property="Threads waiting (%d[PCB[i].wl_cnt])" value=""> |
| 1316 | |
| 1317 | <list name="j" start="PCB[i].wl_idx" limit="PCB[i].wl_idx + PCB[i].wl_cnt"> |
| 1318 | <list name="k" start="0" limit="TCB._count"> |
Vladimir Umek | ba157cf | 2019-01-09 14:22:15 +0100 | [diff] [blame] | 1319 | <item property="id: %x[TCB[k]._addr] %N[TCB[k].name]" value="Timeout: %d[TCB[k].ex_delay]" cond="(PWL[j].stack_mem == TCB[k].stack_mem) && (TCB[k].ex_delay != -1)"/> |
| 1320 | <item property="id: %x[TCB[k]._addr] %N[TCB[k].name]" value="Timeout: osWaitForever" cond="(PWL[j].stack_mem == TCB[k].stack_mem) && (TCB[k].ex_delay == -1)"/> |
Matthias Hertel | b73eaf3 | 2016-07-22 15:18:56 +0200 | [diff] [blame] | 1321 | </list> |
| 1322 | </list> |
| 1323 | |
| 1324 | </item> |
| 1325 | </item> |
| 1326 | </list> |
| 1327 | </item> |
| 1328 | |
| 1329 | <!-- Message Queue --> |
Robert Rostohar | 4c2b944 | 2016-10-20 11:08:26 +0200 | [diff] [blame] | 1330 | <item cond="QCB_En" property="Message Queues" value=""> |
Matthias Hertel | b73eaf3 | 2016-07-22 15:18:56 +0200 | [diff] [blame] | 1331 | <list name="i" start="0" limit="QCB._count"> |
Vladimir Umek | ba157cf | 2019-01-09 14:22:15 +0100 | [diff] [blame] | 1332 | <item cond="QCB[i].cb_valid" property="id: %x[QCB[i]._addr] %N[QCB[i].name]" value="Messages: %d[QCB[i].msg_count], Max: %d[QCB[i].max_blocks]"> |
Matthias Hertel | b73eaf3 | 2016-07-22 15:18:56 +0200 | [diff] [blame] | 1333 | |
Vladimir Umek | 4e75ce6 | 2018-06-12 08:03:37 +0200 | [diff] [blame] | 1334 | <item property="Messages" value="%d[QCB[i].ml_cnt]"/> |
Robert Rostohar | b3c0636 | 2016-10-19 14:24:56 +0200 | [diff] [blame] | 1335 | <item property="Max Messages" value="%d[QCB[i].max_blocks]"/> |
Robert Rostohar | 4d9f70d | 2016-12-12 13:03:38 +0100 | [diff] [blame] | 1336 | <item property="Message size" value="%d[QCB[i].msg_size]"/> |
Matthias Hertel | b73eaf3 | 2016-07-22 15:18:56 +0200 | [diff] [blame] | 1337 | |
| 1338 | <!-- Waiting thread list --> |
| 1339 | <item cond="QCB[i].wl_cnt" property="Threads waiting (%d[QCB[i].wl_cnt])" value=""> |
| 1340 | |
| 1341 | <list name="j" start="QCB[i].wl_idx" limit="QCB[i].wl_idx + QCB[i].wl_cnt"> |
| 1342 | <list name="k" start="0" limit="TCB._count"> |
Vladimir Umek | ba157cf | 2019-01-09 14:22:15 +0100 | [diff] [blame] | 1343 | <item property="id: %x[TCB[k]._addr] %N[TCB[k].name]" value="Timeout: %d[TCB[k].ex_delay]" cond="(QWL[j].stack_mem == TCB[k].stack_mem) && (TCB[k].ex_delay != -1)"/> |
| 1344 | <item property="id: %x[TCB[k]._addr] %N[TCB[k].name]" value="Timeout: osWaitForever" cond="(QWL[j].stack_mem == TCB[k].stack_mem) && (TCB[k].ex_delay == -1)"/> |
Matthias Hertel | b73eaf3 | 2016-07-22 15:18:56 +0200 | [diff] [blame] | 1345 | </list> |
| 1346 | </list> |
| 1347 | |
| 1348 | </item> |
Robert Rostohar | b3c0636 | 2016-10-19 14:24:56 +0200 | [diff] [blame] | 1349 | |
| 1350 | <!-- Queued messages list--> |
Vladimir Umek | 4e75ce6 | 2018-06-12 08:03:37 +0200 | [diff] [blame] | 1351 | <item cond="QCB[i].ml_cnt" property="Queue (%d[QCB[i].ml_cnt])" value=""> |
Robert Rostohar | b3c0636 | 2016-10-19 14:24:56 +0200 | [diff] [blame] | 1352 | |
Vladimir Umek | 4e75ce6 | 2018-06-12 08:03:37 +0200 | [diff] [blame] | 1353 | <list name="j" start="0" limit="QCB[i].ml_cnt"> |
Vladimir Umek | 31da064 | 2017-05-11 07:23:08 +0200 | [diff] [blame] | 1354 | <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 Rostohar | b3c0636 | 2016-10-19 14:24:56 +0200 | [diff] [blame] | 1355 | </list> |
| 1356 | |
| 1357 | </item> |
Robert Rostohar | 4b6a249 | 2016-11-09 13:34:23 +0100 | [diff] [blame] | 1358 | |
Matthias Hertel | b73eaf3 | 2016-07-22 15:18:56 +0200 | [diff] [blame] | 1359 | </item> |
| 1360 | </list> |
| 1361 | </item> |
| 1362 | |
| 1363 | </out> |
| 1364 | </object> |
| 1365 | </objects> |
Robert Rostohar | 0667b18 | 2016-11-25 21:48:19 +0100 | [diff] [blame] | 1366 | |
| 1367 | <events> |
| 1368 | |
| 1369 | <group name="RTX5 RTOS"> |
| 1370 | <component name="Memory Events" brief="RTX Memory" no="0xF0" prefix="EvrRtx" info="RTX5 RTOS Memory Management Events" /> |
| 1371 | <component name="Kernel Events" brief="RTX Kernel" no="0xF1" prefix="EvrRtx" info="RTX5 RTOS Kernel Events" /> |
Robert Rostohar | c2d7959 | 2018-06-18 11:42:47 +0200 | [diff] [blame] | 1372 | <component name="Thread Events" brief="RTX Thread" no="0xF2" prefix="EvrRtx" info="RTX5 RTOS Thread Events" > |
Vladimir Umek | b780c25 | 2019-02-15 12:49:36 +0100 | [diff] [blame] | 1373 | <state name="Inactive" plot="off" /> |
| 1374 | <state name="Ready" plot="box" /> |
| 1375 | <state name="Running" plot="box" bold="1" unique="1" ssel="1" /> |
| 1376 | <state name="Blocked" plot="line" /> |
| 1377 | <state name="Not-running" plot="line" bold="1" dormant="1" /> |
Robert Rostohar | c2d7959 | 2018-06-18 11:42:47 +0200 | [diff] [blame] | 1378 | </component> |
Robert Rostohar | 83177af | 2018-09-04 10:27:04 +0200 | [diff] [blame] | 1379 | <component name="Generic Wait Events" brief="RTX Wait" no="0xF3" prefix="EvrRtx" info="RTX5 RTOS Generic Wait Events" /> |
| 1380 | <component name="ThreadFlags Events" brief="RTX ThFlags" no="0xF4" prefix="EvrRtx" info="RTX5 RTOS ThreadFlags Events" /> |
| 1381 | <component name="EventFlags Events" brief="RTX EvFlags" no="0xF5" prefix="EvrRtx" info="RTX5 RTOS EventFlags Events" /> |
| 1382 | <component name="Timer Events" brief="RTX Timer" no="0xF6" prefix="EvrRtx" info="RTX5 RTOS Timer Events" /> |
| 1383 | <component name="Mutex Events" brief="RTX Mutex" no="0xF7" prefix="EvrRtx" info="RTX5 RTOS Mutex Events" > |
Jonatan Antoni | ba9cdf3 | 2018-06-29 15:22:59 +0200 | [diff] [blame] | 1384 | <state name="Free" plot="line" color="blue" bold="1" /> |
Robert Rostohar | 83177af | 2018-09-04 10:27:04 +0200 | [diff] [blame] | 1385 | <state name="Used" plot="box" color="blue" /> |
| 1386 | <state name="Error" plot="box" color="red" /> |
Jonatan Antoni | ba9cdf3 | 2018-06-29 15:22:59 +0200 | [diff] [blame] | 1387 | </component> |
Robert Rostohar | 83177af | 2018-09-04 10:27:04 +0200 | [diff] [blame] | 1388 | <component name="Semaphore Events" brief="RTX Semaphore" no="0xF8" prefix="EvrRtx" info="RTX5 RTOS Semaphore Events" /> |
| 1389 | <component name="MemoryPool Events" brief="RTX MemPool" no="0xF9" prefix="EvrRtx" info="RTX5 RTOS MemoryPool Events" /> |
| 1390 | <component name="MessageQueue Events" brief="RTX MsgQueue" no="0xFA" prefix="EvrRtx" info="RTX5 RTOS MessageQueue Events" /> |
Robert Rostohar | 0667b18 | 2016-11-25 21:48:19 +0100 | [diff] [blame] | 1391 | </group> |
| 1392 | |
| 1393 | <event id="0xF000 + 0x00" level="Op" property="MemoryInit" value="mem=%x[val1], size=%d[val2], result=%d[val3]" info=""/> |
| 1394 | <event id="0xF000 + 0x01" level="Op" property="MemoryAlloc" value="mem=%x[val1], size=%d[val2], type=%d[val3], block=%x[val4]" info=""/> |
| 1395 | <event id="0xF000 + 0x02" level="Op" property="MemoryFree" value="mem=%x[val1], block=%x[val2], result=%d[val3]" info=""/> |
| 1396 | <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=""/> |
| 1397 | <event id="0xF000 + 0x04" level="Op" property="MemoryBlockAlloc" value="mp_info=%x[val1], block=%x[val2]" info=""/> |
| 1398 | <event id="0xF000 + 0x05" level="Op" property="MemoryBlockFree" value="mp_info=%x[val1], block=%x[val2], status=%E[val3, rtx_t:status]" info=""/> |
| 1399 | |
Robert Rostohar | c2d7959 | 2018-06-18 11:42:47 +0200 | [diff] [blame] | 1400 | <event id="0xF100 + 0x00" level="Error" property="KernelError" value="status=%E[val1, rtx_t:status]" info="Kernel error occurred."/> |
| 1401 | <event id="0xF100 + 0x01" level="API" property="KernelInitialize" value="" info="osKernelInitialize function was called."/> |
| 1402 | <event id="0xF100 + 0x02" level="Op" property="KernelInitialized" tracking="Reset" value="" info="Kernel was initialized."/> |
| 1403 | <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 Rostohar | 6c83b54 | 2018-09-05 07:53:50 +0200 | [diff] [blame] | 1404 | <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."/> |
| 1405 | <event id="0xF100 + 0x05" level="Detail" property="KernelInfoRetrieved" value="id=%t[val1]" info="Kernel ID as ASCII string."/> |
Vladimir Umek | 300d01d | 2018-06-27 10:43:23 +0200 | [diff] [blame] | 1406 | <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 Rostohar | c2d7959 | 2018-06-18 11:42:47 +0200 | [diff] [blame] | 1407 | <event id="0xF100 + 0x07" level="API" property="KernelStart" value="" info="osKernelStart function was called."/> |
| 1408 | <event id="0xF100 + 0x08" level="Op" property="KernelStarted" value="" info="Kernel execution was started."/> |
| 1409 | <event id="0xF100 + 0x09" level="API" property="KernelLock" value="" info="osKernelLock function was called."/> |
| 1410 | <event id="0xF100 + 0x0A" level="Op" property="KernelLocked" value="lock=%d[val1]" info="Kernel was locked."/> |
| 1411 | <event id="0xF100 + 0x0B" level="API" property="KernelUnlock" value="" info="osKernelUnlock function was called."/> |
| 1412 | <event id="0xF100 + 0x0C" level="Op" property="KernelUnlocked" value="lock=%d[val1]" info="Kernel was unlocked."/> |
| 1413 | <event id="0xF100 + 0x0D" level="API" property="KernelRestoreLock" value="lock=%d[val1]" info="osKernelRestoreLock function was called."/> |
| 1414 | <event id="0xF100 + 0x0E" level="Op" property="KernelLockRestored" value="lock=%d[val1]" info="Kernel lock was restored."/> |
| 1415 | <event id="0xF100 + 0x0F" level="API" property="KernelSuspend" value="" info="osKernelSuspend function was called."/> |
| 1416 | <event id="0xF100 + 0x10" level="Op" property="KernelSuspended" value="sleep_ticks=%d[val1]" info="Kernel execution was suspended."/> |
| 1417 | <event id="0xF100 + 0x11" level="API" property="KernelResume" value="sleep_ticks=%d[val1]" info="osKernelResume function was called."/> |
| 1418 | <event id="0xF100 + 0x12" level="Op" property="KernelResumed" value="" info="Kernel execution was resumed."/> |
| 1419 | <event id="0xF100 + 0x13" level="API" property="KernelGetTickCount" value="count=%d[val1]" info="osKernelGetTickCount function was called."/> |
| 1420 | <event id="0xF100 + 0x14" level="API" property="KernelGetTickFreq" value="freq=%d[val1]" info="osKernelGetTickFreq function was called."/> |
| 1421 | <event id="0xF100 + 0x15" level="API" property="KernelGetSysTimerCount" value="count=%d[val1]" info="osKernelGetSysTimerCount function was called."/> |
| 1422 | <event id="0xF100 + 0x16" level="API" property="KernelGetSysTimerFreq" value="freq=%d[val1]" info="osKernelGetSysTimerFreq function was called."/> |
Robert Rostohar | 0667b18 | 2016-11-25 21:48:19 +0100 | [diff] [blame] | 1423 | |
Robert Rostohar | c2d7959 | 2018-06-18 11:42:47 +0200 | [diff] [blame] | 1424 | <event id="0xF200 + 0x00" level="Error" property="ThreadError" value="thread_id=%x[val1], status=%E[val2, rtx_t:status]" info="Thread error occurred."/> |
| 1425 | <event id="0xF200 + 0x01" level="API" property="ThreadNew" value="func=%S[val1], argument=%x[val2], attr=%x[val3]" info="osThreadNew function was called."/> |
Robert Rostohar | c2d7959 | 2018-06-18 11:42:47 +0200 | [diff] [blame] | 1426 | <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 Rostohar | f28ad45 | 2018-06-19 08:41:08 +0200 | [diff] [blame] | 1427 | <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 Rostohar | c2d7959 | 2018-06-18 11:42:47 +0200 | [diff] [blame] | 1428 | <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."/> |
| 1429 | <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."/> |
| 1430 | <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."/> |
| 1431 | <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."/> |
| 1432 | <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."/> |
| 1433 | <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 Rostohar | 83177af | 2018-09-04 10:27:04 +0200 | [diff] [blame] | 1434 | <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 Rostohar | c2d7959 | 2018-06-18 11:42:47 +0200 | [diff] [blame] | 1435 | <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."/> |
| 1436 | <event id="0xF200 + 0x0C" level="API" property="ThreadYield" value="" info="osThreadYield function was called."/> |
| 1437 | <event id="0xF200 + 0x0D" level="API" property="ThreadSuspend" value="thread_id=%x[val1]" info="osThreadSuspend function was called."/> |
| 1438 | <event id="0xF200 + 0x0E" level="Op" property="ThreadSuspended" state="Blocked" handle="val1" value="thread_id=%x[val1]" info="Thread execution was suspended."/> |
| 1439 | <event id="0xF200 + 0x0F" level="API" property="ThreadResume" value="thread_id=%x[val1]" info="osThreadResume function was called."/> |
| 1440 | <event id="0xF200 + 0x10" level="Op" property="ThreadResumed" state="Ready" handle="val1" value="thread_id=%x[val1]" info="Thread execution was resumed."/> |
| 1441 | <event id="0xF200 + 0x11" level="API" property="ThreadDetach" value="thread_id=%x[val1]" info="osThreadDetach function was called."/> |
| 1442 | <event id="0xF200 + 0x12" level="Op" property="ThreadDetached" value="thread_id=%x[val1]" info="Thread was detached."/> |
| 1443 | <event id="0xF200 + 0x13" level="API" property="ThreadJoin" value="thread_id=%x[val1]" info="osThreadJoin function was called."/> |
| 1444 | <event id="0xF200 + 0x14" level="Op" property="ThreadJoinPending" value="thread_id=%x[val1]" info="Thread join is pending."/> |
| 1445 | <event id="0xF200 + 0x15" level="Op" property="ThreadJoined" value="thread_id=%x[val1]" info="Thread joined."/> |
Robert Rostohar | 83177af | 2018-09-04 10:27:04 +0200 | [diff] [blame] | 1446 | <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."/> |
| 1447 | <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."/> |
| 1448 | <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 Rostohar | c2d7959 | 2018-06-18 11:42:47 +0200 | [diff] [blame] | 1449 | <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."/> |
| 1450 | <event id="0xF200 + 0x1A" level="API" property="ThreadExit" value="" info="osThreadExit function was called."/> |
| 1451 | <event id="0xF200 + 0x1B" level="API" property="ThreadTerminate" value="thread_id=%x[val1]" info="osThreadTerminate function was called."/> |
| 1452 | <event id="0xF200 + 0x1C" level="Op" property="ThreadDestroyed" tracking="Stop" state="Inactive" handle="val1" value="thread_id=%x[val1]" info="Thread execution was terminated."/> |
| 1453 | <event id="0xF200 + 0x1D" level="API" property="ThreadGetCount" value="count=%d[val1]" info="osThreadGetCount function was called and number of active threads was retrieved."/> |
| 1454 | <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 Rostohar | 0667b18 | 2016-11-25 21:48:19 +0100 | [diff] [blame] | 1455 | |
Robert Rostohar | 83177af | 2018-09-04 10:27:04 +0200 | [diff] [blame] | 1456 | <event id="0xF400 + 0x00" level="Error" property="ThreadFlagsError" value="thread_id=%x[val1], status=%E[val2, rtx_t:status]" info="Thread flags error occurred."/> |
| 1457 | <event id="0xF400 + 0x01" level="API" property="ThreadFlagsSet" value="thread_id=%x[val1], flags=%x[val2]" info="osThreadFlagsSet function was called."/> |
| 1458 | <event id="0xF400 + 0x02" level="Op" property="ThreadFlagsSetDone" value="thread_id=%x[val1], thread_flags=%x[val2]" info="Thread flags were set."/> |
| 1459 | <event id="0xF400 + 0x03" level="API" property="ThreadFlagsClear" value="flags=%x[val1]" info="osThreadFlagsClear function was called."/> |
| 1460 | <event id="0xF400 + 0x04" level="Op" property="ThreadFlagsClearDone" value="thread_flags=%x[val1]" info="Thread flags were cleared."/> |
| 1461 | <event id="0xF400 + 0x05" level="API" property="ThreadFlagsGet" value="thread_flags=%x[val1]" info="osThreadFlagsGet function was called and thread flags were retrieved."/> |
| 1462 | <event id="0xF400 + 0x06" level="API" property="ThreadFlagsWait" value="flags=%x[val1], options=%x[val2], timeout=%d[val3]" info="osThreadFlagsWait function was called."/> |
| 1463 | <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."/> |
Robert Rostohar | 68e535d | 2018-09-12 08:53:50 +0200 | [diff] [blame] | 1464 | <event id="0xF400 + 0x08" level="Op" property="ThreadFlagsWaitTimeout" value="thread_id=%x[val1]" info="Waiting for thread flags timed out."/> |
| 1465 | <event id="0xF400 + 0x09" level="Op" property="ThreadFlagsWaitCompleted" value="flags=%x[val1], options=%x[val2], thread_flags=%x[val3], thread_id=%x[val4]" info="Wait for thread flags completed."/> |
Robert Rostohar | 83177af | 2018-09-04 10:27:04 +0200 | [diff] [blame] | 1466 | <event id="0xF400 + 0x0A" level="Op" property="ThreadFlagsWaitNotCompleted" value="flags=%x[val1], options=%x[val2]" info="Wait for thread flags not completed."/> |
Robert Rostohar | 0667b18 | 2016-11-25 21:48:19 +0100 | [diff] [blame] | 1467 | |
Robert Rostohar | 68e535d | 2018-09-12 08:53:50 +0200 | [diff] [blame] | 1468 | <event id="0xF300 + 0x00" level="Error" property="DelayError" value="status=%E[val1, rtx_t:status]" info="osDelay/osDelayUntil error occurred."/> |
| 1469 | <event id="0xF300 + 0x01" level="API" property="Delay" value="ticks=%d[val1]" info="osDelay function was called."/> |
| 1470 | <event id="0xF300 + 0x02" level="API" property="DelayUntil" value="ticks=%d[val1]" info="osDelayUntil function was called."/> |
| 1471 | <event id="0xF300 + 0x03" level="Op" property="DelayStarted" value="ticks=%d[val1]" info="osDelay started."/> |
| 1472 | <event id="0xF300 + 0x04" level="Op" property="DelayUntilStarted" value="ticks=%d[val1]" info="osDelayUntil started."/> |
| 1473 | <event id="0xF300 + 0x05" level="Op" property="DelayCompleted" value="thread_id=%x[val1]" info="osDelay/osDelayUntil completed."/> |
Robert Rostohar | 0667b18 | 2016-11-25 21:48:19 +0100 | [diff] [blame] | 1474 | |
Robert Rostohar | 83177af | 2018-09-04 10:27:04 +0200 | [diff] [blame] | 1475 | <event id="0xF600 + 0x00" level="Error" property="TimerError" value="timer_id=%x[val1], status=%E[val2, rtx_t:status]" info="Timer error occurred."/> |
| 1476 | <event id="0xF600 + 0x01" level="Op" property="TimerCallback" value="func=%S[val1], argument=%x[val2]" info="Timer callback function was called."/> |
| 1477 | <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."/> |
| 1478 | <event id="0xF600 + 0x04" level="Op" property="TimerCreated" value="timer_id=%x[val1]" info="Timer object was created."/> |
| 1479 | <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."/> |
| 1480 | <event id="0xF600 + 0x07" level="API" property="TimerStart" value="timer_id=%x[val1], ticks=%d[val2]" info="osTimerStart function was called."/> |
| 1481 | <event id="0xF600 + 0x08" level="Op" property="TimerStarted" value="timer_id=%x[val1]" info="Timer execution was started."/> |
| 1482 | <event id="0xF600 + 0x09" level="API" property="TimerStop" value="timer_id=%x[val1]" info="osTimerStop function was called."/> |
| 1483 | <event id="0xF600 + 0x0A" level="Op" property="TimerStopped" value="timer_id=%x[val1]" info="Timer execution was stopped."/> |
| 1484 | <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."/> |
| 1485 | <event id="0xF600 + 0x0C" level="API" property="TimerDelete" value="timer_id=%x[val1]" info="osTimerDelete function was called."/> |
| 1486 | <event id="0xF600 + 0x0D" level="Op" property="TimerDestroyed" value="timer_id=%x[val1]" info="Timer object was deleted."/> |
Robert Rostohar | 0667b18 | 2016-11-25 21:48:19 +0100 | [diff] [blame] | 1487 | |
Robert Rostohar | 83177af | 2018-09-04 10:27:04 +0200 | [diff] [blame] | 1488 | <event id="0xF500 + 0x00" level="Error" property="EventFlagsError" value="ef_id=%x[val1], status=%E[val2, rtx_t:status]" info="Event flags error occurred."/> |
| 1489 | <event id="0xF500 + 0x01" level="API" property="EventFlagsNew" value="attr=%x[val1]" info="osEventFlagsNew function was called."/> |
| 1490 | <event id="0xF500 + 0x03" level="Op" property="EventFlagsCreated" value="ef_id=%x[val1]" info="Event flags object was created."/> |
| 1491 | <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."/> |
| 1492 | <event id="0xF500 + 0x06" level="API" property="EventFlagsSet" value="ef_id=%x[val1], flags=%x[val2]" info="osEventFlagsSet function was called."/> |
| 1493 | <event id="0xF500 + 0x07" level="Op" property="EventFlagsSetDone" value="ef_id=%x[val1], event_flags=%x[val2]" info="Event flags were set."/> |
| 1494 | <event id="0xF500 + 0x08" level="API" property="EventFlagsClear" value="ef_id=%x[val1], flags=%x[val2]" info="osEventFlagsClear function was called."/> |
| 1495 | <event id="0xF500 + 0x09" level="Op" property="EventFlagsClearDone" value="ef_id=%x[val1], event_flags=%x[val2]" info="Event flags were cleared."/> |
| 1496 | <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."/> |
| 1497 | <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."/> |
| 1498 | <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."/> |
| 1499 | <event id="0xF500 + 0x0D" level="Op" property="EventFlagsWaitTimeout" value="ef_id=%x[val1]" info="Event flags wait timed out."/> |
| 1500 | <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."/> |
| 1501 | <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."/> |
| 1502 | <event id="0xF500 + 0x10" level="API" property="EventFlagsDelete" value="ef_id=%x[val1]" info="osEventFlagsDelete function was called."/> |
| 1503 | <event id="0xF500 + 0x11" level="Op" property="EventFlagsDestroyed" value="ef_id=%x[val1]" info="Event flags object was deleted."/> |
Robert Rostohar | 0667b18 | 2016-11-25 21:48:19 +0100 | [diff] [blame] | 1504 | |
Robert Rostohar | 83177af | 2018-09-04 10:27:04 +0200 | [diff] [blame] | 1505 | <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."/> |
| 1506 | <event id="0xF700 + 0x01" level="API" property="MutexNew" value="attr=%x[val1]" info="osMutexNew function was called"/> |
| 1507 | <event id="0xF700 + 0x03" level="Op" property="MutexCreated" tracking="Start" state="Free" handle="val1" value="mutex_id=%x[val1]" info="Mutex object was created"/> |
| 1508 | <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."/> |
| 1509 | <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."/> |
| 1510 | <event id="0xF700 + 0x07" level="Op" property="MutexAcquirePending" value="mutex_id=%x[val1], timeout=%d[val2]" info="Mutex object acquire is pending."/> |
| 1511 | <event id="0xF700 + 0x08" level="Op" property="MutexAcquireTimeout" value="mutex_id=%x[val1]" info="Mutex object acquire timed out."/> |
| 1512 | <event id="0xF700 + 0x09" level="Op" property="MutexAcquired" value="mutex_id=%x[val1], lock=%d[val2]" info="Mutex object was acquired."/> |
| 1513 | <event id="0xF700 + 0x0A" level="Op" property="MutexNotAcquired" value="mutex_id=%x[val1]" info="Mutex object was not acquired."/> |
| 1514 | <event id="0xF700 + 0x0B" level="API" property="MutexRelease" state="Free" handle="val1" value="mutex_id=%x[val1]" info="osMutexRelease function was called."/> |
| 1515 | <event id="0xF700 + 0x0C" level="Op" property="MutexReleased" value="mutex_id=%x[val1], lock=%d[val2]" info="Mutex object was released."/> |
| 1516 | <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."/> |
| 1517 | <event id="0xF700 + 0x0E" level="API" property="MutexDelete" value="mutex_id=%x[val1]" info="osMutexDelete function was called."/> |
| 1518 | <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 Rostohar | 0667b18 | 2016-11-25 21:48:19 +0100 | [diff] [blame] | 1519 | |
Robert Rostohar | 83177af | 2018-09-04 10:27:04 +0200 | [diff] [blame] | 1520 | <event id="0xF800 + 0x00" level="Error" property="SemaphoreError" value="semaphore_id=%x[val1], status=%E[val2, rtx_t:status]" info="Semaphore error occurred."/> |
| 1521 | <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."/> |
| 1522 | <event id="0xF800 + 0x03" level="Op" property="SemaphoreCreated" value="semaphore_id=%x[val1]" info="Semaphore object was created."/> |
| 1523 | <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."/> |
| 1524 | <event id="0xF800 + 0x06" level="API" property="SemaphoreAcquire" value="semaphore_id=%x[val1], timeout=%d[val2]" info="osSemaphoreAcquire function was called."/> |
| 1525 | <event id="0xF800 + 0x07" level="Op" property="SemaphoreAcquirePending" value="semaphore_id=%x[val1], timeout=%d[val2]" info="Semaphore object acquire is pending."/> |
| 1526 | <event id="0xF800 + 0x08" level="Op" property="SemaphoreAcquireTimeout" value="semaphore_id=%x[val1]" info="Semaphore object acquire timed out."/> |
| 1527 | <event id="0xF800 + 0x09" level="Op" property="SemaphoreAcquired" value="semaphore_id=%x[val1], tokens=%d[val2]" info="Semaphore object was acquired."/> |
| 1528 | <event id="0xF800 + 0x0A" level="Op" property="SemaphoreNotAcquired" value="semaphore_id=%x[val1]" info="Semaphore object was not acquired."/> |
| 1529 | <event id="0xF800 + 0x0B" level="API" property="SemaphoreRelease" value="semaphore_id=%x[val1]" info="osSemaphoreRelease function was called."/> |
| 1530 | <event id="0xF800 + 0x0C" level="Op" property="SemaphoreReleased" value="semaphore_id=%x[val1], tokens=%d[val2]" info="Semaphore object was released."/> |
| 1531 | <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."/> |
| 1532 | <event id="0xF800 + 0x0E" level="API" property="SemaphoreDelete" value="semaphore_id=%x[val1]" info="osSemaphoreDelete function was called."/> |
| 1533 | <event id="0xF800 + 0x0F" level="Op" property="SemaphoreDestroyed" value="semaphore_id=%x[val1]" info="Semaphore object was deleted."/> |
| 1534 | |
| 1535 | <event id="0xF900 + 0x00" level="Error" property="MemoryPoolError" value="mp_id=%x[val1], status=%E[val2, rtx_t:status]" info="Memory pool error occurred."/> |
| 1536 | <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."/> |
| 1537 | <event id="0xF900 + 0x03" level="Op" property="MemoryPoolCreated" value="mp_id=%x[val1]" info="Memory Pool object was created"/> |
| 1538 | <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."/> |
| 1539 | <event id="0xF900 + 0x06" level="API" property="MemoryPoolAlloc" value="mp_id=%x[val1], timeout=%d[val2]" info="osMemoryPoolAlloc function was called."/> |
| 1540 | <event id="0xF900 + 0x07" level="Op" property="MemoryPoolAllocPending" value="mp_id=%x[val1], timeout=%d[val2]" info="Memory pool allocation is pending."/> |
| 1541 | <event id="0xF900 + 0x08" level="Op" property="MemoryPoolAllocTimeout" value="mp_id=%x[val1]" info="Memory pool allocation timed out."/> |
| 1542 | <event id="0xF900 + 0x09" level="Op" property="MemoryPoolAllocated" value="mp_id=%x[val1], block=%x[val2]" info="Memory pool was allocated."/> |
| 1543 | <event id="0xF900 + 0x0A" level="Op" property="MemoryPoolAllocFailed" value="mp_id=%x[val1]" info="Memory pool was not allocated."/> |
| 1544 | <event id="0xF900 + 0x0B" level="API" property="MemoryPoolFree" value="mp_id=%x[val1], block=%x[val2]" info="osMemoryPoolFree function was called."/> |
| 1545 | <event id="0xF900 + 0x0C" level="Op" property="MemoryPoolDeallocated" value="mp_id=%x[val1], block=%x[val2]" info="Memory pool was deallocated."/> |
| 1546 | <event id="0xF900 + 0x0D" level="Op" property="MemoryPoolFreeFailed" value="mp_id=%x[val1], block=%x[val2]" info="Memory pool was not deallocated."/> |
| 1547 | <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."/> |
| 1548 | <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."/> |
| 1549 | <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."/> |
| 1550 | <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."/> |
| 1551 | <event id="0xF900 + 0x12" level="API" property="MemoryPoolDelete" value="mp_id=%x[val1]" info="osMemoryPoolDelete function was called."/> |
| 1552 | <event id="0xF900 + 0x13" level="Op" property="MemoryPoolDestroyed" value="mp_id=%x[val1]" info="Memory pool object was deleted."/> |
| 1553 | |
| 1554 | <event id="0xFA00 + 0x00" level="Error" property="MessageQueueError" value="mq_id=%x[val1], status=%E[val2, rtx_t:status]" info="Message queue error occurred."/> |
| 1555 | <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."/> |
| 1556 | <event id="0xFA00 + 0x03" level="Op" property="MessageQueueCreated" value="mq_id=%x[val1]" info="Message Queue object was created"/> |
| 1557 | <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."/> |
| 1558 | <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."/> |
| 1559 | <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."/> |
| 1560 | <event id="0xFA00 + 0x08" level="Op" property="MessageQueuePutTimeout" value="mq_id=%x[val1]" info="Message put timed out."/> |
| 1561 | <event id="0xFA00 + 0x09" level="Op" property="MessageQueueInsertPending" value="mq_id=%x[val1], msg_ptr=%x[val2]" info="Message insert is pending."/> |
| 1562 | <event id="0xFA00 + 0x0A" level="Op" property="MessageQueueInserted" value="mq_id=%x[val1], msg_ptr=%x[val2]" info="Message was inserted."/> |
| 1563 | <event id="0xFA00 + 0x0B" level="Op" property="MessageQueueNotInserted" value="mq_id=%x[val1], msg_ptr=%x[val2]" info="Message was not inserted"/> |
| 1564 | <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."/> |
| 1565 | <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."/> |
| 1566 | <event id="0xFA00 + 0x0E" level="Op" property="MessageQueueGetTimeout" value="mq_id=%x[val1]" info="Message get timed out."/> |
| 1567 | <event id="0xFA00 + 0x0F" level="Op" property="MessageQueueRetrieved" value="mq_id=%x[val1], msg_ptr=%x[val2]" info="Message was retrieved."/> |
| 1568 | <event id="0xFA00 + 0x10" level="Op" property="MessageQueueNotRetrieved" value="mq_id=%x[val1], msg_ptr=%x[val2]" info="Message was not retrieved."/> |
| 1569 | <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."/> |
| 1570 | <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."/> |
| 1571 | <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."/> |
| 1572 | <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."/> |
| 1573 | <event id="0xFA00 + 0x15" level="API" property="MessageQueueReset" value="mq_id=%x[val1]" info="osMessageQueueReset function was called."/> |
| 1574 | <event id="0xFA00 + 0x16" level="Op" property="MessageQueueResetDone" value="mq_id=%x[val1]" info="Message queue was reset."/> |
| 1575 | <event id="0xFA00 + 0x17" level="API" property="MessageQueueDelete" value="mq_id=%x[val1]" info="osMessageQueueDelete function was called."/> |
| 1576 | <event id="0xFA00 + 0x18" level="Op" property="MessageQueueDestroyed" value="mq_id=%x[val1]" info="Message queue object was deleted."/> |
Robert Rostohar | 0667b18 | 2016-11-25 21:48:19 +0100 | [diff] [blame] | 1577 | |
| 1578 | </events> |
Matthias Hertel | b73eaf3 | 2016-07-22 15:18:56 +0200 | [diff] [blame] | 1579 | </component_viewer> |