FreeRTOS TAD does not show Queue and Timers list

cancel
Showing results for 
Search instead for 
Did you mean: 

FreeRTOS TAD does not show Queue and Timers list

799 Views
nixmd
Contributor II

I've installed FreeRTOS TAD plugin in CubeIDE 1.4.1 :smileylaugh:  (Host OS is Linux) to view freeRTOS stats info. I've tried to view Tasks Lists, Queue Lists and TImers List, but I can only view Tasks List (and it also does not show object event data).

Here's an output of TAD log:

"FreeRTOS Task Aware Debugger for GDB" version 1.0.2 (201704260904)
(c) 2016 NXP Semiconductors, Inc.
==================================
09:50:23.798 INFO: [TadModel] DSF session ID 37 has started.
09:50:29.794 INFO: [TadState] TAD state changed: DEBUG_STARTED -> DEBUG_INIT_0 (SUSPENDED, USER_REQUEST)
09:50:29.955 INFO: [TadState] TAD state changed: DEBUG_INIT_0 -> DEBUG_INIT_1 (RESUMED, USER_REQUEST)
09:50:29.965 INFO: [TadState] TAD state changed: DEBUG_INIT_1 -> DEBUG_SUSPENDED (SUSPENDED, BREAKPOINT)
09:50:32.949 INFO: [TadState] TAD state changed: DEBUG_SUSPENDED -> DEBUG_RESUMED (RESUMED, USER_REQUEST)
09:50:34.662 INFO: [TadState] TAD state changed: DEBUG_RESUMED -> READY (SUSPENDED, SIGNAL)
09:50:34.663 INFO: [Benchmark] Loading data for "Queue List" has started.
09:50:36.01 EXCEPTION: [QueueFactory] ReadingException in class "com.nxp.freertos.gdb.tad.controller.queuelist.QueueFactory" at 167. line when calling method "readLongAtAddress(0x200001ec, QueueDefinition, pcTail)"
 com.nxp.freertos.gdb.tad.controller.TadFactory.readLongAtAddress(TadFactory.java:160)
 com.nxp.freertos.gdb.tad.controller.queuelist.QueueFactory.getQueue(QueueFactory.java:167)
 com.nxp.freertos.gdb.tad.controller.queuelist.QueueFactory.getData(QueueFactory.java:109)
 com.nxp.freertos.gdb.tad.model.TadModel$2.execute(TadModel.java:242)
 com.nxp.freertos.gdb.tad.model.TadModel$3.run(TadModel.java:352)
09:50:36.01 ERROR: [TadFactoryData] Could not load data for "Queue List" view! For more information check TAD log
09:50:36.01 INFO: [Benchmark] Loading data for "Queue List" took 1338 ms.
09:52:49.871 INFO: [TadState] TAD state changed: READY -> DEBUG_RESUMED (RESUMED, USER_REQUEST)
09:52:51.368 INFO: [TadState] TAD state changed: DEBUG_RESUMED -> READY (SUSPENDED, SIGNAL)
09:52:51.368 INFO: [Benchmark] Loading data for "Queue List" has started.
09:52:52.376 EXCEPTION: [QueueFactory] ReadingException in class "com.nxp.freertos.gdb.tad.controller.queuelist.QueueFactory" at 167. line when calling method "readLongAtAddress(0x200001ec, QueueDefinition, pcTail)"
 com.nxp.freertos.gdb.tad.controller.TadFactory.readLongAtAddress(TadFactory.java:160)
 com.nxp.freertos.gdb.tad.controller.queuelist.QueueFactory.getQueue(QueueFactory.java:167)
 com.nxp.freertos.gdb.tad.controller.queuelist.QueueFactory.getData(QueueFactory.java:109)
 com.nxp.freertos.gdb.tad.model.TadModel$2.execute(TadModel.java:242)
 com.nxp.freertos.gdb.tad.model.TadModel$3.run(TadModel.java:352)
