Francois Berder's blog

Highlighting potential concurrency bugs

Running buggy firmware I recently found myself in the position of debugging a firmware written in C. This firmware was running on a ARM Cortex-M4 with a fair amount of flash and RAM for a microcontroller. The source code amounted to around 10000 lines of code. The firmware relied on FreeRTOS and spawned around a dozen of tasks after initialization. It was also spawning a few more tasks from time to time that ran for short durations.