良许Linux教程网 干货合集 Cortex-M微控制器软件接口标准CMSIS详细内容

Cortex-M微控制器软件接口标准CMSIS详细内容

CMSIS(Cortex Microcontroller Software Interface Standard)是一种与Cortex微控制器相关的软件接口标准。

许多学习Cortex-M处理器的读者可能对CMSIS并不十分了解,甚至有些人可能还不知道它的存在。今天我来分享一下有关CMSIS的内容,希望能对大家有所帮助。

一、CMSIS概述

CMSIS是一种与Cortex-M处理器无关的软件接口标准,用于提供硬件抽象层。它旨在提供一组一致的接口和标准,以简化嵌入式软件开发过程。通过使用CMSIS,开发人员可以更轻松地编写可移植的代码,并利用处理器的硬件功能。

地址:

https://www.arm.com/why-arm/technologies/cmsis

1.特点

  • 标准化以降低成本
  • 通用方法简化了软件重用
  • 一致的系统启动和外围设备访问

2.CMSIS主要内容

CMSIS-RTOS:主要用于RTOS的API,可与中间件和库组件实现一致的软件层。

CMSIS-DSP:Arm针对各种Cortex-M处理器内核进行了优化的丰富DSP功能的集合。

CMSIS-Driver:接口可用于许多微控制器系列。

CMSIS-Pack:定义了包含软件组件的软件包。

CMSIS-SVD:可通过当前寄存器状态显示设备外设的详细视图。

CMSIS-DAP:Cortex调试访问端口(DAP)的标准化接口。

CMSIS-NN:高效的神经网络内核的集合。

image-20231216200801841
image-20231216200801841

3.CMSIS 5.6.0

目前(2020.02)最新CMSIS版本为V5.6.0,而且开源在Github:

https://github.com/ARM-software/CMSIS_5/releases/tag/5.6.0

4.应用

CMSIS的应用场景非常广泛,稍微从事底层一点开发的工程师应该都看到过一些地方有CMSIS相关的应用,举一个大家最常见的,在Keil中的应用:

image-20231216200806203
image-20231216200806203

二、CMSIS-RTOS

CMSIS-RTOS目前是V2(CMSIS-RTOS2),它提供了一种用于ARM Cortex基于处理器设备的通用RTOS接口。它为需要RTOS功能的软件组件提供了标准化的API。

地址:

https://arm-software.github.io/CMSIS_5/RTOS2/html/index.html

使用STM32CubeMX的读者应该都知道,配置RTOS有这么一个选项:

image-20231216200824670
image-20231216200824670

三、CMSIS-DSP

CMSIS-DSP是一套可在基于Cortex-M处理器设备上常见使用的数字信号处理软件库。

地址:

https://arm-software.github.io/CMSIS_5/RTOS2/html/index.html

涵盖:

  • 基本数学功能
  • 快速数学功能
  • 复杂的数学函数
  • 筛选器
  • 矩阵函数
  • 转换功能
  • 电机控制功能
  • 统计功能
  • 支持功能
  • 插补功能

包含库:

  • arm_cortexM7lfdp_math.lib(Cortex-M7,小端,双精度浮点单元)
  • arm_cortexM7bfdp_math.lib(Cortex-M7,大字节序,双精度浮点单元)
  • arm_cortexM7lfsp_math.lib(Cortex-M7,小端,单精度浮点单元)
  • arm_cortexM7bfsp_math.lib(Cortex-M7,大字节序和单精度浮点单元打开)
  • arm_cortexM7l_math.lib(Cortex-M7,小端)
  • arm_cortexM7b_math.lib(Cortex-M7,大端)
  • arm_cortexM4lf_math.lib(Cortex-M4,小端,浮点单元)
  • arm_cortexM4bf_math.lib(Cortex-M4,大端,浮点单元)
  • arm_cortexM4l_math.lib(Cortex-M4,小端)
  • arm_cortexM4b_math.lib(Cortex-M4,大端)
  • arm_cortexM3l_math.lib(Cortex-M3,小端)
  • arm_cortexM3b_math.lib(Cortex-M3,大端)
  • arm_cortexM0l_math.lib(Cortex-M0 / Cortex-M0 +,小端)
  • arm_cortexM0b_math.lib(Cortex-M0 / Cortex-M0 +,大端)
  • arm_ARMv8MBLl_math.lib(Armv8-M基线,小端)
  • arm_ARMv8MMLl_math.lib(Armv8-M主线,小端)
  • arm_ARMv8MMLlfsp_math.lib(Armv8-M主线,小字节序,单精度浮点单元)
  • arm_ARMv8MMLld_math.lib(Armv8-M主线,小端,DSP指令)
  • arm_ARMv8MMLldfsp_math.lib(Armv8-M主线,小字节序,DSP指令,单精度浮点单元)

四、CMSIS-Drive

CMSIS-Driver是一种软件API,它描述了中间件堆栈和用户应用程序的外围设备驱动程序接口。

地址:

https://arm-software.github.io/CMSIS_5/Driver/html/index.html

一张图了解大概:

image-20231216200837128
image-20231216200837128

五、CMSIS-Pack

CMSIS-Pack是一套软件组件包,其中包括:

  • 源代码,头文件和软件库
  • 文档和源代码模板
  • 设备参数以及启动代码和编程算法
  • 示例项目

地址:

https://arm-software.github.io/CMSIS_5/Pack/html/index.html

一张图了解大概:

image-20231216200840606
image-20231216200840606

六、CMSIS-SVD

CMSIS-SVD(System View Description)规范了基于Arm Cortex-M微控制器中包含的系统的描述,尤其是外围设备的内存映射寄存器。

地址:

https://arm-software.github.io/CMSIS_5/SVD/html/index.html

CMSIS-SVD文件由芯片供应商开发和维护,我们普通开发者不用去深入了解。

image-20231216200843185
image-20231216200843185

七、CMSIS-DAP

CMSIS-DAP是支持访问CoreSight 调试访问端口(DAP)的固件规范和实现,以及各种Cortex处理器提供CoreSight调试和跟踪。

image-20231216200857761
image-20231216200857761

地址:

https://arm-software.github.io/CMSIS_5/DAP/html/index.html

CMSIS-DAP固件作为源代码提供,并且可以完全配置为新的调试单元。

image-20231216200900538
image-20231216200900538

八、CMSIS-NN

CMSIS-NN(Neural Network)是一个有效的神经网络内核的集合。它主要针对具有神经网络的一些处理器,比如前不久新出来的Cortex-M55。

地址:

https://arm-software.github.io/CMSIS_5/NN/html/index.html

涵盖:

  • 神经网络卷积功能
  • 神经网络激活功能
  • 全连接层功能
  • 神经网络池功能
  • Softmax功能
  • 神经网络支持功能
image-20231216200906573
image-20231216200906573

以上就是良许教程网为各位朋友分享的Linu系统相关内容。想要了解更多Linux相关知识记得关注公众号“良许Linux”,或扫描下方二维码进行关注,更多干货等着你 !

137e00002230ad9f26e78-265x300
本文由 良许Linux教程网 发布,可自由转载、引用,但需署名作者且注明文章出处。如转载至微信公众号,请在文末添加作者公众号二维码。
良许

作者: 良许

良许,世界500强企业Linux开发工程师,公众号【良许Linux】的作者,全网拥有超30W粉丝。个人标签:创业者,CSDN学院讲师,副业达人,流量玩家,摄影爱好者。
上一篇
下一篇

发表评论

联系我们

联系我们

公众号:良许Linux

在线咨询: QQ交谈

邮箱: yychuyu@163.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部