AnsweredAssumed Answered

FreeRTOS TAD plug-in Task list view empty

Question asked by Valentin Nechunaev on Nov 22, 2018
Latest reply on Nov 22, 2018 by Daniel Chen

Greetings! I have some trouble with TAD for FreeRTOS on MCUExpresso IDE ( v10.2.1 [Build 795] [2018-07-25] ).

I use FreeRTOS V10.1.1.

I see nothing in Task list view, but other views (Heap, queue, timer) and threads visualisation works fine.

I`ve see to console and found this:

 

Output of TAD:

14:43:19.498 INFO: [TadModel] DSF session ID 0 has started.
14:43:38.212 INFO: [TadState] TAD state changed: DEBUG_STARTED -> DEBUG_INIT_0 (SUSPENDED, USER_REQUEST)
14:43:39.476 INFO: [TadState] TAD state changed: DEBUG_INIT_0 -> DEBUG_INIT_1 (RESUMED, USER_REQUEST)
14:43:39.746 INFO: [TadState] TAD state changed: DEBUG_INIT_1 -> DEBUG_SUSPENDED (SUSPENDED, BREAKPOINT)
14:43:43.546 INFO: [TadState] TAD state changed: DEBUG_SUSPENDED -> DEBUG_RESUMED (RESUMED, USER_REQUEST)
14:43:46.906 INFO: [TadState] TAD state changed: DEBUG_RESUMED -> READY (SUSPENDED, SIGNAL)
14:43:47.46 INFO: [Benchmark] Loading data for "Heap Usage" has started.
14:43:48.275 ERROR: [TadFactory] Reading exception during: "readLongAtAddressSafely(0x100059e0, QueueDefinition.pcTail)"
14:43:49.278 ERROR: [TadFactory] Reading exception during: "readLongAtAddressSafely(0x100059e0, QueueDefinition.u.pcReadFrom)"
14:43:50.920 ERROR: [TaskFactory] Cannot read information from "pxReadyTasksLists[0]".
14:43:52.85 ERROR: [TaskFactory] Cannot read information from "pxReadyTasksLists[1]".
14:43:53.237 ERROR: [TaskFactory] Cannot read information from "pxReadyTasksLists[2]".
14:43:54.496 ERROR: [TaskFactory] Cannot read information from "xSuspendedTaskList".
14:43:54.615 INFO: [HeapFactory] Heap type (memory allocation scheme) has been identified from FreeRTOSDebugConfig structure (FreeRTOSDebugConfig[5]) as Heap type #4.
14:43:54.735 INFO: [Benchmark] Loading data for "Heap Usage" took 7689 ms.
14:43:56.248 INFO: [Benchmark] Loading data for "Timer List" has started.
14:43:56.294 INFO: [Benchmark] Loading data for "Timer List" took 46 ms.
14:43:58.90 INFO: [Benchmark] Loading data for "Queue List" has started.
14:43:58.90 INFO: [Benchmark] Loaded data for "Queue List" from cache.
14:43:59.964 INFO: [Benchmark] Loading data for "Task List" has started.
14:44:01.142 ERROR: [TaskFactory] Cannot read information from "pxReadyTasksLists[0]".
14:44:02.319 ERROR: [TaskFactory] Cannot read information from "pxReadyTasksLists[1]".
14:44:03.462 ERROR: [TaskFactory] Cannot read information from "pxReadyTasksLists[2]".
14:44:04.710 ERROR: [TaskFactory] Cannot read information from "xSuspendedTaskList".
14:44:04.768 INFO: [Benchmark] Loading data for "Task List" took 4804 ms.

 And a part of output of GDB server:

443,709 273-data-evaluate-expression "(((struct tskTaskControlBlock *) 0x10000e3c)->xEventListItem.pvContainer)"
443,720 273^error,msg="There is no member named pvContainer."

So, problem that is list elem struct defenition in FreeRTOS 10 (list.h) has no member "pvContainer", but have "pxContainer":

struct xLIST_ITEM
{
   listFIRST_LIST_ITEM_INTEGRITY_CHECK_VALUE
   configLIST_VOLATILE TickType_t xItemValue; 
   struct xLIST_ITEM * configLIST_VOLATILE pxNext; 
   struct xLIST_ITEM * configLIST_VOLATILE pxPrevious; 
   void * pvOwner; 
   struct xLIST * configLIST_VOLATILE pxContainer
   listSECOND_LIST_ITEM_INTEGRITY_CHECK_VALUE 
};
typedef struct xLIST_ITEM ListItem_t;

Is that a bug of TAD plug-in v1.0.6?

 

Best regards, Valentin Nechunaev.

Outcomes