|
202 | 202 |
|
203 | 203 | <!-- Ready Tasks --> |
204 | 204 | <readlist name="pxReadyTasksLists" type="List_t" symbol="tasks.c/pxReadyTasksLists" count="__size_of("tasks.c/pxReadyTasksLists")" init="1"/> |
205 | | - |
| 205 | + |
| 206 | + <!-- Read ready lists for each priority --> |
206 | 207 | <list name="i" start="0" limit="pxReadyTasksLists._count"> |
207 | | - <readlist cond="pxReadyTasksLists[i].uxNumberOfItems" name="pxReadyTasks" type="ListItem_t" offset="pxReadyTasksLists[i].pxIndex" next="pxNext"/> |
| 208 | + <!-- Determine address of first item in list, read current item and determine address of next item in list --> |
| 209 | + <calc> n = pxReadyTasksLists[i].xListEnd_pxNext; </calc> |
| 210 | + |
| 211 | + <list name="j" start="0" limit="pxReadyTasksLists[i].uxNumberOfItems"> |
| 212 | + <readlist name="pxReadyTasks" type="ListItem_t" offset="n" count="1"/> |
| 213 | + |
| 214 | + <calc> n = pxReadyTasks[pxReadyTasks._count-1].pxNext; </calc> |
| 215 | + </list> |
208 | 216 | </list> |
209 | 217 |
|
| 218 | + <!-- Read control blocks --> |
210 | 219 | <list name="i" start="0" limit="pxReadyTasks._count"> |
211 | | - <readlist cond="pxReadyTasks[i].pvOwner && !(xSchedulerRunning==1 && (pxReadyTasks[i].pvOwner == pxCurrentTCB))" name="Ready_TCB" type="TCB_t" offset="pxReadyTasks[i].pvOwner"/> |
| 220 | + <readlist name="Ready_TCB" type="TCB_t" offset="pxReadyTasks[i].pvOwner" cond="!(xSchedulerRunning==1 && (pxReadyTasks[i].pvOwner == pxCurrentTCB))"/> |
212 | 221 | </list> |
213 | 222 |
|
214 | 223 | <!-- Process control blocks --> |
|
221 | 230 | </calc> |
222 | 231 | </list> |
223 | 232 |
|
| 233 | + |
224 | 234 | <!-- Pending Ready Tasks --> |
225 | 235 | <read name="xPendingReadyList" type="List_t" symbol="tasks.c/xPendingReadyList"/> |
| 236 | + |
| 237 | + <!-- Determine address of first item in list, read current item and determine address of next item in list --> |
| 238 | + <calc> n = xPendingReadyList.xListEnd_pxNext; </calc> |
226 | 239 |
|
227 | | - <readlist cond="uxCurrentNumberOfTasks && xPendingReadyList.uxNumberOfItems" name="pxPendingReadyTasks" type="ListItem_t" offset="xPendingReadyList.xListEnd_pxNext" next="pxNext"/> |
| 240 | + <list name="j" start="0" limit="xPendingReadyList.uxNumberOfItems"> |
| 241 | + <readlist name="pxPendingReadyTasks" type="ListItem_t" offset="n" count="1"/> |
228 | 242 |
|
| 243 | + <calc> n = pxPendingReadyTasks[pxPendingReadyTasks._count-1].pxNext; </calc> |
| 244 | + </list> |
| 245 | + |
| 246 | + <!-- Read control blocks --> |
229 | 247 | <list name="i" start="0" limit="xPendingReadyList.uxNumberOfItems"> |
230 | 248 | <readlist name="PendingReady_TCB" type="TCB_t" offset="pxPendingReadyTasks[i].pvOwner"/> |
231 | 249 | </list> |
|
240 | 258 | </calc> |
241 | 259 | </list> |
242 | 260 |
|
| 261 | + |
243 | 262 | <!-- Delayed Tasks --> |
244 | 263 | <read name="DelayListAddr" type="uint32_t" symbol="tasks.c/pxDelayedTaskList"/> |
| 264 | + <read name="pxDelayedTaskList" type="List_t" offset="DelayListAddr" cond="DelayListAddr"/> |
| 265 | + |
| 266 | + <!-- Determine address of first item in list, read current item and determine address of next item in list --> |
| 267 | + <calc cond="DelayListAddr"> |
| 268 | + n = pxDelayedTaskList.xListEnd_pxNext; |
| 269 | + </calc> |
245 | 270 |
|
246 | | - <read cond="DelayListAddr" name="pxDelayedTaskList" type="List_t" offset="DelayListAddr"/> |
247 | | - <readlist cond="DelayListAddr" name="pxDelayedTasks" type="ListItem_t" offset="pxDelayedTaskList.xListEnd_pxNext" next="pxNext"/> |
| 271 | + <list name="j" start="0" limit="pxDelayedTaskList.uxNumberOfItems" cond="DelayListAddr"> |
| 272 | + <readlist name="pxDelayedTasks" type="ListItem_t" offset="n" count="1"/> |
248 | 273 |
|
| 274 | + <calc> n = pxDelayedTasks[pxDelayedTasks._count-1].pxNext; </calc> |
| 275 | + </list> |
| 276 | + |
| 277 | + <!-- Read control blocks --> |
249 | 278 | <list name="i" start="0" limit="pxDelayedTaskList.uxNumberOfItems" cond="DelayListAddr"> |
250 | 279 | <readlist name="Delayed_TCB" type="TCB_t" offset="pxDelayedTasks[i].pvOwner"/> |
251 | 280 | </list> |
|
260 | 289 | </calc> |
261 | 290 | </list> |
262 | 291 |
|
| 292 | + |
263 | 293 | <!-- Overflow Delayed Tasks --> |
264 | 294 | <read name="OverflowDelayListAddr" type="uint32_t" symbol="tasks.c/pxOverflowDelayedTaskList"/> |
| 295 | + <read name="pxOverflowDelayedTaskList" type="List_t" offset="OverflowDelayListAddr" cond="OverflowDelayListAddr"/> |
265 | 296 |
|
266 | | - <read cond="OverflowDelayListAddr" name="pxOverflowDelayedTaskList" type="List_t" offset="OverflowDelayListAddr"/> |
267 | | - <readlist cond="OverflowDelayListAddr" name="pxOverflowDelayedTasks" type="ListItem_t" offset="pxOverflowDelayedTaskList.xListEnd_pxNext" next="pxNext"/> |
| 297 | + <!-- Determine address of first item in list, read current item and determine address of next item in list --> |
| 298 | + <calc cond="OverflowDelayListAddr"> |
| 299 | + n = pxOverflowDelayedTaskList.xListEnd_pxNext; |
| 300 | + </calc> |
| 301 | + |
| 302 | + <list name="j" start="0" limit="pxOverflowDelayedTaskList.uxNumberOfItems" cond="OverflowDelayListAddr"> |
| 303 | + <readlist name="pxOverflowDelayedTasks" type="ListItem_t" offset="n" count="1"/> |
268 | 304 |
|
| 305 | + <calc> n = pxOverflowDelayedTasks[pxOverflowDelayedTasks._count-1].pxNext; </calc> |
| 306 | + </list> |
| 307 | + |
| 308 | + <!-- Read control blocks --> |
269 | 309 | <list name="i" start="0" limit="pxOverflowDelayedTaskList.uxNumberOfItems" cond="OverflowDelayListAddr" > |
270 | 310 | <readlist name="OverflowDelayed_TCB" type="TCB_t" offset="pxOverflowDelayedTasks[i].pvOwner"/> |
271 | 311 | </list> |
|
280 | 320 | </calc> |
281 | 321 | </list> |
282 | 322 |
|
| 323 | + |
283 | 324 | <!-- Suspended Tasks (Note: #if (INCLUDE_vTaskSuspend == 1)) --> |
284 | 325 | <read name="xSuspendedTaskList" type="List_t" symbol="tasks.c/xSuspendedTaskList"/> |
285 | 326 |
|
286 | | - <readlist cond="uxCurrentNumberOfTasks && xSuspendedTaskList.uxNumberOfItems" name="pxSuspendedTasks" type="ListItem_t" offset="xSuspendedTaskList.xListEnd_pxNext" next="pxNext"/> |
| 327 | + <!-- Determine address of first item in list, read current item and determine address of next item in list --> |
| 328 | + <calc> n = xSuspendedTaskList.xListEnd_pxNext; </calc> |
287 | 329 |
|
| 330 | + <list name="j" start="0" limit="xSuspendedTaskList.uxNumberOfItems"> |
| 331 | + <readlist name="pxSuspendedTasks" type="ListItem_t" offset="n" count="1"/> |
| 332 | + |
| 333 | + <calc> n = pxSuspendedTasks[pxSuspendedTasks._count-1].pxNext; </calc> |
| 334 | + </list> |
| 335 | + |
| 336 | + <!-- Read control blocks --> |
288 | 337 | <list name="i" start="0" limit="xSuspendedTaskList.uxNumberOfItems"> |
289 | 338 | <readlist name="Suspended_TCB" type="TCB_t" offset="pxSuspendedTasks[i].pvOwner"/> |
290 | 339 | </list> |
|
299 | 348 | </calc> |
300 | 349 | </list> |
301 | 350 |
|
| 351 | + |
302 | 352 | <!-- Tasks Waiting Termination (Note: #if(INCLUDE_vTaskDelete == 1)) --> |
303 | 353 | <read name="xTasksWaitingTermination" type="List_t" symbol="tasks.c/xTasksWaitingTermination"/> |
304 | 354 |
|
305 | | - <readlist cond="uxCurrentNumberOfTasks && xTasksWaitingTermination.uxNumberOfItems" name="pxTasksWaitingTermination" type="ListItem_t" offset="xTasksWaitingTermination.xListEnd_pxNext" next="pxNext"/> |
| 355 | + <!-- Determine address of first item in list, read current item and determine address of next item in list --> |
| 356 | + <calc> n = xTasksWaitingTermination.xListEnd_pxNext; </calc> |
| 357 | + |
| 358 | + <list name="j" start="0" limit="xTasksWaitingTermination.uxNumberOfItems"> |
| 359 | + <readlist name="pxTasksWaitingTermination" type="ListItem_t" offset="n" count="1"/> |
306 | 360 |
|
| 361 | + <calc> n = pxTasksWaitingTermination[pxTasksWaitingTermination._count-1].pxNext; </calc> |
| 362 | + </list> |
| 363 | + |
| 364 | + <!-- Read control blocks --> |
307 | 365 | <list name="i" start="0" limit="xTasksWaitingTermination.uxNumberOfItems"> |
308 | 366 | <readlist name="WaitTermination_TCB" type="TCB_t" offset="pxTasksWaitingTermination[i].pvOwner"/> |
309 | 367 | </list> |
|
318 | 376 | </calc> |
319 | 377 | </list> |
320 | 378 |
|
| 379 | + |
321 | 380 | <!-- Timers --> |
322 | 381 | <read name="TimerListAddr" type="uint32_t" symbol="timers.c/pxCurrentTimerList"/> |
323 | 382 | <read name="pxCurrentTimerList" type="List_t" offset="TimerListAddr" /> |
| 383 | + |
| 384 | + <!-- Determine address of first item in list, read current item and determine address of next item in list --> |
| 385 | + <calc cond="TimerListAddr"> |
| 386 | + n = pxCurrentTimerList.xListEnd_pxNext; |
| 387 | + </calc> |
324 | 388 |
|
325 | | - <readlist cond="TimerListAddr && pxCurrentTimerList.uxNumberOfItems" name="pxCurrentTimers" type="ListItem_t" offset="pxCurrentTimerList.pxIndex" next="pxNext"/> |
| 389 | + <list name="j" start="0" limit="pxCurrentTimerList.uxNumberOfItems" cond="TimerListAddr"> |
| 390 | + <readlist name="pxCurrentTimers" type="ListItem_t" offset="n" count="1"/> |
326 | 391 |
|
| 392 | + <calc> n = pxCurrentTimers[pxCurrentTimers._count-1].pxNext; </calc> |
| 393 | + </list> |
| 394 | + |
| 395 | + <!-- Read control blocks --> |
327 | 396 | <list name="i" start="0" limit="pxCurrentTimers._count"> |
328 | 397 | <readlist cond="pxCurrentTimers[i].pvOwner" name="Timer_CB" type="Timer_t" offset="pxCurrentTimers[i].pvOwner"/> |
329 | 398 | </list> |
|
344 | 413 | </list> |
345 | 414 | </list> |
346 | 415 |
|
| 416 | + |
347 | 417 | <!-- Overflow Timers --> |
348 | 418 | <read name="OverflowTimerListAddr" type="uint32_t" symbol="timers.c/pxOverflowTimerList"/> |
349 | 419 | <read name="pxOverflowTimerList" type="List_t" offset="OverflowTimerListAddr" /> |
350 | 420 |
|
351 | | - <readlist cond="OverflowTimerListAddr && pxOverflowTimerList.uxNumberOfItems" name="pxOverflowTimers" type="ListItem_t" offset="pxOverflowTimerList.pxIndex" next="pxNext"/> |
| 421 | + <!-- Determine address of first item in list, read current item and determine address of next item in list --> |
| 422 | + <calc cond="OverflowTimerListAddr"> |
| 423 | + n = pxOverflowTimerList.xListEnd_pxNext; |
| 424 | + </calc> |
| 425 | + |
| 426 | + <list name="j" start="0" limit="pxOverflowTimerList.uxNumberOfItems" cond="OverflowTimerListAddr"> |
| 427 | + <readlist name="pxOverflowTimers" type="ListItem_t" offset="n" count="1"/> |
352 | 428 |
|
| 429 | + <calc> n = pxOverflowTimers[pxOverflowTimers._count-1].pxNext; </calc> |
| 430 | + </list> |
| 431 | + |
| 432 | + <!-- Read control blocks --> |
353 | 433 | <list name="i" start="0" limit="pxOverflowTimers._count"> |
354 | 434 | <readlist cond="pxOverflowTimers[i].pvOwner" name="OverflowTimer_CB" type="Timer_t" offset="pxOverflowTimers[i].pvOwner"/> |
355 | 435 | </list> |
|
369 | 449 | </calc> |
370 | 450 | </list> |
371 | 451 | </list> |
372 | | - |
| 452 | + |
| 453 | + |
373 | 454 | <!-- Read Queue Registry (Queues, Semaphores, Mutexes) --> |
374 | 455 | <calc cond="__Symbol_exists ("queue.c/xQueueRegistry")"> |
375 | 456 | Queue_REG_Size = __size_of ("queue.c/xQueueRegistry"); |
|
0 commit comments