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