SW4STM32 and SW4Linux fully supports the STM32MP1 asymmetric multicore Cortex/A7+M4 MPUs

   With System Workbench for Linux, Embedded Linux on the STM32MP1 family of MPUs from ST was never as simple to build and maintain, even for newcomers in the Linux world.
And, if you install System Workbench for Linux in System Workbench for STM32 you can seamlessly develop and debug asymmetric applications running partly on Linux, partly on the Cortex-M4.
You can get more information from the ac6-tools website and download two short videos (registration required) highlighting:

System Workbench for STM32

Freertos Debugging

When debugging a freertos based application, I typically saw only the stacktrace etc. of the current thread.

Is it planned, to make sw4stm32 freertos kernel aware?

For now, I take use of the Wittenstein Freertos Stateviewer plugin, so I can see e.g. a list of the threads incl. their prio, stack usage and cpu load.

For kernel awareness like “stacktrace for each thread”, I’d tried a plugin from code confidence, but I have some issues with it (seems to be a bit unstable / unreliable).


The FreeRTOS kernel awareness is planned, but I don’t know the exact release date in 2016.


Thanx for this info, I’ll try it out.

I’d just tried it out now.

  • guilding openocd 0.9.0 from source under Kubuntu 14.04
  • starting openocd, connecting to a Stm32F4 Discovery board (using St-Link for the first)
  • starding a debug session works all out of the box

Then I’d activated the freertos support as described in the openocd manual but get error messages:

Error: FreeRTOS: uxTopUsedPriority is not defined, consult the OpenOCD manual for a work-around

I got this error messages although I have the described workaround in my code:

const int uxTopUsedPriority = configMAX_PRIORITIES;

(and of course, I’d made sure the symbol is neither dropped by the linker nor mangled with C++ linkage et cetera.

Did you get to work this before?


yes. The error depends on the version of FreeRTOS you are using. I think you are using a new version, taht is always the best choice. :-)

I don’t remember exactly when, but there was a change in the name of some FreeRTOS private variables. In particular, if you look at the file task.c you find that the uxTopUsedPriority variable is now namened xTopReadyPriority. To fix this, when I want to use the OpenOCD multitasking support I add a define in the FreeRTOSConfig.h file in order to rename that variable:

#define uxTopUsedPriority xTopReadyPriority

In this way I don’t have to change the soure of FreeRTOS.

Best regards,