CMSIS-RTOS2 应用笔记 一 概述

来源:互联网 发布:apache.org 编辑:程序博客网 时间:2024/06/10 00:54

CMSIS-RTOS2  通用RTOS接口


CMSIS-RTOS2是一个通用的API,它与底层的RTOS内核无关。 程序员在用户代码中调用CMSIS-RTOS2 API函数,以确保从一个RTOS到另一个RTOS的最大可移植性。 使用CMSIS-RTOS2 API的中间件避免不必要的移植工作。




典型的CMSIS-RTOS2 API实现与现有的实时内核接口。  CMSIS-RTOS2 API提供以下属性和功能:

 线程管理允许您定义,创建和控制线程。
 中断服务程序(ISR)可以调用一些CMSIS-RTOS功能。 当不能从ISR上下文调用CMSIS-RTOS函数时,它拒            绝调用并返回错误代码。
 三种不同的事件类型支持多线程和/或ISR之间的通信:
 线程标志:可用于指示线程的特定条件。
 事件标志:可用于向线程或ISR指示事件。
 消息:可以发送到线程或ISR。 邮件缓冲在队列中。
 互斥管理和信号量被并入。
 可以使用以下功能安排CPU时间:
 许多CMSIS-RTOS功能中并入超时参数,以避免系统锁定。 当指定超时时,系统等待,直到资源可用或                    事件发生。 在等待时,其他线程被安排。
 osDelay和osDelayUntil函数将线程置于WAITING状态一段指定的时间。
 osThreadYield提供合作的线程切换,并将执行传递给同一优先级的另一个线程。
 定时器管理功能用于触发功能的执行。


CMSIS-RTOS2 API旨在通过Cortex-M存储器保护单元(MPU)可选地并入多处理器系统和/或访问保护。


在一些RTOS实现中,线程可以在不同的处理器上执行,因此消息队列可以驻留在共享存储器资源中。


CMSIS-RTOS2 API鼓励软件行业发展现有的RTOS实现。 对于Cortex-M处理器,RTOS实现可以在不同方面进行不同和优化。 可选功能可能是例如
 支持Cortex-M存储器保护单元(MPU)。
 支持多处理器系统。
 支持DMA控制器。
 确定性上下文切换。
 循环上下文切换。
 防止死锁,例如优先级倒置。
 通过使用ARMv7-M指令LDREX和STREX来实现零中断延迟。


0 0
原创粉丝点击