函数参考
- 内核信息和控制
- osKernelGetInfo : 获取 RTOS 内核信息。
- osKernelGetState : 获取当前的 RTOS 内核状态。
- osKernelGetSysTimerCount : 获取 RTOS 内核系统定时器计数。
- osKernelGetSysTimerFreq : 获取 RTOS 内核系统定时器频率。
- osKernelInitialize : 初始化 RTOS 内核。
- osKernelLock : 锁定 RTOS 内核调度程序。
- osKernelUnlock:解锁 RTOS 内核调度程序。
- osKernelRestoreLock:恢复 RTOS 内核调度程序锁定状态。
- osKernelResume:恢复 RTOS 内核调度程序。
- osKernelStart:启动 RTOS 内核调度程序。
- osKernelSuspend:暂停 RTOS 内核调度程序。
- osKernelGetTickCount : 获取 RTOS 内核滴答计数。
- osKernelGetTickFreq : 获取 RTOS 内核滴答频率。
- 线程管理
- osThreadDetach : 分离一个线程(线程终止时可以回收线程存储)。
- osThreadEnumerate:枚举活动线程。
- osThreadExit:终止当前正在运行的线程的执行。
- osThreadGetCount : 获取活动线程数。
- osThreadGetId:返回当前运行线程的线程 ID。
- osThreadGetName : 获取线程的名称。
- osThreadGetPriority : 获取线程的当前优先级。
- osThreadGetStackSize : 获取线程的堆栈大小。
- osThreadGetStackSpace : 在执行过程中根据堆栈水印记录获取线程的可用堆栈空间。
- osThreadGetState : 获取线程的当前线程状态。
- osThreadJoin:等待指定线程终止。
- osThreadNew:创建一个线程并将其添加到活动线程中。
- osThreadResume:恢复线程的执行。
- osThreadSetPriority:更改线程的优先级。
- osThreadSuspend:暂停线程的执行。
- osThreadTerminate:终止线程的执行。
- osThreadYield:将控制权传递给处于READY状态的下一个线程。
- 线程标志
- osThreadFlagsSet : 设置线程的指定线程标志。
- osThreadFlagsClear : 清除当前运行线程的指定线程标志。
- osThreadFlagsGet : 获取当前运行线程的当前线程标志。
- osThreadFlagsWait:等待当前正在运行的线程的一个或多个线程标志变为有信号。
- 事件标志
- osEventFlagsGetName : 获取事件标志对象的名称。
- osEventFlagsNew:创建并初始化一个事件标志对象。
- osEventFlagsDelete : 删除一个事件标志对象。
- osEventFlagsSet : 设置指定的事件标志。
- osEventFlagsClear : 清除指定的事件标志。
- osEventFlagsGet : 获取当前事件标志。
- osEventFlagsWait:等待一个或多个事件标志发出信号。
- 通用等待函数
- osDelay:等待超时(Time Delay)。
- osDelayUntil:等到指定时间。
- 定时器管理
- osTimerDelete : 删除一个计时器。
- osTimerGetName : 获取定时器的名称。
- osTimerIsRunning:检查计时器是否正在运行。
- osTimerNew : 创建并初始化一个计时器。
- osTimerStart:启动或重新启动计时器。
- osTimerStop:停止计时器。
- 互斥管理
- osMutexAcquire:如果它被锁定,则获取互斥锁或超时。
- osMutexDelete : 删除一个互斥对象。
- osMutexGetName : 获取互斥对象的名称。
- osMutexGetOwner:获取拥有互斥对象的线程。
- osMutexNew : 创建并初始化一个互斥对象。
- osMutexRelease:释放由osMutexAcquire获取的互斥锁。
- 信号量
- osSemaphoreAcquire:如果没有可用的令牌,则获取信号量令牌或超时。
- osSemaphoreDelete : 删除一个信号量对象。
- osSemaphoreGetCount : 获取当前信号量令牌计数。
- osSemaphoreGetName : 获取信号量对象的名称。
- osSemaphoreNew : 创建并初始化一个信号量对象。
- osSemaphoreRelease : 释放一个信号量令牌直到初始最大计数。
- 内存池
- osMemoryPoolAlloc:从内存池中分配内存块。
- osMemoryPoolDelete:删除内存池对象。
- osMemoryPoolFree:将分配的内存块返回给内存池。
- osMemoryPoolGetBlockSize : 获取内存池中的内存块大小。
- osMemoryPoolGetCapacity : 获取内存池中的最大内存块数。
- osMemoryPoolGetCount : 获取内存池中使用的内存块数。
- osMemoryPoolGetName : 获取内存池对象的名称。
- osMemoryPoolGetSpace : 获取内存池中可用的内存块数。
- osMemoryPoolNew : 创建并初始化一个内存池对象。
- 消息队列
- osMessageQueueDelete:删除消息队列对象。
- osMessageQueueGet:从队列中获取消息,如果队列为空则超时。
- osMessageQueueGetCapacity:获取消息队列中的最大消息数。
- osMessageQueueGetCount:获取消息队列中排队消息的数量。
- osMessageQueueGetMsgSize:获取消息队列中的最大消息大小。
- osMessageQueueGetName : 获取消息队列对象的名称。
- osMessageQueueGetSpace:获取消息队列中消息的可用槽数。
- osMessageQueueNew:创建并初始化消息队列对象。
- osMessageQueuePut:如果队列已满,则将消息放入队列或超时。
- osMessageQueueReset:将消息队列重置为初始空状态。
可以从线程和中断服务程序(ISR)调用以下 CMSIS-RTOS C API v2 函数:
- osKernelGetInfo , osKernelGetState , osKernelGetTickCount , osKernelGetTickFreq , osKernelGetSysTimerCount , osKernelGetSysTimerFreq
- osThreadGetId , osThreadFlagsSet
- osEventFlagsSet、osEventFlagsClear、osEventFlagsGet、osEventFlagsWait
- osSemaphoreAcquire , osSemaphoreRelease , osSemaphoreGetCount
- osMemoryPoolAlloc、osMemoryPoolFree、osMemoryPoolGetCapacity、osMemoryPoolGetBlockSize、osMemoryPoolGetCount、osMemoryPoolGetSpace
- osMessageQueuePut、osMessageQueueGet、osMessageQueueGetCapacity、osMessageQueueGetMsgSize、osMessageQueueGetCount、osMessageQueueGetSpace