Introduction
FreeRTOS is a real time operating system for embedded devices that don't equip MMU (no virtual memory)
In order to use FreeRTOS, you have to port FreeRTOS to the specific platform. Fortunately, there existed lots of FreeRTOS ports, such as for STM32F103
FreeRTOS
-
FreeRTOS scheduler
FreeRTOS scheudler can be used as a preemptive priority based scheduler. The scheduler maintains serveral task lists, each task list is associated with a priority. In the STM32CubeMX example, there are
#define configMAX_PRIORITIES ( 7 ) // defined in FreeRTOSConfig.h
7 priorities.
Therefore, the FreeRTOS has 7 thread ready lists. It also has 2 delayed task lists, 1 pending ready list, 1 suspended thread list and 1 waiting terminated list.