RTOS2: Updated API V2.1.1
- Additional functions allowed to be called from Interrupt Service Routines: osKernelGetTickCount, osKernelGetTickFreq
- Changed Kernel Tick type to uint32_t, updated: osKernelGetTickCount, osDelayUntil
diff --git a/ARM.CMSIS.pdsc b/ARM.CMSIS.pdsc
index c72a9a4..1b5c16c 100644
--- a/ARM.CMSIS.pdsc
+++ b/ARM.CMSIS.pdsc
@@ -14,7 +14,8 @@
       - Updated Cortex-A core functions
       - Updated Startup and System files 
       CMSIS-RTOS2:
-      - RTX5: added support for Cortex-A 
+      - API 2.1.1 (see revision history for details)
+      - RTX 5.2.0 (see revision history for details)
     </release>
     <release version="5.0.2-dev2">
       CMSIS-RTOS2:
@@ -559,13 +560,14 @@
         <file category="doc" name="CMSIS/Documentation/RTOS/html/index.html"/>
       </files>
     </api>
-    <api Cclass="CMSIS" Cgroup="RTOS2" Capiversion="2.1.0" exclusive="1">
+    <api Cclass="CMSIS" Cgroup="RTOS2" Capiversion="2.1.1" exclusive="1">
       <description>CMSIS-RTOS API for Cortex-M, SC000, and SC300</description>
       <files>
         <file category="doc" name="CMSIS/Documentation/RTOS2/html/index.html"/>
         <file category="header" name="CMSIS/RTOS2/Include/cmsis_os2.h"/>
       </files>
     </api>
+    <!-- CMSIS Driver API -->
     <api Cclass="CMSIS Driver" Cgroup="USART" Capiversion="2.3.0" exclusive="0">
       <description>USART Driver API for Cortex-M</description>
       <files>
@@ -2362,7 +2364,7 @@
     </component>
 
     <!-- CMSIS-RTOS Keil RTX5 component -->
-    <component Cclass="CMSIS" Cgroup="RTOS" Csub="Keil RTX5" Cversion="5.1.1" Capiversion="1.0.0" condition="RTOS RTX5">
+    <component Cclass="CMSIS" Cgroup="RTOS" Csub="Keil RTX5" Cversion="5.2.0" Capiversion="1.0.0" condition="RTOS RTX5">
       <description>CMSIS-RTOS RTX5 implementation for Cortex-M, SC000, and SC300</description>
       <RTE_Components_h>
         <!-- the following content goes into file 'RTE_Components.h' -->
@@ -2378,7 +2380,7 @@
     </component>
 
     <!-- CMSIS-RTOS2 Keil RTX5 component -->
-    <component Cclass="CMSIS" Cgroup="RTOS2" Csub="Keil RTX5" Cvariant="Library" Cversion="5.1.1" Capiversion="2.1.0" condition="RTOS2 RTX5 Lib">
+    <component Cclass="CMSIS" Cgroup="RTOS2" Csub="Keil RTX5" Cvariant="Library" Cversion="5.2.0" Capiversion="2.1.1" condition="RTOS2 RTX5 Lib">
       <description>CMSIS-RTOS2 RTX5 for Cortex-M, SC000, C300 and ARMv8-M (Library)</description>
       <RTE_Components_h>
         <!-- the following content goes into file 'RTE_Components.h' -->
@@ -2447,7 +2449,7 @@
         <file category="library" condition="CM7_FP_LE_IAR"        name="CMSIS/RTOS2/RTX/Library/IAR/RTX_CM4F.a"     src="CMSIS/RTOS2/RTX/Source"/>
       </files>
     </component>
-    <component Cclass="CMSIS" Cgroup="RTOS2" Csub="Keil RTX5" Cvariant="Library_NS" Cversion="5.1.1" Capiversion="2.1.0" condition="RTOS2 RTX5 NS">
+    <component Cclass="CMSIS" Cgroup="RTOS2" Csub="Keil RTX5" Cvariant="Library_NS" Cversion="5.2.0" Capiversion="2.1.1" condition="RTOS2 RTX5 NS">
       <description>CMSIS-RTOS2 RTX5 for ARMv8-M Non-Secure Domain (Library)</description>
       <RTE_Components_h>
         <!-- the following content goes into file 'RTE_Components.h' -->
