One of the most popular real-time operating systems in recent years is FreeRTOS; and many STM32 developers use it successfully in their STM32 designs. FreeRTOS is a free-of-charge lightweight RTOS, offering threading capabilities on Cortex-M devices, including STM32.
While commercial RTOS’es may support more advanced capabilities, FreeRTOS is good enough for many; and hence its popularity considering its price. It is probably the most widely used RTOS for microcontrollers by now. Are you too using FreeRTOS on STM32? Great, but don’t be blind!
Since FreeRTOS adds RTOS capabilities like tasks, timers, queues or semphores; developers need to study the RTOS state of those when debugging. When stopping on a breakpoint, it is for example important to be able to see what tasks are currently running, what the semaphore status are, are there any objects in a queue?, etc.
And so, being able to “see” into the RTOS is very important for efficient debugging when using a real-time operating system. FreeRTOS developers thus need to have a FreeRTOS-aware debugger that show the different FreeRTOS object states in debugger GUI views.
Some professional STM32 debuggers, such as Atollic TrueSTUDIO, include native support for FreeRTOS on STM32, offering RTOS-aware kernel views for FreeRTOS objects, including debugger views visualizing task state, timer state, and semaphore and queue state. By using a debugger with built-in FreeRTOS support, you can more easily debug STM32 applications built on top of FreeRTOS.
Using an RTOS like FreeRTOS in your embedded application adds a lot of flexibility and power to the developer; and the most important benefit may arguably be that logic can be separated more logically in tasks, running independently of each other. That may provide for a simpler, more modular software design, with less “spaghetti code” where different types of logic are mixed together.
For more information on STM32 development and debugging, including RTOS debug support on STM32, read this white paper: