CMSIS-RTOS2 应用笔记 一概述

xiaoxiao2021-02-27  116

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来实现零中断延迟。

转载请注明原文地址: https://www.6miu.com/read-14903.html

最新回复(0)