CMSIS-RTOS: RTX Implementation

| CMSIS-RTOS Version 1.03 Real-Time Operating System: API and RTX Reference Implementation.

- Main Page
- Usage and Description
- Reference

All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
RTX Implementation

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.
- 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 Apache-2.0 license and can be freely distributed with project templates.

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

Applications frequently require several concurrent activities. RTX can manage multiple concurrent activities at the time when they are needed. Each activity gets a separate thread which executes a specific task and this simplifies the overall program structure. The CMSIS-RTOS RTX 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 CMSIS-RTOS RTX 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.

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 CMSIS-RTOS RTX for the user application. Refer to Create an RTX Project for more information.

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

Attributes of the CMSIS-RTOS RTX implementation:

- Provides the complete functions specified for a CMSIS-RTOS with the exception of the function osWait.
- Interrupt Service Routines (ISR) may call some CMSIS-RTOS RTX functions.
- Configurations options for Thread Stack. Refer to Thread Configuration 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 Configuration for more information.

The following sections provide further details:

- Theory of Operation : provides general information about the operation of CMSIS-RTOS RTX.
- Directory Structure and File Overview : explains the directories and files that are supplied as part of CMSIS-RTOS RTX.
- Technical Data : lists hardware requirements and limitations such as number of concurrent threads.
- MISRA-C:2004 Compliance Exceptions : describes the violations to the MISRA standard.
- Create an RTX Project : Provides instructions for writing and debugging applications with CMSIS-RTOS RTX.
- Configure RTX : Describes configuration parameters of CMSIS-RTOS RTX.
- RTX Tutorial : Is an in-depth tutorial that can be used with any hardware to get a better understanding of the concepts and use cases of a real-time operating system.
- Building the RTX Library : Describes how to build your own CMSIS-RTOS RTX library.