@@ -2497,7 +2499,7 @@
         <file category="library" condition="ARMv8MML_FP_LE_GCC"   name="CMSIS/RTOS2/RTX/Library/GCC/libRTX_V8MMFN.a" src="CMSIS/RTOS2/RTX/Source"/>
       </files>
     </component>
-    <component Cclass="CMSIS" Cgroup="RTOS2" Csub="Keil RTX5" Cvariant="Source" Cversion="5.1.1" Capiversion="2.1.0" condition="RTOS2 RTX5">
+    <component Cclass="CMSIS" Cgroup="RTOS2" Csub="Keil RTX5" Cvariant="Source" Cversion="5.2.0" Capiversion="2.1.1" condition="RTOS2 RTX5">
       <description>CMSIS-RTOS2 RTX5 for Cortex-M, SC000, C300 and ARMv8-M (Source)</description>
       <RTE_Components_h>
         <!-- the following content goes into file 'RTE_Components.h' -->
@@ -2586,7 +2588,7 @@
         <file category="source" name="CMSIS/RTOS2/RTX/Source/IAR/irq_cm4f.s"        condition="CM7_FP_IAR"/>
       </files>
     </component>
-    <component Cclass="CMSIS" Cgroup="RTOS2" Csub="Keil RTX5" Cvariant="Source_NS" Cversion="5.1.1" Capiversion="2.1.0" condition="RTOS2 RTX5 NS">
+    <component Cclass="CMSIS" Cgroup="RTOS2" Csub="Keil RTX5" Cvariant="Source_NS" Cversion="5.2.0" Capiversion="2.1.1" condition="RTOS2 RTX5 NS">
       <description>CMSIS-RTOS2 RTX5 for ARMv8-M Non-Secure Domain (Source)</description>
       <RTE_Components_h>
         <!-- the following content goes into file 'RTE_Components.h' -->
diff --git a/CMSIS/DoxyGen/RTOS2/rtos.dxy b/CMSIS/DoxyGen/RTOS2/rtos.dxy
index 424fd7a..7ba9270 100644
--- a/CMSIS/DoxyGen/RTOS2/rtos.dxy
+++ b/CMSIS/DoxyGen/RTOS2/rtos.dxy
@@ -38,7 +38,7 @@
 # could be handy for archiving the generated documentation or if some version
 # control system is used.
 
-PROJECT_NUMBER         = "Version 2.1.0"
+PROJECT_NUMBER         = "Version 2.1.1"
 
 # Using the PROJECT_BRIEF tag one can provide an optional one line description
 # for a project that appears at the top of each page and should give viewer a
diff --git a/CMSIS/DoxyGen/RTOS2/src/cmsis_os2.txt b/CMSIS/DoxyGen/RTOS2/src/cmsis_os2.txt
index cd0d9ae..9ed883d 100644
--- a/CMSIS/DoxyGen/RTOS2/src/cmsis_os2.txt
+++ b/CMSIS/DoxyGen/RTOS2/src/cmsis_os2.txt
@@ -78,6 +78,16 @@
       <th>Description</th>
     </tr>
     <tr>
+      <td>V2.1.1</td>
+      <td>
+        Additional functions allowed to be called from Interrupt Service Routines:
+         - \ref osKernelGetTickCount, \ref osKernelGetTickFreq
+         
+        Changed Kernel Tick type to uint32_t:
+         - updated: \ref osKernelGetTickCount, \ref osDelayUntil
+     </td>
+    </tr>
+    <tr>
       <td>V2.1.0</td>
       <td>
         Support for critical and uncritical sections (nesting safe):
@@ -144,8 +154,10 @@
       <th>Description</th>
     </tr>
     <tr>
-      <td>V5.1.1</td>
+      <td>V5.2.0</td>
       <td>
+       - Based on CMSIS-RTOS API V2.1.1.
+       - Added support for for Cortex-A.
        - Fixed potential corruption of terminated threads list.
        - Corrected MessageQueue to use actual message length (before padding).
        - Corrected parameters for ThreadEnumerate and MessageQueueInserted events.
@@ -155,7 +167,7 @@
     <tr>
       <td>V5.1.0</td>
       <td>
-       - Based on CMSIS-RTOS API V2.1.
+       - 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 \ref rtx5_specific.
@@ -803,7 +815,7 @@
 \section CMSIS_RTOS_ISR_Calls Calls from Interrupt Service Routines 
 
 The following CMSIS-RTOS2 functions can be called from threads and Interrupt Service Routines (ISR):
