| .. _cmsis_rtos_v2: |
| |
| CMSIS RTOS v2 |
| ########################## |
| |
| Cortex-M Software Interface Standard (CMSIS) RTOS is a vendor-independent |
| hardware abstraction layer for the ARM Cortex-M processor series and defines |
| generic tool interfaces. Though it was originally defined for ARM Cortex-M |
| microcontrollers alone, it could be easily extended to other microcontrollers |
| making it generic. For more information on CMSIS RTOS v2, please refer to the |
| `CMSIS-RTOS2 Documentation <http://www.keil.com/pack/doc/CMSIS/RTOS2/html/index.html>`_. |
| |
| Features not supported in Zephyr implementation |
| *********************************************** |
| |
| Kernel |
| ``osKernelGetState``, ``osKernelSuspend``, ``osKernelResume``, ``osKernelInitialize`` |
| and ``osKernelStart`` are not supported. |
| |
| Mutex |
| ``osMutexPrioInherit`` is supported by default and is not configurable, |
| you cannot select/unselect this attribute. |
| |
| ``osMutexRecursive`` is also supported by default. If this attribute is |
| not set, an error is thrown when the same thread tries to acquire |
| it the second time. |
| |
| ``osMutexRobust`` is not supported in Zephyr. |
| |
| Return values not supported in the Zephyr implementation |
| ******************************************************** |
| |
| ``osKernelUnlock``, ``osKernelLock``, ``osKernelRestoreLock`` |
| ``osError`` (Unspecified error) is not supported. |
| |
| ``osSemaphoreDelete`` |
| ``osErrorResource`` (the semaphore specified by parameter |
| semaphore_id is in an invalid semaphore state) is not supported. |
| |
| ``osMutexDelete`` |
| ``osErrorResource`` (mutex specified by parameter mutex_id |
| is in an invalid mutex state) is not supported. |
| |
| ``osTimerDelete`` |
| ``osErrorResource`` (the timer specified by parameter timer_id |
| is in an invalid timer state) is not supported. |
| |
| ``osMessageQueueReset`` |
| ``osErrorResource`` (the message queue specified by |
| parameter msgq_id is in an invalid message queue state) |
| is not supported. |
| |
| ``osMessageQueueDelete`` |
| ``osErrorResource`` (the message queue specified by |
| parameter msgq_id is in an invalid message queue state) |
| is not supported. |
| |
| ``osMemoryPoolFree`` |
| ``osErrorResource`` (the memory pool specified by |
| parameter mp_id is in an invalid memory pool state) is |
| not supported. |
| |
| ``osMemoryPoolDelete`` |
| ``osErrorResource`` (the memory pool specified by |
| parameter mp_id is in an invalid memory pool state) is |
| not supported. |
| |
| ``osEventFlagsSet``, ``osEventFlagsClear`` |
| ``osFlagsErrorUnknown`` (Unspecified error) |
| and osFlagsErrorResource (Event flags object specified by |
| parameter ef_id is not ready to be used) are not supported. |
| |
| ``osEventFlagsDelete`` |
| ``osErrorParameter`` (the value of the parameter ef_id is |
| incorrect) is not supported. |
| |
| ``osThreadFlagsSet`` |
| ``osFlagsErrorUnknown`` (Unspecified error) and |
| ``osFlagsErrorResource`` (Thread specified by parameter |
| thread_id is not active to receive flags) are not supported. |
| |
| ``osThreadFlagsClear`` |
| ``osFlagsErrorResource`` (Running thread is not active to |
| receive flags) is not supported. |
| |
| ``osDelayUntil`` |
| ``osParameter`` (the time cannot be handled) is not supported. |