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