FreeRTOS scheduling is hard in as much at can be difficult to decide how to configure it. I wanted to try and figure out the options.
The popular real-time operating system provides the configUSE_TIME_SLICING
and configUSE_PREEMPTION
as settings values. You can add them to your FreeRTOSConfig.h
file Tasks themselves can be assigned priority values, and there are API calls to allows tasks to sleep, to yield up the CPU, and be suspended and subsequently resumed.