FreeRTOS is a market-leading real-time operating system (RTOS) for microcontrollers and small microprocessors. Distributed freely under the MIT open source license, FreeRTOS includes a kernel and a growing set of libraries suitable for use across all industry sectors. FreeRTOS is built with an emphasis on reliability and ease of use.
MCU+ SDK supports FreeRTOS on M4F CPUs.
SysConfig can be used to configure below modules with FreeRTOS
FreeRTOS source is distributed along with MCU+ SDK and given below are some important files and folders related to FreeRTOS.
Folder/Files | Description |
---|---|
${SDK_INSTALL_PATH}/source/kernel/ | |
dpl/ | APIs to access FreeRTOS features in a OS agnostic way |
${SDK_INSTALL_PATH}/source/kernel/freertos | |
lib/ | FreeRTOS library to link against. Linking to the library in this path enables the application to operate in FreeRTOS mode |
config/ | FreeRTOS and FreeRTOS POSIX configuration header files for different CPUs within a SOC. |
FreeRTOS-Kernel/ | FreeRTOS Kernel source code. MCU+ SDK simply clones the code from FreeRTOS github and does not modify anything in this folder |
FreeRTOS-POSIX/ | FreeRTOS POSIX wrapper source code. MCU+ SDK simply clones the code from FreeRTOS POSIX github and does not modify anything in this folder |
portable/ | MCU+ SDK FreeRTOS porting related files for R5F and M4F |
${SDK_INSTALL_PATH}/source/kernel/freertos/dpl | |
common/ | FreeRTOS DPL APIs that are common across all CPUs |
m4/ | FreeRTOS DPL APIs that are specific to M4F CPUs |
r5/ | FreeRTOS APIs that are specific to R5F CPUs |
In addition to above files, to enable features like HW interrupts, cache, MPU, the FreeRTOS library in MCU+ SDK also shares some code with NORTOS as listed below
Folder/Files | Description |
---|---|
${SDK_INSTALL_PATH}/source/kernel/nortos/common | |
DebugP_shmLogWriter.c DebugP_shmLogReader.c DebugP_uartLogWriter.c DebugP_uartScanf.c DebugP_linuxTraceLogWriter.c DebugP_log.c TimerP.c HeapP_internal.c printf.c AddrTranslateP.c CacheP_null.c | Common files from NORTOS which are also used with FreeRTOS |
${SDK_INSTALL_PATH}/source/kernel/nortos/r5 | |
HwiP_armv7r_vim.c MpuP_armv7r.c CacheP_armv7r.c PmuP_armv7r.c boot_armv7r_asm.S HwiP_armv7r_asm.S MpuP_armv7r_asm.S CacheP_armv7r_asm.S PmuP_armv7r_asm.S | R5F files from NORTOS which are also used with FreeRTOS |
${SDK_INSTALL_PATH}/source/kernel/nortos/m4 | |
MpuP_armv7m.c CycleCounterP_m4.c SysTickTimerP.c | M4F files from NORTOS which are also used with FreeRTOS |
See FreeRTOS usage guidelines for FreeRTOS usage guidelines and comparison to SysBIOS.
Given below are some references to learn more about FreeRTOS.
Document Description | Web link |
---|---|
Easy to read FreeRTOS book | https://www.freertos.org/Documentation/RTOS_book.html |
FreeRTOS user docs | https://www.freertos.org/features.html |
User API reference | https://www.freertos.org/a00106.html |
FreeRTOS core kernel source code | https://github.com/FreeRTOS/FreeRTOS-Kernel |
FreeRTOS core kernel example source code | https://github.com/FreeRTOS/FreeRTOS/tree/master/FreeRTOS |
Additional FreeRTOS.org maintained libraries (POSIX, TCP, Filesystem, …) | https://www.freertos.org/FreeRTOS-Labs/index.html https://www.freertos.org/FreeRTOS-Plus/index.html https://github.com/FreeRTOS |