A Real-time operating system (RTOS) is an operating system that executes tasks with predictability and determinism. It is designed to execute tasks in a quick and effective manner. RTOS has a small footprint which makes it suitable for embedded systems, particularly for mission or safety critical systems.
The FreeRTOS open-source project is one of the market leading RTOS available today. Lattice Semiconductor offers FreeRTOS for its RISC-V RX embedded processor. The FreeRTOS software, which includes the FreeRTOS kernel and set of libraries are included in from Lattice Propel 2022.1 onwards. The FreeRTOS software is distributed under MIT license. Refer to FreeRTOS™ Website for further information.
Fixed Priority Pre-emptive Scheduling with Time Slicing - The FreeRTOS kernel implements “Fixed Priority Pre-emptive Scheduling with Time Slicing” scheduling algorithm. The scheduler does not change a task’s priority (hence fixed priority) but does allow user to do so. It supports task pre-emption where a higher priority task (that is ready) can pre-empt a lower priority task. When scheduling ready tasks of equal priority, a time slicing algorithm ensures switching between those tasks on every OS tick.
Implements Idle task with lowest priority - FreeRTOS automatically creates the idle task (with lowest priority) to ensure there is at least one task ready to execute. When there are other user tasks that are ready to execute, the idle task will yield.