CMSIS-RTOS2 函数

内核信息和控制

  • 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:创建一个线程并将其添加到Active Threads。
  • osThreadResume:恢复执行线程。
  • osThreadSetPriority:更改线程的优先级。
  • osThreadSuspend:挂起一个线程的执行。
  • osThreadTerminate:终止线程的执行。
  • osThreadYield:将控件传递到状态为READY的下一个线程。

线程标志

  • osThreadFlagsSet:设置线程的指定线程标志。
  • osThreadFlagsClear:清除当前正在运行的线程的指定线程标志。
  • osThreadFlagsGet:获取当前正在运行的线程的当前Thread Flags。
  • osThreadFlagsWait:等待当前正在运行的线程的一个或多个线程标志变为信号。

事件标志

  • osEventFlagsGetName:获取Event Flags对象的名称。
  • osEventFlagsNew:创建并初始化事件标志对象。
  • osEventFlagsDelete:删除事件标志对象。
  • osEventFlagsSet:设置指定的事件标志。
  • osEventFlagsClear:清除指定的事件标志。
  • osEventFlagsGet:获取当前的事件标志。
  • osEventFlagsWait:等待一个或多个事件标志变为信号。

通用等待功能

  • osDelay:等待超时(延时)。
  • osDelayUntil:等到指定的时间。

计时器管理

  • osTimerDelete:删除一个计时器。
  • osTimerGetName:获取计时器的名称。
  • osTimerIsRunning:检查一个计时器是否正在运行。
  • osTimerNew:创建并初始化定时器。
  • osTimerStart:启动或重启定时器。
  • osTimerStop:停止定时器

互斥管理

  • osMutexAcquire:如果被锁定,则获取互斥量或超时。
  • osMutexDelete:删除一个Mutex对象。
  • osMutexGetName:获取Mutex对象的名称。
  • osMutexGetOwner:获取拥有Mutex对象的线程。
  • osMutexNew:创建和初始化一个Mutex对象。
  • osMutexRelease:释放由osMutexAcquire获取的Mutex。

信号量

  • osSemaphoreAcquire:如果没有令牌可用,则获取信号量令牌或超时。
  • osSemaphoreDelete:删除一个信号量对象。
  • osSemaphoreGetCount:获取当前的信号量令牌计数。
  • osSemaphoreGetName:获取信号量对象的名称。
  • osSemaphoreNew:创建和初始化一个信号量对象。
  • osSemaphoreRelease:释放由osSemaphoreAcquire获取的信号量令牌。

内存池

  • osMemoryPoolAlloc:从内存池分配一个内存块。
  • osMemoryPoolDelete:删除内存池对象。
  • osMemoryPoolFree:将分配的内存块返回到内存池。
  • osMemoryPoolGetBlockSize:在内存池中获取内存块大小。
  • osMemoryPoolGetCapacity:获取内存池中的最大内存块数。
  • osMemoryPoolGetCount:获取内存池中使用的内存块数。
  • osMemoryPoolGetName:获取内存池对象的名称。
  • osMemoryPoolGetSpace:获取内存池中可用的内存块数。
  • osMemoryPoolNew:创建和初始化内存池对象。

消息队列

  • osMessageQueueDelete:删除消息队列对象。
  • osMessageQueueGet:如果Queue为空,则从队列获取消息或超时。
  • osMessageQueueGetCapacity:获取消息队列中的最大消息数。
  • osMessageQueueGetCount:获取消息队列中排队消息的数量。
  • osMessageQueueGetMsgSize:在内存池中获取最大消息大小。
  • osMessageQueueGetName:获取消息队列对象的名称。
  • osMessageQueueGetSpace:获取消息队列中消息的可用插槽数。
  • osMessageQueueNew:创建和初始化消息队列对象。
  • osMessageQueuePut:如果队列已满,则将消息放入队列或超时。
  • osMessageQueueReset:将消息队列重置为初始空状态。

RTX5具体API

  • osRtxErrorNotify:操作系统错误回调函数。
  • osRtxIdleThread:操作系统空闲线程。
  • osRtxSysTimerSetup:OS系统定时器功能(默认实现使用SysTick)
  • osRtxSysTimerEnable:启用系统定时器。
  • osRtxSysTimerDisable:禁用系统定时器。
  • osRtxSysTimerAckIRQ:确认系统定时器IRQ。
  • osRtxSysTimerGetCount:获取系统计时器计数。
  • osRtxSysTimerGetFreq:获取系统定时器频率。

可以从线程和中断服务程序(ISR)调用以下CMSIS-RTOS2函数:

  • osKernelGetSysTimerCount, osKernelGetSysTimerFreq
  • osThreadFlagsSet
  • osEventFlagsSet, osEventFlagsClear, osEventFlagsGet, osEventFlagsWait
  • osSemaphoreAcquire, osSemaphoreRelease, osSemaphoreGetCount
  • osMemoryPoolAlloc, osMemoryPoolFree, osMemoryPoolGetCapacity, osMemoryPoolGetBlockSize, osMemoryPoolGetCount, osMemoryPoolGetSpace
  • osMessageQueuePut, osMessageQueueGet, osMessageQueueGetCapacity, osMessageQueueGetMsgSize, osMessageQueueGetCount, osMessageQueueGetSpace

相关推荐

  1. CMSIS-RTOS2 函数

    2023-12-28 16:56:06       56 阅读
  2. 函数2

    2023-12-28 16:56:06       27 阅读
  3. hal_stm32_RTC函数

    2023-12-28 16:56:06       24 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-28 16:56:06       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-28 16:56:06       100 阅读
  3. 在Django里面运行非项目文件

    2023-12-28 16:56:06       82 阅读
  4. Python语言-面向对象

    2023-12-28 16:56:06       91 阅读

热门阅读

  1. 复试 || 就业day01(2023.12.27)算法篇

    2023-12-28 16:56:06       45 阅读
  2. Linux telnet命令

    2023-12-28 16:56:06       49 阅读
  3. ROS2 相对于 ROS1 做了哪些改动、有什么不同点

    2023-12-28 16:56:06       45 阅读
  4. k8s 的YAML文件详解

    2023-12-28 16:56:06       49 阅读
  5. TCP与UDP是流式传输协议吗?

    2023-12-28 16:56:06       52 阅读
  6. 2974. 最小数字游戏 23.12.23(二)

    2023-12-28 16:56:06       51 阅读
  7. 力扣面试经典题之哈希表

    2023-12-28 16:56:06       67 阅读
  8. Leetcod面试经典150题刷题记录 —— 区间篇

    2023-12-28 16:56:06       58 阅读
  9. js如何判断一个字符串是否为json格式

    2023-12-28 16:56:06       58 阅读
  10. 使用Aspose.Words合并表格的单元格

    2023-12-28 16:56:06       49 阅读