1# Revision History {#rtos_revisionHistory}
2
3CMSIS-RTOS2 API component is maintained with its own versioning that gets offically updated upon releases of the [CMSIS Software Pack](../General/cmsis_pack.html) releases.
4
5The table below provides information about the changes delivered with specific versions of CMSIS-RTOS2 API.
6
7<table class="cmtable" summary="Revision History">
8    <tr>
9      <th>Version</th>
10      <th>Description</th>
11    </tr>
12    <tr>
13      <td>V2.3.0</td>
14      <td>
15         Changed:
16         - OS Tick API moved from Device to CMSIS class
17         Added:
18         - Provisional support for processor affinity in SMP systems:
19           - \ref osThreadAttr_t :: affinity_mask
20           - \ref osThreadSetAffinityMask, \ref osThreadGetAffinityMask
21      </td>
22    </tr>
23    <tr>
24      <td>V2.2.0</td>
25      <td>
26        Added:
27         - support for \ref CMSIS_RTOS_ProcessIsolation :
28           - Kernel Management: \ref osKernelProtect, \ref osKernelDestroyClass
29           - Thread Management: \ref osThreadGetClass, \ref osThreadGetZone, \ref osThreadSuspendClass, \ref osThreadResumeClass, \ref osThreadTerminateZone, \ref osThreadFeedWatchdog, \ref osThreadProtectPrivileged
30           - Thread attributes: \ref osThreadZone, \ref osThreadUnprivileged, \ref osThreadPrivileged
31           - Object attributes: \ref osSafetyClass
32           - Handler functions: \ref osWatchdogAlarm_Handler
33           - Zone Management: \ref osZoneSetup_Callback
34           - Exception Faults: \ref osFaultResume
35         - Additional functions allowed to be called from Interrupt Service Routines:
36           - \ref osThreadGetName, \ref osEventFlagsGetName, \ref osTimerGetName, \ref osMutexGetName, \ref osSemaphoreGetName, \ref osMemoryPoolGetName, \ref osMessageQueueGetName
37      </td>
38    </tr>
39    <tr>
40      <td>V2.1.3</td>
41      <td>
42        Added:
43          - Additional functions allowed to be called from Interrupt Service Routines:
44            - \ref osThreadGetId
45     </td>
46    </tr>
47    <tr>
48      <td>V2.1.2</td>
49      <td>
50        Added:
51          - Additional functions allowed to be called from Interrupt Service Routines:
52            - \ref osKernelGetInfo, \ref osKernelGetState
53     </td>
54    </tr>
55    <tr>
56      <td>V2.1.1</td>
57      <td>
58        Additional functions allowed to be called from Interrupt Service Routines:
59         - \ref osKernelGetTickCount, \ref osKernelGetTickFreq
60
61        Changed Kernel Tick type to uint32_t:
62         - updated: \ref osKernelGetTickCount, \ref osDelayUntil
63     </td>
64    </tr>
65    <tr>
66      <td>V2.1.0</td>
67      <td>
68        Support for critical and uncritical sections (nesting safe):
69         - updated: \ref osKernelLock, \ref osKernelUnlock
70         - added: \ref osKernelRestoreLock
71
72        Updated \ref CMSIS_RTOS_ThreadFlagsMgmt "Thread Flags" and \ref CMSIS_RTOS_EventFlags "Event Flags":
73         - changed flags parameter and return type from int32_t to uint32_t
74     </td>
75    </tr>
76    <tr>
77      <td>V2.0.0</td>
78      <td>
79        New API Version 2.0 available.
80         - See \ref CMSIS_RTOS for a detailed function reference.
81     </td>
82    </tr>
83    <tr>
84      <td>V1.02 - only documentation changes</td>
85      <td>
86      Added:
87        - Overview of the \ref rtosValidation "CMSIS-RTOS Validation" Software Pack.
88
89      Clarified:
90        - Behavior of \ref CMSIS_RTOS_TimeOutValue.
91     </td>
92    </tr>
93    <tr>
94      <td>V1.02</td>
95      <td>
96      Added:
97       - New control functions for short timeouts in microsecond resolution **osKernelSysTick**, **osKernelSysTickFrequency**, **osKernelSysTickMicroSec**.
98
99      Removed:
100       - osSignalGet.
101     </td>
102    </tr>
103    <tr>
104      <td>V1.01</td>
105      <td>
106      Added:
107        - capabilities for C++, kernel initialization and object deletion.
108        - Prepared for C++ class interface. In this context to \em const attribute has been moved from osXxxxDef_t typedefs to the osXxxxDef macros.
109        - \ref osTimerDelete, \ref osMutexDelete, \ref osSemaphoreDelete .
110        - \ref osKernelInitialize that prepares the kernel for object creation.
111      </td>
112    </tr>
113    <tr>
114      <td>
115      V1.00</td>
116      <td>First official Release.<br>
117      Added:
118       - \ref osKernelStart; starting 'main' as a thread is now an optional feature.
119       - Semaphores have now the standard behavior.
120       - osTimerCreate does no longer start the timer.
121       - \ref osTimerStart (replaces osTimerRestart).
122
123      Changed:
124       - osThreadPass is renamed to \ref osThreadYield.
125      </td>
126    </tr>
127    <tr>
128      <td>V0.02</td>
129      <td>Preview Release.</td>
130    </tr>
131</table>
132