CMSIS-RTOS2 compliant FreeRTOS Implementation
All Functions Groups Pages
Function Overview

CMSIS-RTOS2 API

Overview of all CMSIS-RTOS C API v2 functions that are implemented in CMSIS-FreeRTOS.

Kernel Information and Control

  • osKernelGetInfo: supported
  • osKernelGetState: supported
  • osKernelGetSysTimerCount: supported
  • osKernelGetSysTimerFreq: supported
  • osKernelInitialize: supported
  • osKernelLock: supported
  • osKernelUnlock: supported
  • osKernelRestoreLock: supported
  • osKernelResume: not implemented
  • osKernelStart: supported
  • osKernelSuspend: not implemented
  • osKernelGetTickCount: supported
  • osKernelGetTickFreq: supported

Thread Management

  • osThreadDetach: not implemented
  • osThreadEnumerate: supported
  • osThreadExit: supported
  • osThreadGetCount: supported
  • osThreadGetId: supported
  • osThreadGetName: supported
  • osThreadGetPriority: supported
  • osThreadGetStackSize: not implemented
  • osThreadGetStackSpace: supported
  • osThreadGetState: supported
  • osThreadJoin: not implemented
  • osThreadNew: supported
  • osThreadResume: supported
  • osThreadSetPriority: supported
  • osThreadSuspend: supported
  • osThreadTerminate: supported
  • osThreadYield: supported

Thread Flags

  • osThreadFlagsSet: supported
  • osThreadFlagsClear: supported
  • osThreadFlagsGet: supported
  • osThreadFlagsWait: supported

Event Flags

All event flags are limited to 24 bits.

  • osEventFlagsGetName: not implemented
  • osEventFlagsNew: supported
  • osEventFlagsDelete: supported
  • osEventFlagsSet: supported
  • osEventFlagsClear: supported
  • osEventFlagsGet: supported
  • osEventFlagsWait: cannot be called from an ISR.

Generic Wait Functions

  • osDelay: supported
  • osDelayUntil: supported

Timer Management

  • osTimerDelete: supported
  • osTimerGetName: supported
  • osTimerIsRunning: supported
  • osTimerNew: supported
  • osTimerStart: supported
  • osTimerStop: supported

Mutex Management

Priority inherit protocol is used as default mutex behavior (osMutexNew creates priority inherit mutex object by default and ignores osMutexPrioInherit attribute when specified).
Robust mutex objects are not supported (osMutexNew returns NULL when osMutexRobust attribute is specified).

  • osMutexAcquire: supported
  • osMutexDelete: supported
  • osMutexGetName: not implemented
  • osMutexGetOwner: supported
  • osMutexNew: supported
  • osMutexRelease: supported

Semaphores

  • osSemaphoreAcquire: supported
  • osSemaphoreDelete: supported
  • osSemaphoreGetCount: supported
  • osSemaphoreGetName: not implemented
  • osSemaphoreNew: supported
  • osSemaphoreRelease: supported

Memory Pool

Memory Pool functions are not implemented and will always return with error.

  • osMemoryPoolAlloc: supported
  • osMemoryPoolDelete: supported
  • osMemoryPoolFree: supported
  • osMemoryPoolGetBlockSize: supported
  • osMemoryPoolGetCapacity: supported
  • osMemoryPoolGetCount: supported
  • osMemoryPoolGetName: supported
  • osMemoryPoolGetSpace: supported
  • osMemoryPoolNew: supported

Message Queue

  • osMessageQueueDelete: supported
  • osMessageQueueGet: ignores message priority.
  • osMessageQueueGetCapacity: supported
  • osMessageQueueGetCount: supported
  • osMessageQueueGetMsgSize: supported
  • osMessageQueueGetName: not implemented
  • osMessageQueueGetSpace: supported
  • osMessageQueueNew: supported
  • osMessageQueuePut: ignores message priority.
  • osMessageQueueReset: supported