-  - \ref osKernelGetSysTimerCount, \ref osKernelGetSysTimerFreq
+  - \ref osKernelGetTickCount, \ref osKernelGetTickFreq, \ref osKernelGetSysTimerCount, \ref osKernelGetSysTimerFreq
   - \ref osThreadFlagsSet
   - \ref osEventFlagsSet, \ref osEventFlagsClear, \ref osEventFlagsGet, \ref osEventFlagsWait
   - \ref osSemaphoreAcquire, \ref osSemaphoreRelease, \ref osSemaphoreGetCount
@@ -1488,7 +1500,7 @@
 
 The following CMSIS-RTOS2 functions can be called from threads and \ref CMSIS_RTOS_ISR_Calls "Interrupt Service Routines"
 (ISR):
-   - \ref osKernelGetSysTimerCount, \ref osKernelGetSysTimerFreq
+   - \ref osKernelGetTickCount, \ref osKernelGetTickFreq, \ref osKernelGetSysTimerCount, \ref osKernelGetSysTimerFreq
    - \ref osThreadFlagsSet
    - \ref osEventFlagsSet, \ref osEventFlagsClear, \ref osEventFlagsGet, \ref osEventFlagsWait
    - \ref osSemaphoreAcquire, \ref osSemaphoreRelease, \ref osSemaphoreGetCount
diff --git a/CMSIS/DoxyGen/RTOS2/src/cmsis_os2_Kernel.txt b/CMSIS/DoxyGen/RTOS2/src/cmsis_os2_Kernel.txt
index fb65f9b..84e6929 100644
--- a/CMSIS/DoxyGen/RTOS2/src/cmsis_os2_Kernel.txt
+++ b/CMSIS/DoxyGen/RTOS2/src/cmsis_os2_Kernel.txt
@@ -378,18 +378,18 @@
 */
 /*=======0=========1=========2=========3=========4=========5=========6=========7=========8=========9=========0=========1====*/
 /**
-\fn uint64_t osKernelGetTickCount (void)
+\fn uint32_t osKernelGetTickCount (void)
 \details
-The function \b osKernelGetTickCount returns the current RTOS kernel tick count or \token{0} in case of a failure.
+The function \b osKernelGetTickCount returns the current RTOS kernel tick count.
 
-\note This function \b cannot be called from \ref CMSIS_RTOS_ISR_Calls "Interrupt Service Routines".
+\note This function may be called from \ref CMSIS_RTOS_ISR_Calls "Interrupt Service Routines".
 
 \b Code \b Example
 \code
 #include "cmsis_os2.h"
  
 void Thread_1 (void *arg)  {                // Thread function
-  uint64_t tick;
+  uint32_t tick;
 
   tick = osKernelGetTickCount();            // retrieve the number of system ticks
   for (;;) {
@@ -404,16 +404,16 @@
 /**
 \fn uint32_t osKernelGetTickFreq (void)
 \details
-The function \b osKernelGetTickFreq returns the frequency of the current RTOS kernel tick or \token{0} in case of a failure.
+The function \b osKernelGetTickFreq returns the frequency of the current RTOS kernel tick.
 
-\note This function \b cannot be called from \ref CMSIS_RTOS_ISR_Calls "Interrupt Service Routines".
+\note This function may be called from \ref CMSIS_RTOS_ISR_Calls "Interrupt Service Routines".
 */
 
 /*=======0=========1=========2=========3=========4=========5=========6=========7=========8=========9=========0=========1====*/
 /**
 \fn uint32_t osKernelGetSysTimerCount (void)
 \details
-The function \b osKernelGetSysTimerCount returns the current RTOS kernel system timer as a 32-bit value or \token{0} in case of a failure.
+The function \b osKernelGetSysTimerCount returns the current RTOS kernel system timer as a 32-bit value.
 
 \note This function may be called from \ref CMSIS_RTOS_ISR_Calls "Interrupt Service Routines".
 */
@@ -422,7 +422,7 @@
 /**
 \fn uint32_t osKernelGetSysTimerFreq (void)
 \details
-The function \b osKernelGetSysTimerFreq returns the frequency of the current RTOS kernel system timer or \token{0} in case of a failure.
+The function \b osKernelGetSysTimerFreq returns the frequency of the current RTOS kernel system timer.
 
 \note This function may be called from \ref CMSIS_RTOS_ISR_Calls "Interrupt Service Routines".
 */
