CMSIS-RTOS RTX: Overview

| CMSIS-RTOS RTX Version 4.80 CMSIS-RTOS RTX: Real-Time Operating System for Cortex-M processor-based devices

- Main Page
- Usage and Description
- Reference

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.
- 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 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 a CMSIS-RTOS RTX Project for more information.

CMSIS-RTOS RTX has several options that are configured with the RTX_Conf_CM.c file. Refer to Configuration of CMSIS-RTOS 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.