13 Mar 2017
CMSIS-RTOS Choices: Keil RTX or FreeRTOS
CMSIS-RTOS is a generic RTOS interface for ARM® Cortex®-M processor-based devices. It provides a standardized API for software components that require RTOS functionality and gives therefore serious benefits to the users and the software industry:
The CMSIS-RTOS v2 API extends the first implementation and addresses the following new requirements:
RTOS choices with compatible API
A lock-in into a specific RTOS kernel introduces some project risk as requirements may change over the project life-cycle, for example, when deterministic interrupt response or support for a new processor core is required. ARM offers therefore various implementations of the CMSIS-RTOS as shown in the following picture.
When using the CMSIS-RTOS API, the underlying RTOS kernel can be easily replaced. Also migration of CMSIS-RTOS v1 to CMSIS-RTOS v2 is simplified with the compatibility layer.
Select RTOS in MDK
All CMSIS-RTOS implementations are provided as Software Pack that simplifies project integration. Keil RTX4 and RTX5 are part of the CMSIS Software Pack. The FreeRTOS implementation is a separate software pack available from www.keil.com/pack, the Pack Installer, or GitHub. The picture below shows the selection of FreeRTOS with the CMSIS-RTOS compliant API or the a native FreeRTOS API. When using the CMSIS-RTOS2 configuration file, the native FreeRTOS API is still available which allows project migration over time.
RTOS Kernel Awareness and Event Recorder
The CMSIS-RTOS implementations are supported in the uVision Debugger with the Component Viewer for kernel awareness and the Event Recorder for analysing the dynamic run-time behaviour. The picture below shows FreeRTOS debugging using the MDK-Lite edition and the uVision Debugger in simulation mode - no target hardware is required.
of your data.