【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 进行编译)

相关推荐
代码游侠6 天前
STM32开发——基础外设
linux·运维·arm开发·stm32·单片机·嵌入式硬件·学习
代码游侠6 天前
Linux驱动复习——驱动
linux·运维·arm开发·笔记·学习
古译汉书7 天前
【IoT死磕系列】Day 6:工业控制底层大动脉—CAN总线
linux·网络·arm开发·单片机·物联网·tcp/ip
姜太公钓鲸2337 天前
STM32是ST公司基于ARM Cortex-M内核开发的32位微控制器。上述文字中的内核是什么意思?作用是什么?
arm开发·stm32·嵌入式硬件
日更嵌入式的打工仔7 天前
FIQ 与 IRQ
arm开发·笔记
The️8 天前
STM32-FreeRTOS操作系统-软件定时器
arm开发·stm32·单片机·嵌入式硬件·mcu·c#
szxinmai主板定制专家8 天前
RK3588 8个USB工控解决方案,适用于机器视觉,工业互联等
arm开发·人工智能·fpga开发
我在人间贩卖青春8 天前
ARM编程模型
arm开发·arm工作模式
安全二次方security²8 天前
【CVE-2025-0647】ARM CPU漏洞安全通告
arm开发·安全·cve-2025-0647·tlbi·cpp rctx 指令·c1-ultra·虚拟化漏洞
道亦无名9 天前
armBitRevIndexTable1024
arm开发