FreeRTOS Overview
Introduction
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.
Case-oriented Articles
For platform specific examples and details, refer to the following articles: