This article aims to give an overview on FreeRTOS™ and the general details of it's implementation on Toradex System on Modules that feature a Heterogeneous Multicore architecture. Overall, FreeRTOS™ can be run on Toradex SoMS with Cortex M4 and M7 cores.
Why using FreeRTOS on HMP
Accordingly to FreeRTOS official documentation
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 IoT libraries suitable for use across all industry sectors.
Toradex's System on Modules feature NXP/Freescale i.MX SoCs based on i.MX 7 and i.MX 8/8X/8MM/8MP platforms with heterogeneous architectures. These systems offer ARM Cortex-A cores (A53 or A72) for Linux and ARM Cortex-M cores (M4 or M7) for running an RTOS or bare-metal applications. NXP provides FreeRTOS™ along with drivers and examples for each platform. FreeRTOS™ ports are based on NXP's MCUxpresso SDKs for the related System on Chips, empowering developers to leverage real-time capabilities in combination with high-performance processing.
First Steps with FreeRTOS and HMP
Set up the Development Environment by downloading the specific SDK and the GCC toolchain. Refer to Setting Up MCUXpresso SDK and Toolchain for Cortex-M development.
Compile the binary of the demo application as explained in the section Compile your first binary.
Load the compiled binaries to the flash memory as explained in the article How to Load Compiled Binaries into Cortex-M.
Run the application in a simillar way as explained in the articles How to Run a Hello World on the Cortex-M.
For platform specific examples and details, refer to the following articles: