【ARM】CMSIS6 介绍
1、 简介
CMSIS是通用微控制器软件接口标准(Common Microcontroller Software Interface Standard ) 的简写。
CMSIS 包括API、软件组件、工具及工作流程,主要用于简化软件重用、缩短开发人员学习曲线,加快项目构建和调试,从而使产品更快上市。
CMSIS 最初是一个基于 Arm® Cortex®-M 的处理器的硬件抽象层,后来扩展到支持Arm Cortex-A 的一些处理器。为了简化访问,CMSIS 定义了通用工具接口,并通过为处理器和外设提供简单的软件接口来实现一致的设备支持。
CMSIS 的创建是为了帮助行业实现标准化。它可以在各种开发工具和微控制器上实现一致的软件层和设备支持。CMSIS 不是一个很大的软件层,不会带来很大开销,也没有定义标准外设。因此,芯片行业可以通过此通用标准支持各种基于Arm Cortex 处理器的设备。
2、 CMSIS组件
CMSIS 基础软件组件
为设备的基本级别功能提供软件抽象。
在同一 GitHub 存储库中维护,并作为一个CMSIS 软件包提供,名称为Arm::CMSIS
CMSIS-Core 对Arm Cortex处理器内核的标准化访问
CMSIS-Driver 中间件的通用外设驱动程序接口
CMSIS-RTOS2 实时操作系统的通用API
CMSIS 扩展软件组件
实现针对 Arm 处理器上的执行而优化的特定功能。
在单独的 GitHub 存储库中维护并以独立的 CMSIS-Pack 形式提供
CMSIS-DSP 嵌入式系统的优化计算功能
CMSIS-NN 高效且高性能的神经网络内核
CMSIS-View事件记录器和组件查看器技术
CMSIS-Compiler 重定向标准C运行时库的I/O函数
CMSIS工具
使用基于 CMSIS 的组件为软件开发工作流程提供有用的实用程序。
在单独的 GitHub 存储库中维护
CMSIS-Toolbox 一组与软件包一起使用的命令行工具
CMSIS-Stream用于优化DSP/ML块数据流的工具和方法
CMSIS-DAP 用于连接CoreSight调试访问端口的调试单元固件
CMSIS-Zone 定义描述系统资源并对它们进行分区
CMSIS 规范
定义嵌入式软件开发的方法和工作流程。
CMSIS-Pack 软件组件和设备/板支持的交付机制
CMSIS-SVD 用于调试视图的外设描述
3、CMSIS 的优势
CMSIS 降低了学习曲线、开发成本和上市时间。开发人员可以通过各种的标准化软件接口更快地编写软件。
一致的软件接口提高了软件的可移植性和可重用性。通用软件库和接口提供一致的软件框架。
提供用于调试连接、调试外设视图、软件交付和设备支持的接口,以缩短新微控制器部署的时间。
允许使用您偏好的编译器,因为它独立于编译器,因此主流编译器都支持。
通过调试器的外围信息和 printf 样式输出的 ITM 通道增强了程序调试。
CMSIS以CMSIS-Pack格式提供,可实现快速软件交付、简化更新并实现与开发工具的一致集成。
CMSIS-Zone管理多个处理器、内存区域和外设的配置,简化系统资源和分区。
IDE 和持续集成 (CI) 是嵌入式软件开发人员的重要工作流程。CMSIS-Toolbox 提供带有 CMake 后端的命令行构建工具,并集成到 VS Code 等 IDE 中。
4、CMSIS v6 支持以下工具链
Arm 编译器 v6.10 或更高版本
GCC 10 或更高版本
IAR 8 或更高版本
LLVM/Clang 17 以后版本
注意:对 Arm Compiler v5 的支持已被删除。(这意味着如果芯片厂家使用 CMSIS6 规范制作的 pack ,那么就无法使用 ARM Compiler v5 进行编译)