09:52:52.376 ERROR: [TadFactoryData] Could not load data for "Queue List" view! For more information check TAD log
09:52:52.376 INFO: [Benchmark] Loading data for "Queue List" took 1008 ms.
09:54:05.792 INFO: [TadState] TAD state changed: READY -> DEBUG_RESUMED (RESUMED, USER_REQUEST)
09:54:07.686 INFO: [TadState] TAD state changed: DEBUG_RESUMED -> READY (SUSPENDED, SIGNAL)
09:54:07.686 INFO: [Benchmark] Loading data for "Queue List" has started.
09:54:08.695 EXCEPTION: [QueueFactory] ReadingException in class "com.nxp.freertos.gdb.tad.controller.queuelist.QueueFactory" at 167. line when calling method "readLongAtAddress(0x200001ec, QueueDefinition, pcTail)"
 com.nxp.freertos.gdb.tad.controller.TadFactory.readLongAtAddress(TadFactory.java:160)
 com.nxp.freertos.gdb.tad.controller.queuelist.QueueFactory.getQueue(QueueFactory.java:167)
 com.nxp.freertos.gdb.tad.controller.queuelist.QueueFactory.getData(QueueFactory.java:109)
 com.nxp.freertos.gdb.tad.model.TadModel$2.execute(TadModel.java:242)
 com.nxp.freertos.gdb.tad.model.TadModel$3.run(TadModel.java:352)
09:54:08.695 ERROR: [TadFactoryData] Could not load data for "Queue List" view! For more information check TAD log
09:54:08.695 INFO: [Benchmark] Loading data for "Queue List" took 1009 ms.
09:54:14.27 INFO: [TadModel] DSF session ID 37 has ended.
‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍

And here is output of eclipse log:

!ENTRY org.eclipse.cdt.dsf 4 10005 2020-08-02 09:52:51.376
!MESSAGE Request for monitor: '102^error,msg="There is no member named pcTail."' resulted in an error.
!SUBENTRY 1 org.eclipse.cdt.dsf.gdb 4 10004 2020-08-02 09:52:51.376
!MESSAGE Failed to execute MI command:
-data-evaluate-expression "(((struct QueueDefinition *) 0x200001ec)->pcTail)"
Error message from debugger back end:
There is no member named pcTail.
!STACK 0
java.lang.Exception: There is no member named pcTail.
 at org.eclipse.cdt.dsf.mi.service.command.AbstractMIControl$RxThread.processMIOutput(AbstractMIControl.java:993)
 at org.eclipse.cdt.dsf.mi.service.command.AbstractMIControl$RxThread.run(AbstractMIControl.java:822)

!ENTRY org.eclipse.cdt.dsf 4 10005 2020-08-02 09:54:07.696
!MESSAGE Request for monitor: '133^error,msg="There is no member named pcTail."' resulted in an error.
!SUBENTRY 1 org.eclipse.cdt.dsf.gdb 4 10004 2020-08-02 09:54:07.696
!MESSAGE Failed to execute MI command:
-data-evaluate-expression "(((struct QueueDefinition *) 0x200001ec)->pcTail)"
Error message from debugger back end:
There is no member named pcTail.
!STACK 0
java.lang.Exception: There is no member named pcTail.
 at org.eclipse.cdt.dsf.mi.service.command.AbstractMIControl$RxThread.processMIOutput(AbstractMIControl.java:993)
 at org.eclipse.cdt.dsf.mi.service.command.AbstractMIControl$RxThread.run(AbstractMIControl.java:822)

!ENTRY org.eclipse.cdt.dsf 4 10005 2020-08-02 09:54:26.730
!MESSAGE Request for monitor: '71^error,msg="There is no member named pcTail."' resulted in an error.
!SUBENTRY 1 org.eclipse.cdt.dsf.gdb 4 10004 2020-08-02 09:54:26.730
!MESSAGE Failed to execute MI command:
-data-evaluate-expression "(((struct QueueDefinition *) 0x200001ec)->pcTail)"
Error message from debugger back end:
There is no member named pcTail.
!STACK 0
java.lang.Exception: There is no member named pcTail.
 at org.eclipse.cdt.dsf.mi.service.command.AbstractMIControl$RxThread.processMIOutput(AbstractMIControl.java:993)
 at org.eclipse.cdt.dsf.mi.service.command.AbstractMIControl$RxThread.run(AbstractMIControl.java:822)
‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍

I've to mention that I'm using J-Link as my debugger probe (no need to mention MCU name :smileysilly:)

I appreciate any help from NXP community

Labels (1)
11 Replies

269 Views
leopoldgemsch
Contributor I

Dear all,

we tried also to use this plugin with OpenRTOS V10.2.1 and ended in the same issues.

The Wittenstein plugin works so far but this plugin has no Heap view and the task heaps / states are also not presented in the same nice way as the NXP FreeRTOS TAD plugin does.

Did some of you got the Java source and has fixed the Queue / Timer issues?

0 Kudos

264 Views
ErichS
Senior Contributor III

Hi @leopoldgemsch ,

keep in mind for queues you have to setup the registry and name/register the queues, see section about queues in https://mcuoneclipse.com/2017/03/18/better-freertos-debugging-in-eclipse/

 

I hope this helps,

Erich

0 Kudos

