以下列表簡要概述了所有CMSIS-RTOS功能。標有$的函數是可選的。特定的CMSIS-RTOS實現可能無法提供所有功能,但osFeatureXXXX定義明確指出了這一點。
- 注意
- RTX實現 不支持的功能標有(*)。
- 內核信息和控制
- osKernelInitialize:初始化RTOS內核。
- osKernelStart:啟動RTOS內核。
- osKernelRunning:查詢RTOS內核是否正在運行。
- osKernelSysTick:獲取RTOS內核系統計時器計數器。
- osKernelSysTickFrequency:RTOS內核系統定時器頻率,單位為Hz。
- osKernelSysTickMicroSec:將微秒值轉換為RTOS內核系統計時器值。
- 線程管理
- osThreadCreate:開始執行線程函數。
- osThreadTerminate:停止執行線程函數。
- osThreadYield:將執行傳遞給下一個就緒線程函數。
- osThreadGetId:獲取線程標識符以引用此線程。
- osThreadSetPriority:更改線程函數的執行優先級。
- osThreadGetPriority:獲取線程函數的當前執行優先級。
- 通用等待功能
- 定時器管理
- osTimerCreate:定義計時器回調函數的屬性。
- osTimerStart:使用時間值啟動或重新啟動計時器。
- osTimerStop:停止計時器。
- osTimerDelete:刪除計時器。
- 信號事件
- osSignalSet:設置線程的信號標志。
- osSignalClear:重置線程的信號標志。
- osSignalWait:暫停執行,直到設置了特定的信號標志。
- 互斥
- osMutexCreate:定義並初始化互斥鎖。
- osMutexWait:獲取互斥鎖或等待它變為可用。
- osMutexRelease:釋放互斥鎖。
- osMutexDelete:刪除互斥鎖。
- 信號燈
- osSemaphoreCreate:定義並初始化信號量。
- osSemaphoreWait:獲取信號量令牌或等到它可用。
- osSemaphoreRelease:釋放信號量令牌。
- osSemaphoreDelete:刪除信號量。
- 記憶池
- osPoolCreate:定義並初始化一個修復大小的內存池。
- osPoolAlloc:分配內存塊。
- osPoolCAlloc:分配一個內存塊並將該塊置零。
- osPoolFree:將內存塊返回到內存池。
- 消息隊列
- osMessageCreate:定義並初始化消息隊列。
- osMessagePut:將消息放入消息隊列。
- osMessageGet:獲取消息或暫停線程執行,直到消息到達。
- 郵件隊列
- osMailCreate:使用固定大小的內存塊定義和初始化郵件隊列。
- osMailAlloc:分配內存塊。
- osMailCAlloc:分配一個內存塊並將該塊置零。
- osMailPut:將內存塊放入郵件隊列。
- osMailGet:獲取郵件或暫停線程執行,直到郵件到達。
- osMailFree:將內存塊返回到郵件隊列。
- RTX特定功能
- os_idle_demon:當沒有其他線程准備好運行時,系統線程正在運行。
- os_suspend:掛起RTX任務調度程序。
- os_resume:恢復RTX任務調度程序。
- os_tick_init:將備用硬件計時器初始化為RTX內核計時器。
- os_tick_val:獲取備用硬件計時器的當前值。
- os_tick_ovf:獲取備用硬件定時器的溢出標志。
- os_tick_irqack:確認備用硬件定時器中斷。
- os_error:檢測到運行時錯誤時調用。
超時值
超時值指定超時或時間延遲過去之前的計時器滴答數。該值是上限,取決於自上次計時器滴答以來經過的實際時間。
對於值1,系統等待直到下一個計時器滴答發生。這意味着實際超時值可以是小於指定超時值的一個計時器滴答。

計時器值
來自中斷服務程序的調用
可以從線程和中斷服務例程(ISR)調用以下CMSIS-RTOS函數:
- osKernelRunning
- osSignalSet
- osSemaphoreRelease
- osPoolAlloc,osPoolCAlloc,osPoolFree
- osMessagePut,osMessageGet
- osMailAlloc,osMailCAlloc,osMailGet,osMailPut,osMailFree
無法從ISR調用的函數正在驗證中斷狀態,並在從ISR上下文調用狀態代碼osErrorISR時返回。在一些實現中,可以使用HARD FAULT向量捕獲該條件。
一些CMSIS-RTOS實現同時支持來自多個ISR的CMSIS-RTOS函數調用。如果這是不可能的,CMSIS-RTOS拒絕嵌套ISR函數的調用,狀態代碼為osErrorISRRecursive。