CMSIS-RTOS2  Version 2.1.3
Real-Time Operating System: API and RTX Reference Implementation
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Revision History

CMSIS-RTOS API Version 2

Version Description
V2.1.3 Additional functions allowed to be called from Interrupt Service Routines:
V2.1.2 Additional functions allowed to be called from Interrupt Service Routines:
V2.1.1

Additional functions allowed to be called from Interrupt Service Routines:

Changed Kernel Tick type to uint32_t:

V2.1.0

Support for critical and uncritical sections (nesting safe):

Updated Thread Flags and Event Flags:

  • changed flags parameter and return type from int32_t to uint32_t
V2.0.0 New API Version 2.0 available.
V1.02 - only documentation changes Added: Overview of the CMSIS-RTOS Validation Software Pack.
Clarified: Behavior of Timeout Value.
V1.02 Added: New control functions for short timeouts in microsecond resolution osKernelSysTick, osKernelSysTickFrequency, osKernelSysTickMicroSec.
Removed: osSignalGet. fv
V1.01 Added capabilities for C++, kernel initialization and object deletion.
Prepared for C++ class interface. In this context to const attribute has been moved from osXxxxDef_t typedefs to the osXxxxDef macros.
Added: osTimerDelete, osMutexDelete, osSemaphoreDelete.
Added: osKernelInitialize that prepares the kernel for object creation.
V1.00 First official Release.
Added: osKernelStart; starting 'main' as a thread is now an optional feature.
Semaphores have now the standard behavior.
osTimerCreate does no longer start the timer. Added: osTimerStart (replaces osTimerRestart).
Changed: osThreadPass is renamed to osThreadYield.
V0.02 Preview Release.

CMSIS-RTOS RTX Version 5

Version Description
V5.5.4
  • Fixed potential register R1 corruption when calling OS functions from threads multiple times with same arguments (when using high level compiler optimizations).
  • Fixed timer interval when periodic timer is restarted.
  • Added Floating-point initialization for Arm C Library.
  • Minor code optimizations in osMessageQueuePut/Get.
V5.5.3
  • CVE-2021-27431 vulnerability mitigation.
  • Added OS Initialization for IAR.
  • Fixed osDelay/osDelayUntil error handling.
  • Fixed Round-Robin (timeout value is not reset when switching to higher priority threads).
  • Fixed osThreadJoin (when terminating thread which is waiting to be joined).
  • Fixed Message Queue Data allocation size when using object specific memory allocation.
  • Fixed Mutex priority inversion (when mixing mutexes with and without priority inherit).
  • Enhanced stack overrun checking.
  • Updated osKernelResume handling (processing past sleep ticks).
  • Updated configuration (Event Recorder).
  • Reorganized and optimized IRQ modules.
V5.5.2
  • Added support for Cortex-M55.
  • Fixed thread priority restore on mutex acquire timeout (when priority inherit is used).
  • Enhanced support for Armv8-M (specifying thread TrustZone module identifier is optional).
  • Updated configuration default values (Global Dynamic Memory and Thread Stack).
V5.5.1
  • Fixed osMutexRelease issue (thread owning multiple mutexes).
  • Improved osThreadJoin robustness (user programing errors).
V5.5.0
  • Updated and enhanced generated events (reorganized components).
  • Updated configuration (Event Recorder).
  • Updated Component Viewer (improved performance).
  • Minor code optimizations.
V5.4.0
  • Based on CMSIS-RTOS API V2.1.3.
  • Added support for Event Recorder initialization and filter setup.
  • Added support to use RTOS as Event Recorder Time Stamp source.
  • Fixed osDelayUntil longest delay (limited to 2^31-1).
  • Fixed optimization issue when using GCC optimization level 3.
  • Fixed osMemoryPoolAlloc to avoid potential race condition.
  • Restructured exception handling for Cortex-A devices.
  • Minor code optimizations (removed unnecessary checks).
V5.3.0
  • Added Object Memory usage counters.
  • Added support for additional external configuration file.
  • Added user configurable names for system threads (Idle and Timer).
  • Added support for OS sections when using ARMCC5.
  • Added callback for MPU integration (experimental)
  • Increased default thread stack sizes to 256 bytes.
  • Fixed stack context display for running thread in SCVD.
  • Enhanced MISRA Compliance.
V5.2.3
  • Based on CMSIS-RTOS API V2.1.2.
  • Added TrustZone Module Identifier configuration for Idle and Timer Thread.
  • Moved SVC/PendSV handler priority setup from osKernelInitialize to osKernelStart (User Priority Grouping can be updated after osKernelInitialize but before osKernelStart).
  • Corrected SysTick and PendSV handlers for ARMv8-M Baseline.
  • Corrected memory allocation for stack and data when "Object specific Memory allocation" configuration is used.
  • Added support for ARMv8-M IAR compiler.
V5.2.2
  • Corrected IRQ and SVC exception handlers for Cortex-A.
V5.2.1
  • Corrected SysTick and SVC Interrupt Priority for Cortex-M.
V5.2.0
  • Based on CMSIS-RTOS API V2.1.1.
  • Added support for Cortex-A.
  • Using OS Tick API for RTX Kernel Timer Tick.
  • Fixed potential corruption of terminated threads list.
  • Corrected MessageQueue to use actual message length (before padding).
  • Corrected parameters for ThreadEnumerate and MessageQueueInserted events.
  • Timer Thread creation moved to osKernelStart.
V5.1.0
  • Based on CMSIS-RTOS API V2.1.0.
  • Added support for Event recording.
  • Added support for IAR compiler.
  • Updated configuration files: RTX_Config.h for the configuration settings and RTX_config.c for implementing the RTX v5 Specific API.
  • osRtx name-space for RTX specific symbols.
V5.0.0 Initial release compliant to CMSIS-RTOS2.