Early in this book, we transition to the use of FreeRTOS. Doing so offers a number of advantages, mainly because the programming becomes much simpler and offers greater reliability as a result.
Not all platforms are capable of supporting an RTOS (real-time operating system). Each task within a multi-tasking system requires some stack space to be allocated where variables and return addresses of function calls are stored. There simply isn’t much RAM on an ATmega328, for example, with only 2K. The STM32F103C8T6, on the other hand, has 20K of SRAM available to divide among a reasonable complement of tasks. ...