Over a million developers have joined DZone.
{{announcement.body}}
{{announcement.title}}

FreeRTOS Threads in Eclipse Debug View With SEGGER J-Link and NXP S32 Design Studio

DZone's Guide to

FreeRTOS Threads in Eclipse Debug View With SEGGER J-Link and NXP S32 Design Studio

Having trouble with FreeRTOS threads not showing up? Here is how to fix that with the SEGGER J-Link debug connection and the Eclipse Debug View.

· IoT Zone ·
Free Resource

By default, the FreeRTOS threads do not show up with the SEGGER J-Link debug connection in the Eclipse based NXP S32 Design Studio IDE. But don’t worry —here is how to get it working with SEGGER J-Link debug connection:

FreeRTOS Threads in Eclipse Debug View

FreeRTOS Threads in Eclipse Debug View

This article shows how to enable FreeRTOS thread aware debugging in the NXP S32 Design Studio (S32DS) for ARM. I’m using the version 2018.R1 build 180504:

S32DS 2018.R1 Build 180504

By default, threads are not shown in the Debug view:

Debug view with no FreeRTOS Threads

Debug View With no FreeRTOS Threads

The first thing is to add the following to the SEGGER debug configuration inside S32DS, under ‘Other options’:

-rtos GDBServer/RTOSPlugin_FreeRTOS

Segger other option

This command line will load the tread awareness plugin/DLL for the SEGGER GDB server. Because that plugin is not installed with S32DS, I have to add it to the IDE. The easiest way to get that plugin is to install the J-Link software from segger.com and copy that GDBServer folder where it has been installed it:

GDBServer Plugins

GDBServer Plugins

Then, copy that folder where S32DS has installed the SEGGER JLinkGDBServerCL.exe:

SEGGER GDBServer Plugins in S32DS

With this, when I debug a FreeRTOS application, I have all the FreeRTOS tasks shown in the Eclipse debug view, which makes debugging much, much easier  :

FreeRTOS Threads in Eclipse Debug View

Happy threading!

Topics:
iot ,freertos ,threads ,debug ,eclipse ,tutorial

Published at DZone with permission of

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}