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

相关推荐
17(无规则自律)3 小时前
深入浅出 Linux 内核模块,写一个内核版的 Hello World
linux·arm开发·嵌入式硬件
梁洪飞16 小时前
内核的schedule和SMP多核处理器启动协议
linux·arm开发·嵌入式硬件·arm
代码游侠1 天前
学习笔记——Linux字符设备驱动
linux·运维·arm开发·嵌入式硬件·学习·架构
syseptember2 天前
Linux网络基础
linux·网络·arm开发
代码游侠2 天前
学习笔记——Linux字符设备驱动开发
linux·arm开发·驱动开发·单片机·嵌入式硬件·学习·算法
程序猿阿伟2 天前
《Apple Silicon与Windows on ARM:引擎原生构建与模拟层底层运作深度解析》
arm开发·windows
wkm9562 天前
在arm64 ubuntu系统安装Qt后编译时找不到Qt3DExtras头文件
开发语言·arm开发·qt
unicrom_深圳市由你创科技2 天前
基于ARM+DSP+FPGA异构计算架构的高速ADC采集卡定制方案
arm开发·fpga开发
松涛和鸣2 天前
DAY69 Practical Guide to Linux Character Device Drivers
linux·服务器·arm开发·数据库·单片机·嵌入式硬件
松涛和鸣2 天前
69、Linux字符设备驱动实战
linux·服务器·网络·arm开发·数据库·驱动开发