zephyr/doc/guides/portability/cmsis_rtos_v2.rst

88 lines
3.1 KiB
ReStructuredText

.. _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.