2 \page rtos_revisionHistory Revision History
4 \section GenRTOS2Rev CMSIS-RTOS API Version 2
6 <table class="cmtable" summary="Revision History">
14 Added support for Process Isolation (Functional Safety):
15 - Kernel Management: \ref osKernelProtect, \ref osKernelDestroyClass
16 - Thread Management: \ref osThreadGetClass, \ref osThreadGetZone,<br>
17 \ref osThreadSuspendClass, \ref osThreadResumeClass, \ref osThreadTerminateZone,<br>
18 \ref osThreadFeedWatchdog, \ref osThreadProtectPrivileged
19 - Thread attributes: \ref osThreadZone, \ref osThreadUnprivileged, \ref osThreadPrivileged
20 - Object attributes: \ref osSafetyClass
21 - Handler functions: \ref osWatchdogAlarm_Handler
22 - Zone Management: \ref osZoneSetup_Callback
23 - Exception Faults: \ref osFaultResume
25 Additional functions allowed to be called from Interrupt Service Routines:
26 - \ref osThreadGetName, \ref osEventFlagsGetName, \ref osTimerGetName, \ref osMutexGetName, \ref osSemaphoreGetName, \ref osMemoryPoolGetName, \ref osMessageQueueGetName
32 Additional functions allowed to be called from Interrupt Service Routines:
39 Additional functions allowed to be called from Interrupt Service Routines:
40 - \ref osKernelGetInfo, \ref osKernelGetState
46 Additional functions allowed to be called from Interrupt Service Routines:
47 - \ref osKernelGetTickCount, \ref osKernelGetTickFreq
49 Changed Kernel Tick type to uint32_t:
50 - updated: \ref osKernelGetTickCount, \ref osDelayUntil
56 Support for critical and uncritical sections (nesting safe):
57 - updated: \ref osKernelLock, \ref osKernelUnlock
58 - added: \ref osKernelRestoreLock
60 Updated \ref CMSIS_RTOS_ThreadFlagsMgmt "Thread Flags" and \ref CMSIS_RTOS_EventFlags "Event Flags":
61 - changed flags parameter and return type from int32_t to uint32_t
67 New API Version 2.0 available.
68 - See \ref rtos_api2 for a detailed function reference.
69 - See \ref os2Migration for details on the migration process from API Version 1.
73 <td>V1.02 - only documentation changes</td>
75 Added: Overview of the \ref rtosValidation "CMSIS-RTOS Validation" Software Pack.\n
76 Clarified: Behavior of \ref CMSIS_RTOS_TimeOutValue.
81 <td>Added: New control functions for short timeouts in microsecond resolution \b osKernelSysTick,
82 \b osKernelSysTickFrequency, \b osKernelSysTickMicroSec.\n
88 <td>Added capabilities for C++, kernel initialization and object deletion.\n
89 Prepared for C++ class interface. In this context to \em const attribute has been moved from osXxxxDef_t typedefs to
90 the osXxxxDef macros.\n
91 Added: \ref osTimerDelete, \ref osMutexDelete, \ref osSemaphoreDelete.\n
92 Added: \ref osKernelInitialize that prepares the kernel for object creation.\n
98 <td>First official Release.\n
99 Added: \ref osKernelStart; starting 'main' as a thread is now an optional feature.\n
100 Semaphores have now the standard behavior.\n
101 \b osTimerCreate does no longer start the timer. Added: \ref osTimerStart (replaces osTimerRestart).\n
102 Changed: osThreadPass is renamed to \ref osThreadYield.
107 <td>Preview Release.</td>
112 \section RTX5RevisionHistory CMSIS-RTOS RTX Version 5
114 <table class="cmtable" summary="Revision History">
122 - Added de-allocation of Arm C library thread data (libspace) when thread is terminated.
123 - Updated SysTick implementation for OS Tick (initial count value).
124 - Added Thread Entry wrapper (compatible with GDB stack unwind).
130 - Fixed potential register R1 corruption when calling OS functions from threads multiple times with same arguments (when using high level compiler optimizations).
131 - Fixed timer interval when periodic timer is restarted.
132 - Added Floating-point initialization for Arm C Library.
133 - Minor code optimizations in osMessageQueuePut/Get.
139 - CVE-2021-27431 vulnerability mitigation.
140 - Added OS Initialization for IAR.
141 - Fixed osDelay/osDelayUntil error handling.
142 - Fixed Round-Robin (timeout value is not reset when switching to higher priority threads).
143 - Fixed osThreadJoin (when terminating thread which is waiting to be joined).
144 - Fixed Message Queue Data allocation size when using object specific memory allocation.
145 - Fixed Mutex priority inversion (when mixing mutexes with and without priority inherit).
146 - Enhanced stack overrun checking.
147 - Updated osKernelResume handling (processing past sleep ticks).
148 - Updated configuration (Event Recorder).
149 - Reorganized and optimized IRQ modules.
155 - Added support for Cortex-M55.
156 - Fixed thread priority restore on mutex acquire timeout (when priority inherit is used).
157 - Enhanced support for Armv8-M (specifying thread TrustZone module identifier is optional).
158 - Updated configuration default values (Global Dynamic Memory and Thread Stack).
164 - Fixed osMutexRelease issue (thread owning multiple mutexes).
165 - Improved osThreadJoin robustness (user programing errors).
171 - Updated and enhanced generated events (reorganized components).
172 - Updated configuration (Event Recorder).
173 - Updated Component Viewer (improved performance).
174 - Minor code optimizations.
180 - Based on CMSIS-RTOS API V2.1.3.
181 - Added support for Event Recorder initialization and filter setup.
182 - Added support to use RTOS as Event Recorder Time Stamp source.
183 - Fixed osDelayUntil longest delay (limited to 2^31-1).
184 - Fixed optimization issue when using GCC optimization level 3.
185 - Fixed osMemoryPoolAlloc to avoid potential race condition.
186 - Restructured exception handling for Cortex-A devices.
187 - Minor code optimizations (removed unnecessary checks).
193 - Added Object Memory usage counters.
194 - Added support for additional external configuration file.
195 - Added user configurable names for system threads (Idle and Timer).
196 - Added support for OS sections when using ARMCC5.
197 - Added callback for MPU integration (experimental)
198 - Increased default thread stack sizes to 256 bytes.
199 - Fixed stack context display for running thread in SCVD.
200 - Enhanced MISRA Compliance.
206 - Based on CMSIS-RTOS API V2.1.2.
207 - Added TrustZone Module Identifier configuration for Idle and Timer Thread.
208 - Moved SVC/PendSV handler priority setup from osKernelInitialize to osKernelStart (User Priority Grouping can be updated after osKernelInitialize but before osKernelStart).
209 - Corrected SysTick and PendSV handlers for ARMv8-M Baseline.
210 - Corrected memory allocation for stack and data when "Object specific Memory allocation" configuration is used.
211 - Added support for ARMv8-M IAR compiler.
217 - Corrected IRQ and SVC exception handlers for Cortex-A.
223 - Corrected SysTick and SVC Interrupt Priority for Cortex-M.
229 - Based on CMSIS-RTOS API V2.1.1.
230 - Added support for Cortex-A.
231 - Using OS Tick API for RTX Kernel Timer Tick.
232 - Fixed potential corruption of terminated threads list.
233 - Corrected MessageQueue to use actual message length (before padding).
234 - Corrected parameters for ThreadEnumerate and MessageQueueInserted events.
235 - Timer Thread creation moved to osKernelStart.
241 - Based on CMSIS-RTOS API V2.1.0.
242 - Added support for Event recording.
243 - Added support for IAR compiler.
244 - Updated configuration files: RTX_Config.h for the configuration settings and RTX_config.c for implementing the \ref rtx5_specific.
245 - osRtx name-space for RTX specific symbols.
251 Initial release compliant to CMSIS-RTOS2.\n