CMSIS-RTOS2 文档翻译 之 功能概述 转载
为了方便找 转载于 CMSIS-RTOS2 文档翻译 之 功能概述 - STM32团队 ST意法半导体中文论坛
功能概述
CMSIS-RTOS v2 提供了多种 API 接口:
- CMSIS-RTOS2 是支持动态对象创建和 Armv8-M(Arm Cortex-M23 和 Cortex-M33)的新 C 函数 API 。
- CMSIS-RTOS C API v1 是与 CMSIS-RTOS v1 向后兼容的 C 函数 API 。
- CMSIS-RTOS C++ API 是一个 C++ 类函数 API 。
CMSIS-RTOS2
通用设计概念
所有的 RTOS 对象都有一个共同的设计概念。对象的整个生命周期可以概括为创建 -> 使用 -> 销毁。 创建对象 通过调用它的 osXxxNew 函数创建一个对象。新函数返回一个可用于与新对象一起操作的标识符。一个对象的实际状态通常存储在一个对象特定的控制块中。控制块的内存布局(和所需的大小)是特定于实现的。人们不应该对控制块做任何具体的假设。控制块布局可能会发生变化,因此应视为实现内部的细节。 为了公开有关对象特定选项的控制,所有 osXxxNew 函数都提供了一个可选的 attr 参数,默认情况下它可以保留为 NULL 。它需要一个指向特定于对象的属性结构的指针,通常包含这些字段- name 为了标识附加可读的名称,
- attr_bits 控制对象特定的选项,
- cb_mem 手动为控制块提供内存
- cb_size 量化为控制块提供的内存大小。
函数参考
- 内核信息和控制
- 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 : 等待超时(时间延迟)。
- 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 : 将消息队列重置为初始空状态。
- OS Tick API
- OS_Tick_Setup : 建立 OS Tick 。
- OS_Tick_Enable : 启用 OS Tick 。
- OS_Tick_Disable : 禁用 OS Tick 。
- OS_Tick_AcknowledgeIRQ : 确认 OS Tick IRQ 。
- OS_Tick_GetIRQn : 获取 OS Tick IRQ 编号。
- OS_Tick_GetClock : 获取 OS Tick 时钟。
- OS_Tick_GetInterval : 获取 OS Tick 间隔。
- OS_Tick_GetCount : 获取 OS Tick 计数值。
- OS_Tick_GetOverflow : 获取 OS Tick 溢出状态。
- RTX5 特定的 API
- osRtxErrorNotify : OS 错误回调函数。
- osRtxIdleThread : OS 空闲线程。
- osKernelGetInfo, osKernelGetState, osKernelGetTickCount, osKernelGetTickFreq, osKernelGetSysTimerCount, osKernelGetSysTimerFreq
- osThreadFlagsSet
- osEventFlagsSet, osEventFlagsClear, osEventFlagsGet, osEventFlagsWait
- osSemaphoreAcquire, osSemaphoreRelease, osSemaphoreGetCount
- osMemoryPoolAlloc, osMemoryPoolFree, osMemoryPoolGetCapacity, osMemoryPoolGetBlockSize, osMemoryPoolGetCount, osMemoryPoolGetSpace
- osMessageQueuePut, osMessageQueueGet, osMessageQueueGetCapacity, osMessageQueueGetMsgSize, osMessageQueueGetCount, osMessageQueueGetSpace
归档链接:
CMSIS-RTOS2 文档翻译 之 简介
CMSIS-RTOS2 文档翻译 之 修订记录
CMSIS-RTOS2 文档翻译 之 通用 RTOS 接口
CMSIS-RTOS2 文档翻译 之 RTOS 验证
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
