CMSIS-RTOS: Revision History

| 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
Revision History

# CMSIS-RTOS API

Version | Description
--- | ---
V1.03 - only documentation changes | Incorporated documentation for reference implementation CMSIS-RTOS RTX.
V1.02 - only documentation changes | Added: Overview of the CMSIS-RTOS Validation Software Pack. Clarified: Behaviour of Timout Value.
V1.02 | Added: New control functions for short timeouts in microsecond resolution osKernelSysTick, osKernelSysTickFrequency, osKernelSysTickMicroSec. Removed: osSignalGet.
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 | Description
--- | ---
V4.82 | Corrected: Recursive Mutex 16-bit lock counter is now checked to not overflow.
V4.81 | Added provisions for Arm Compiler 6. Corrected: Message Queue behavior when osMessagePut timed out due to full queue and osMessageGet was called from ISR.
V4.80 | Restored time delay parameter 'millisec' old behavior (before V4.79) for software compatibility. Corrected: implicit mutex release when mutex owner thread is terminated.

V4.79

Corrected: time delay parameter ‘millisec’ in all functions (osDelay, osSignalWait, …) is now treated as lower bound – wait for at least time given (before it could have been up to 1ms less).
Corrected: Lazy Context switching for Cortex-M4 with FPU could lead to a crash when thread which used FPU was terminated.
Corrected: osMailCAlloc only cleared the allocated memory block if it was available without waiting.
Corrected: osThreadCreate function returns NULL when trying to create more concurrent threads than defined in the configuration.
Improved source code MISRA compliance.

V4.78 | Corrected: osTimerStart function accepts full 32-bit range for time delay value in milisec. Added: User Timer Callback Queue overflow reported through os_error(OS_ERROR_TIMER_OVF).
V4.77 | Added: Stack usage watermark.
V4.76 | Optimized Service calls in GCC libraries. Corrected: Stack/Heap regions can be used with scatter loading.

V4.75

Corrected: Service calls for Cortex-M4 with Floating Point for GCC.
Corrected: osSignalClear returns 0x80000000 when called from interrupt service routines.
Corrected: C standard library memory functions (malloc, free, ...) can be called between calls to osKernelInitialize and osKernelStart.
Corrected: Interrupt Priority Group can be configured between calls to osKernelInitialize and osKernelStart.

V4.74 | Corrected: osKernelInitialize and osKernelStart when called from main which is already a thread.
V4.73 | Corrected: mutex priority inversion when thread owns more than one mutex. Added: RTX extensions os_suspend and os_resume. Added: RTX os_error template.
V4.72 | Corrected: object initialization when defined inside function (allocated on stack and not as static memory).
V4.71 | Corrected: osMailFree behaviour when osMailAlloc timed out.
V4.70 | Added: New control functions for short timeouts in microsecond resolution osKernelSysTick, osKernelSysTickFrequency, osKernelSysTickMicroSec. Removed: osSignalGet.
V4.61 | Enhanced: osTimerCreate can now be called after osKernelInitialize (before only after osKernelStart). Corrected: Initialization of alternative kernel timer for Cortex-M0/M0+/M1 (when SysTick timer is not used). Corrected: Message/Mail Queue behavior when timeout expires.
V4.51 | Corrected: problem with osKernelInitialize when after the call high priority threads are defined.

V4.50

Based on CMSIS-RTOS API Version 1.01 and the classic RTX V4.50 Kernel.
Added: osTimerDelete, osMutexDelete, osSemaphoreDelete.
Added: osKernelInitialize that prepares the Kernel for object creation.
Added: support for Low Power Cortex-M applications based on new configuration functions: os_suspend, os_resume.
Added: support for peripheral timer to be used as OS tick timer instead of Core SysTick timer.
Corrected: stack checking did not work for os_tsk_delete_self function Preview Release.

V4.20 | Initial CMSIS-RTOS adaption of the RTX Kernel.