【ARM】CMSIS组件介绍-2022

CMSIS是一工具、API、框架和工作流程,有助于简化软件重用、减少微控制器开发人员的学习曲线、加快项目构建和调试,从而缩短新应用程序的上市时间。


CMSIS 最初是一个基于 Arm® Cortex®-M 处理器并独立于供应商的硬件抽象层,后来扩展到支持基于 Arm Cortex-A 的入门级处理器。为了简化访问,CMSIS 定义了通用工具接口,并通过向处理器和外围设备提供简单的软件接口来实现一致的设备支持。


CMSIS 是与各种芯片和软件供应商密切合作定义的,它提供了一种通用方法来连接外围设备、实时操作系统和中间件组件。它旨在实现来自多个供应商的软件组件的组合。

CMSIS 是开源的,在GitHub 上协作开发。


CMSIS-...支持的处理器说明
Core(M)All Cortex-M, SecurCoreCortex-M 处理器内核和外设的标准化 API。
包括 Cortex-M4/M7/M33/M35P SIMD 指令的内在函数。
Core(A)Cortex-A5/A7/A9用于 Cortex-A5/A7/A9 处理器内核和外围设备的 API 和基本运行时系统。
DriverAll Cortex中间件的通用外设驱动接口。将微控制器外围设备与实现通信协议栈、文件系统或图形用户界面等的中间件连接起来。
DSPAll Cortex-MDSP 库集合,包含 60 多种函数,适用于各种数据类型:定点(小数 q7、q15、q31)和单精度浮点(32 位)。用于 Cortex-M4/M7/M33/M35P针对 SIMD 指令集优化。
NNAll Cortex-M高效神经网络内核的集合,旨在最大限度地提高性能并最大限度地减少 Cortex-M 处理器内核上的内存占用。
RTOS v1Cortex-M0/M0+/M3/M4/M7实时操作系统的通用 API 以及基于 RTX 的参考实现。它支持可以跨多个 RTOS 系统工作的软件组件
RTOS v2All Cortex-M, Cortex-A5/A7/A9使用 Armv8-M 支持、动态对象创建、多核系统配置、二进制兼容接口扩展 CMSIS-RTOS v1。
PackAll Cortex-M, SecurCore, Cortex-A5/A7/A9描述软件组件、设备参数和评估板支持的交付机制。它简化了软件重用和产品生命周期管理 (PLM)。是Open CMSIS Pack 项目的一部分。
BuildAll Cortex-M, SecurCore, Cortex-A5/A7/A9一组提高生产力的工具、软件框架和工作流程,例如持续集成 (CI) 支持。替换为CMSIS-Toolbox。
SVDAll Cortex-M, SecurCore可用于在调试器或 CMSIS-Core 头文件中创建外围设备感知的设备的外围设备描述。
DAPAll Cortex CoreSight 调试访问接口的调试单元的固件。
ZoneAll Cortex-M定义描述系统资源并将这些资源划分为多个项目和执行区域的方法。

CMSIS 的好处是:

1. CMSIS 降低了学习曲线、开发成本和上市时间。开发人员可以通过各种易于使用的标准化软件接口更快地编写软件。

2. 一致的软件接口提高了软件的可移植性和可重用性。通用软件库和接口提供一致的软件框架。

3. 它提供用于调试连接、调试外设视图、软件交付和设备支持的接口,以缩短新微控制器部署的上市时间。

4. 它允许使用您选择的编译器,因为它独立于编译器,因此受到主流编译器的支持。

5. 它通过调试器的外围信息和用于 printf 样式输出的 ITM 通道增强了程序调试。

6. CMSIS 以 CMSIS-Pack 格式交付,可实现快速软件交付、简化更新并实现与开发工具的一致集成。

7. CMSIS-Zone 将简化系统资源和分区,因为它管理多个处理器、内存区域和外围设备的配置。

8. 持续集成是当今大多数软件开发人员的常见做法。CMSIS-Build 支持这些工作流程并使持续测试和验证更容易。


来源:https://arm-software.github.io/CMSIS_5/General/html/index.html