diff --git a/CMSIS/DoxyGen/RTOS2/src/cmsis_os2_Migration.txt b/CMSIS/DoxyGen/RTOS2/src/cmsis_os2_Migration.txt
index 27942ab..654b1ab 100644
--- a/CMSIS/DoxyGen/RTOS2/src/cmsis_os2_Migration.txt
+++ b/CMSIS/DoxyGen/RTOS2/src/cmsis_os2_Migration.txt
@@ -52,7 +52,7 @@
 \enddiv
 
 \div{new}
-\func{uint64_t #osKernelGetTickCount (void)}
+\func{uint32_t #osKernelGetTickCount (void)}
 \none
 \copybrief{osKernelGetTickCount}
 New function.
@@ -390,7 +390,7 @@
 \enddiv
 
 \div{new}
-\func{osStatus_t #osDelayUntil (uint64_t ticks)}
+\func{osStatus_t #osDelayUntil (uint32_t ticks)}
 \none
 \copybrief{osDelayUntil}
 New function.
diff --git a/CMSIS/DoxyGen/RTOS2/src/cmsis_os2_Wait.txt b/CMSIS/DoxyGen/RTOS2/src/cmsis_os2_Wait.txt
index a65efab..3a9cf7a 100644
--- a/CMSIS/DoxyGen/RTOS2/src/cmsis_os2_Wait.txt
+++ b/CMSIS/DoxyGen/RTOS2/src/cmsis_os2_Wait.txt
@@ -46,7 +46,7 @@
 
 /*=======0=========1=========2=========3=========4=========5=========6=========7=========8=========9=========0=========1====*/
 /** 
-\fn osStatus_t osDelayUntil (uint64_t ticks)
+\fn osStatus_t osDelayUntil (uint32_t ticks)
 \details
 The function \b osDelayUntil waits until an absolute time (specified in kernel \a ticks) is reached. 
 
@@ -56,7 +56,7 @@
 
 Possible \ref osStatus_t return values:
  - \em osOK: the time delay is executed.
- - \em osParameter: the time is either in the past or cannot be handled (out of bounds).
+ - \em osParameter: the time cannot be handled (out of bounds).
  - \em osErrorISR: \ref osDelayUntil cannot be called from \ref CMSIS_RTOS_ISR_Calls "Interrupt Service Routines".
 
 \note This function \b cannot be called from \ref CMSIS_RTOS_ISR_Calls "Interrupt Service Routines".
@@ -66,7 +66,7 @@
 #include "cmsis_os2.h"
  
 void Thread_1 (void *arg)  {                // Thread function
-  uint64_t tick;
+  uint32_t tick;
 
   tick = osKernelGetTickCount();            // retrieve the number of system ticks
   for (;;) {
diff --git a/CMSIS/DoxyGen/RTOS2/src/rtx_evr.txt b/CMSIS/DoxyGen/RTOS2/src/rtx_evr.txt
index 0738fd2..582bed2 100644
--- a/CMSIS/DoxyGen/RTOS2/src/rtx_evr.txt
+++ b/CMSIS/DoxyGen/RTOS2/src/rtx_evr.txt
@@ -267,27 +267,27 @@
 */
 
 /**
-\fn void EvrRtxKernelGetTickCount (uint64_t count)
+\fn void EvrRtxKernelGetTickCount (uint32_t count)
 \details
-The event \b KernelGetTickCount is generated when the function \ref osKernelGetTickCount is called and its execution result is known.
+The event \b KernelGetTickCount is generated when the function \ref osKernelGetTickCount is called.
 
 \b Value in the Event Recorder shows:
-  - \b count : retrieved kernel current tick count (0 in case of a failure).
+  - \b count : retrieved kernel current tick count.
 */
 
 /**
 \fn void EvrRtxKernelGetTickFreq (uint32_t freq)
 \details
-The event \b KernelGetTickFreq is generated when the function \ref osKernelGetTickFreq called and its execution result is known.
+The event \b KernelGetTickFreq is generated when the function \ref osKernelGetTickFreq called.
 
 \b Value in the Event Recorder shows:
-  - \b freq : retrieved frequency of the kernel tick in Hz (0 in case of a failure).
+  - \b freq : retrieved frequency of the kernel tick in Hz.
 */
 
 /**
 \fn void EvrRtxKernelGetSysTimerCount (uint32_t count)
 \details
-The event \b KernelGetSysTimerCount is generated when the function \ref osKernelGetSysTimerCount is called and its execution result is known.
+The event \b KernelGetSysTimerCount is generated when the function \ref osKernelGetSysTimerCount is called.
 
 \b Value in the Event Recorder shows:
   - \b count : retrieved kernel current system timer count as 32-bit value.
@@ -296,7 +296,7 @@
 /**
 \fn void EvrRtxKernelGetSysTimerFreq (uint32_t freq)
 \details
-The event \b KernelGetSysTimerFreq is generated when the function \ref osKernelGetSysTimerFreq is called and its execution result is known.
+The event \b KernelGetSysTimerFreq is generated when the function \ref osKernelGetSysTimerFreq is called.
 
 \b Value in the Event Recorder shows:
   - \b freq : retrieved frequency of the system timer in Hz.
@@ -702,7 +702,7 @@
 */
 
 /**
-\fn void EvrRtxThreadDelayUntil (uint64_t ticks)
+\fn void EvrRtxThreadDelayUntil (uint32_t ticks)
 \details
 The event \b ThreadDelayUntil is generated when the function \ref osDelayUntil is called.
 
diff --git a/CMSIS/RTOS2/Include/cmsis_os2.h b/CMSIS/RTOS2/Include/cmsis_os2.h
index a4a462e..9a1c454 100644
--- a/CMSIS/RTOS2/Include/cmsis_os2.h
+++ b/CMSIS/RTOS2/Include/cmsis_os2.h
@@ -17,12 +17,17 @@
  *
  * ----------------------------------------------------------------------
  *
- * $Date:        10. January 2017
- * $Revision:    V2.1.0
+ * $Date:        9. June 2017
+ * $Revision:    V2.1.1
  *
  * Project:      CMSIS-RTOS2 API
  * Title:        cmsis_os2.h header file
  *
+ * Version 2.1.1
+ *    Additional functions allowed to be called from Interrupt Service Routines:
+ *    - osKernelGetTickCount, osKernelGetTickFreq
+ *    Changed Kernel Tick type to uint32_t:
+ *    - updated: osKernelGetTickCount, osDelayUntil
  * Version 2.1.0
  *    Support for critical and uncritical sections (nesting safe):
  *    - updated: osKernelLock, osKernelUnlock
@@ -335,7 +340,7 @@
  
 /// Get the RTOS kernel tick count.
 /// \return RTOS kernel current tick count.
-uint64_t osKernelGetTickCount (void);
+uint32_t osKernelGetTickCount (void);
  
 /// Get the RTOS kernel tick frequency.
 /// \return frequency of the kernel tick in hertz, i.e. kernel ticks per second.
@@ -472,7 +477,7 @@
 /// Wait until specified time.
 /// \param[in]     ticks         absolute time in ticks
 /// \return status code that indicates the execution status of the function.
-osStatus_t osDelayUntil (uint64_t ticks);
+osStatus_t osDelayUntil (uint32_t ticks);
  
  
 //  ==== Timer Management Functions ====
diff --git a/CMSIS/RTOS2/Template/cmsis_os.h b/CMSIS/RTOS2/Template/cmsis_os.h
index 5920d14..0cf5a91 100644
--- a/CMSIS/RTOS2/Template/cmsis_os.h
+++ b/CMSIS/RTOS2/Template/cmsis_os.h
@@ -17,8 +17,8 @@
  *
  * ----------------------------------------------------------------------
  *
- * $Date:        10. January 2017
- * $Revision:    V2.1.0
+ * $Date:        9. June 2017
+ * $Revision:    V2.1.1
  *
  * Project:      CMSIS-RTOS API
  * Title:        cmsis_os.h template header file
@@ -118,6 +118,11 @@
  *    - added: osKernelRestoreLock
  *    Updated Thread and Event Flags:
  *    - changed flags parameter and return type from int32_t to uint32_t
+ * Version 2.1.1
+ *    Additional functions allowed to be called from Interrupt Service Routines:
+ *    - osKernelGetTickCount, osKernelGetTickFreq
+ *    Changed Kernel Tick type to uint32_t:
+ *    - updated: osKernelGetTickCount, osDelayUntil
  *---------------------------------------------------------------------------*/
  
 #ifndef CMSIS_OS_H_