261 Views
leopoldgemsch
Contributor I

Dear Erich,

many thanks for your replay but we have setup the Queue names.
Queues are also listen correctly in StateViewer plugin from Wittenstein but the NXP FreeRTOS TAD plugin (V1.0.2) reports errors as already mentioned in this thread:

09:20:04.696 EXCEPTION: [QueueFactory] ReadingException in class "com.nxp.freertos.gdb.tad.controller.queuelist.QueueFactory" at 167. line when calling method "readLongAtAddress(0x20000008, QueueDefinition, pcTail)"
com.nxp.freertos.gdb.tad.controller.TadFactory.readLongAtAddress(TadFactory.java:160)
com.nxp.freertos.gdb.tad.controller.queuelist.QueueFactory.getQueue(QueueFactory.java:167)
com.nxp.freertos.gdb.tad.controller.queuelist.QueueFactory.getData(QueueFactory.java:109)
com.nxp.freertos.gdb.tad.model.TadModel$2.execute(TadModel.java:242)
com.nxp.freertos.gdb.tad.model.TadModel$3.run(TadModel.java:352)
09:20:04.697 ERROR: [TadFactoryData] Could not load data for "Queue List" view! For more information check TAD log

The current version of NXP's FreeRTOS TAD plugin is unfortunately not available as standalone installer.

0 Kudos

255 Views
ErichS
Senior Contributor III

Hi @leopoldgemsch ,

that TAD plugin V1.0.2 is definitely outdated and does not work with newer FreeRTOS releases, because FreeRTOS has changed the naming of fields (not only for queues), so the plugin won't be able to find needed data.

You would have to use a matching FreeRTOS version (probably V8.0.0, you would have to check what was available back a that time).

What is the device and IDE you are using with OpenRTOS? In any case, because OpenRTOS is a commercial product and you payed for it, you should get support and Wittenstein would be best to provide you updated plugins?

I hope that helps,

Erich

0 Kudos

246 Views
leopoldgemsch
Contributor I

Hi Erich,

I can confirm - as I wrote - the Wittenstein plugin works as expected.

0 Kudos

240 Views
ErichS
Senior Contributor III

Ah, I missed that in the mix of threads, sorry for that.

Still imho this is something for Wittenstein to fix (or add the feature for it). To my knowledge the NXP plugins are for FreeRTOS and their version in the SDK, not for 3rd party dedicated FreeRTOS ports.

Just my view....

0 Kudos

656 Views
ErichS
Senior Contributor III

Hi Abraham,

as I see from the version information (V1.0.2) and date (2016) this is an outdated plugin. That plugin does not deal correctly with later versions of FreeFRTOS as the RTOS has changed internally names of fields/etc.

You can see this from the messages

!MESSAGE Request for monitor: '133^error,msg="There is no member named pcTail."' resulted in an error.
!SUBENTRY 1 org.eclipse.cdt.dsf.gdb 4 10004 2020-08-02 09:54:07.696

If you really want this plugin working with your FreeRTOS, you would need to revert back to an older version of the RTOS (V10.0.0 I believe was active at that time).

The latest version of the plugin is part of the NXP MCUXpresso IDE. And no, to my knowledge there is no package with the plugin. So if you really want to take advantage of this plugin, then you have to use that IDE and an NXP part ;-).

I hope this helps,

Erich

PS: have you read the licensing terms of that plugin you have installed into the CubeIDE (you should!)?

656 Views
nixmd
Contributor II

Oh Hi Erich :smileyshocked:

I actually found this plugin in your blog and I didn't think if none-NXP consumers are not permitted to use it :/

So sad it does not support latest version of FreeRTOS and is not permitted to be used for ST parts.

Sooner or later I may switch to another vendor but for now I've customers that I've to satisfy and continue what I was working on and I can't switch to another IDE with builtin TAD (e.g Keil uVision if it does).

0 Kudos

656 Views
converse
Senior Contributor IV

656 Views
nixmd
Contributor II

Hello Con Verse,

There is a usable plugin called StateViewer from High Integrity Systems which is working (though it is not available to download from its website and the only way to get it is from an eclipse repository), but I wanted to use this plugin from NXP as it has better interface and provides more usable information.

I just came here to find out if there's any workaround to fix this bug but it seems this is not a bug and it's due to using outdated version of this plugin, so I'm not going to burden NXP's community members to solve ST customers problems :]

I Hope they release their FreeRTOS TAD plugin soon (though I doubt)

0 Kudos

656 Views
ErichS
Senior Contributor III

The first comment/feedback on that link says that it does not work with the STM32CubeIDE. Not sure if this still applies, but is from March this year.