CMSIS-RTOS RTX  Version 4.51
CMSIS-RTOS RTX: Real-Time Operating System for Cortex-M processor-based devices
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Overview

This version of RTX implements the CMSIS-RTOS API, which is a generic RTOS interface for Cortex-M processor-based devices. The CMSIS-RTOS API provides a standardized interface for software components that require RTOS functionality. This RTX implementation gives therefore serious benefits to the users and the software industry.

  • The unified feature set of the CMSIS-RTOS API simplifies sharing of software components and reduces learning efforts.
  • The underlying RTOS kernel may be changed. This gives you the freedom to choose the RTOS that best fits the requirements.
  • Middleware components that use the CMSIS-RTOS API are RTOS agnostic and CMSIS-RTOS compliant middleware is easier to adapt.
  • This RTX implementation is available under the BSD license and can be freely distributed with project templates.

The RTX CMSIS-RTOS manages the resources of the microcontroller system and implements the concept of parallel threads that run concurrently. There are many advantages of using the RTX CMSIS-RTOS kernel.

Applications frequently require several concurrent activities. RTX can manage multiple concurrent activities at the time when they are needed. Each activity gets separate thread which executes a specific task and this simplifies the overall program structure. The RTX CMSIS-RTOS system is scalable and additional threads can be added easily at a later time. Threads have a priority allowing faster execution of time-critical parts of an user application.

The RTX CMSIS-RTOS offers services needed in many real-time applications, for example, periodical activation of timer functions, memory management, and message exchange between threads with time limits.

RTX_Structure.png
CMSIS-RTOS RTX Structure

Compared to the classic Keil RTX version, the CMSIS-RTOS RTX library is extended with the CMSIS API interface module (source file rt_cmsis.c) which implements the function translation. The header file cmsis_os.h provides the API to the RTX CMSIS-RTOS for the user application. Refer to Using CMSIS-RTOS RTX for more information.

RTX CMSIS-RTOS has several options that are configured with the RTX_Conf_CM.c Configuration File. Refer to Configuration of CMSIS-RTOS RTX for more information.

Attributes of the RTX CMSIS-RTOS implementation:

  • Provides the complete functions specified for a CMSIS-RTOS with the exception of the function osWait.
  • Interrupt Service Routines (ISR) may call most CMSIS-RTOS RTX functions.
  • Configurations options for Thread Stack. Refer to Thread Stack and Processor Mode for more information.
  • Fully deterministic context switching and deadlock avoidance. Refer to Priority Inversion on Resource Sharing for more information.
  • Optional Round-Robin Thread switching with configurable time-slices. Refer to Thread Stack and Processor Mode for more information.

The following sections provide further details: