当前位置: 首页 > news >正文

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

http://www.lryc.cn/news/610616.html

相关文章:

  • Mac上pnpm的安装与使用
  • AIDL学习
  • 《算法导论》第 2 章 - 算法基础
  • 朴素贝叶斯(Naive Bayes)算法详解
  • pipeline方法关系抽取--课堂笔记
  • 神坛上的transformer
  • VUE2 学习笔记18 路由守卫
  • 无人机 × 巡检 × AI识别:一套可复制的超低延迟低空视频感知系统搭建实践
  • 人月神话:软件工程的永恒智慧
  • Android 之 Kotlin中的协程(Dispatchers.IO)
  • 研发团队看板协作中的自动化实践:集成CI/CD与任务流转
  • Goby 漏洞安全通告| NestJS DevTools /inspector/graph/interact 命令执行漏洞(CVE-2025-54782)
  • Linux内核参数调优:为K8s节点优化网络性能
  • 【功能测试】软件功能上线测试经验总结
  • K8S健康检查巡检清单
  • K8s Master状态NotReady
  • 播放器音频后处理实践(一)
  • 【Axure视频教程】动态折线图
  • 从 “看懂图” 到 “读懂视频”:多模态技术如何用文本反哺视觉?
  • 02-算法
  • 基于Istio与Envoy的gRPC流量控制与熔断降级实战经验分享
  • 43.MySQL管理
  • 站在JS的角度,看鸿蒙中的ArkTs
  • 进阶向:PDF合并/拆分工具
  • 让 Spark 干体力活:用 Java 快速找出最小值
  • 集成电路学习:什么是RS-232推荐标准232
  • neo4j虚拟关系的统计
  • golang实现支持100万个并发连接(例如,HTTP长连接或WebSocket连接)系统架构设计详解
  • Android开发:如何正确将ImageView中的矩形坐标转换为图片原始像素坐标
  • ⭐CVPR2025 MatAnyone:稳定且精细的视频抠图新框架