1.. _cmsis_rtos_v2: 2 3CMSIS RTOS v2 4########################## 5 6Cortex-M Software Interface Standard (CMSIS) RTOS is a vendor-independent 7hardware abstraction layer for the ARM Cortex-M processor series and defines 8generic tool interfaces. Though it was originally defined for ARM Cortex-M 9microcontrollers alone, it could be easily extended to other microcontrollers 10making it generic. For more information on CMSIS RTOS v2, please refer to the 11`CMSIS-RTOS2 Documentation <http://www.keil.com/pack/doc/CMSIS/RTOS2/html/index.html>`_. 12 13Features not supported in Zephyr implementation 14*********************************************** 15 16Kernel 17 ``osKernelGetState``, ``osKernelSuspend``, ``osKernelResume``, ``osKernelInitialize`` 18 and ``osKernelStart`` are not supported. 19 20Mutex 21 ``osMutexPrioInherit`` is supported by default and is not configurable, 22 you cannot select/unselect this attribute. 23 24 ``osMutexRecursive`` is also supported by default. If this attribute is 25 not set, an error is thrown when the same thread tries to acquire 26 it the second time. 27 28 ``osMutexRobust`` is not supported in Zephyr. 29 30Return values not supported in the Zephyr implementation 31******************************************************** 32 33``osKernelUnlock``, ``osKernelLock``, ``osKernelRestoreLock`` 34 ``osError`` (Unspecified error) is not supported. 35 36``osSemaphoreDelete`` 37 ``osErrorResource`` (the semaphore specified by parameter 38 semaphore_id is in an invalid semaphore state) is not supported. 39 40``osMutexDelete`` 41 ``osErrorResource`` (mutex specified by parameter mutex_id 42 is in an invalid mutex state) is not supported. 43 44``osTimerDelete`` 45 ``osErrorResource`` (the timer specified by parameter timer_id 46 is in an invalid timer state) is not supported. 47 48``osMessageQueueReset`` 49 ``osErrorResource`` (the message queue specified by 50 parameter msgq_id is in an invalid message queue state) 51 is not supported. 52 53``osMessageQueueDelete`` 54 ``osErrorResource`` (the message queue specified by 55 parameter msgq_id is in an invalid message queue state) 56 is not supported. 57 58``osMemoryPoolFree`` 59 ``osErrorResource`` (the memory pool specified by 60 parameter mp_id is in an invalid memory pool state) is 61 not supported. 62 63``osMemoryPoolDelete`` 64 ``osErrorResource`` (the memory pool specified by 65 parameter mp_id is in an invalid memory pool state) is 66 not supported. 67 68``osEventFlagsSet``, ``osEventFlagsClear`` 69 ``osFlagsErrorUnknown`` (Unspecified error) 70 and osFlagsErrorResource (Event flags object specified by 71 parameter ef_id is not ready to be used) are not supported. 72 73``osEventFlagsDelete`` 74 ``osErrorParameter`` (the value of the parameter ef_id is 75 incorrect) is not supported. 76 77``osThreadFlagsSet`` 78 ``osFlagsErrorUnknown`` (Unspecified error) and 79 ``osFlagsErrorResource`` (Thread specified by parameter 80 thread_id is not active to receive flags) are not supported. 81 82``osThreadFlagsClear`` 83 ``osFlagsErrorResource`` (Running thread is not active to 84 receive flags) is not supported. 85 86``osDelayUntil`` 87 ``osParameter`` (the time cannot be handled) is not supported. 88