High density line of STM32 microcontrollers have quite a bunch on features that can be used in user programs. The more features you add to source the more complicated program becomes and this way it starts to be difficult to keep up with all things. Using only main loop and interrupts becomes time consuming task to manage. If you don’t want to struggle in tuning things up manually you can use one of many real time operating systems (RTOS). They are great when you need lots of separate functions to run in parallel so no task would be missed. RTOS scheduler takes care of giving each task a decent time to perform. There are lots of great RTOS systems around. Many of them are free and opensource.
It happens so that I love using FreeRTOS which has quite long history and is flexible enough to fit multiple types of hardware. You can check out my recent demo on Atmega128. I encourage you to give a try to other RTOS systems like ChibiOS, BeRTOS, and many more. But lets stick with FreeRTOS. Simply speaking FreeRTOS is quite simple and easy to use. It has practically most of features you’d look for in RTOS. Some of key features would include preemptive, cooperative and hybrid scheduler, task and co-routine support, queues, semaphores and mutexes for task synchronisation and communication. Many demos, many ports to to get started with. (more…)