CMSIS-RTOS API Version 2 (CMSIS-RTOS2) 是基于 Arm® Cortex®-M 处理器的通用 RTOS 接口。它为需要 RTOS 功能的软件提供了一个标准化的 API ,并为用户和软件行业带来了重大的好处:
- CMSIS-RTOS2 提供了许多应用程序所需的基本功能。
- CMIS-RSOT2 的统一特征集减少了学习的工作量并简化了软件组件的共享。
- 使用 CMSIS-RTOS2 的中间件组件是 RTOS 不可知的,并且更容易适应。
- CMSIS-RTOS2 的标准项目模板可以免费提供 CMSIS-RTOS2 的实现。
-
注意
- CMSIS-RTOS API Version 2 定义了最小功能集。RTOS 供应商可以提供具有扩展功能的实现。
CMSIS-RTOS2 管理微控制器系统的资源,并实现并行运行的并行线程的概念。
应用程序通常需要几个并发活动 CMSIS-RTOS2 可以在需要时管理多个并发活动。每个活动都有一个独立的线程执行特定的任务,这简化了整个程序结构。CMSIS-RTOS2 系统具有可扩展性,可以在以后轻松添加其他线程。线程的优先级允许更快地执行用户应用程序中时间关键的部分。
CMSIS-RTOS2 提供许多实时应用程序所需的服务,例如定时器功能的定期激活,存储器管理以及具有时间限制的线程之间的消息交换。
CMSIS-RTOS2 满足以下新要求:
- 动态对象创建不再需要静态内存,静态内存缓冲区现在是可选的。
- 支持 Armv8-M 体系结构,提供安全和非安全的代码执行状态。
- 多核系统中消息传递的规定。
- 全面支持 C++ 运行时环境。
- C 接口, 在 ABI 兼容编译器中是二进制兼容的。
作为这些要求的结果,CMSIS-RTOS2 有以下基本修改:
- 函数 osXxxxNew 替换 osXxxxCreate; 函数 osXxxxNew 和 osXxxxDelete 创建并销毁对象。
- C 函数 main 不再作为线程启动(这是 CMSIS-RTOS v1 中的可选功能)。
- 返回 osEvent 的函数已被替换。
CMSIS-RTOS2 为 CMSIS-RTOS API v1 提供翻译层。可以在同一个应用程序中混合 CMSIS-RTOS API v2 和 CMSIS-RTOS API v1。随着时间的推移,您可能会迁移到新的API,如从 API v1迁移到 API v2 所述。
CMSIS-RTOS2 不符合 POSIX 标准,但具有启用 C++11 / C++14 接口的条款。
以下各节提供了有关 CMSIS-RTOS2 和 RTX 参考实现的更多详细信息。
- 修订历史记录文档对 CMSIS-RTOS API v2 和 RTX v5 的每个版本进行了更改。
- 通用 RTOS 接口提供了有关 CMSIS-RTOS API v2 的概述。
- 功能概述列出了 CMSIS-RTOS2 API 函数和头文件 cmsis_os2.h 。
- RTOS 验证描述了公开可用的验证套件。
- 从 API v1 迁移到 API v2 显示了如何在现有项目中使用 CMSIS-RTOS2,并列出了 CMSIS-RTOS v1 的功能差异。
- RTX v5 实施提供了关于 RTX v5 的操作和使用的一般信息。
ARM::CMSIS 包中的 CMSIS-RTOS2
以下与 CMSIS-RTOS2 相关的文件存在于 ARM :: CMSIS 包目录中:
文件夹 | 内容 |
---|---|
CMSIS/Documentation/RTOS2 | 本文档 |
CMSIS/RTOS2/Include | cmsis_os2.h 头文件 |
CMSIS/RTOS2/RTX | 基于 RTX v5 的 CMSIS-RTOS v2 参考实现 |
CMSIS/RTOS2/Template | 与 CMSIS-RTOS v1 的兼容层 |