当前位置: 华文世界 > 科技

一文读懂CMSIS软件

2024-09-07科技

CMSIS 是Cortex Microcontroller Software Interface Standard的缩写,中文为Cortex系列微控制器软件接口标准。它是由ARM公司、芯片供应商和软件供应商共同制定的一种通用、高效、灵活和易用的软件标准,旨在为Cortex-M微控制器设计的软件开发提供一致的硬件抽象层和简单的软件接口。

CMSIS主要包括以下几个部分:

  • CMSIS-Core :提供了对Cortex-M内核和外设的访问接口,包括寄存器定义、系统启动代码、时钟配置、异常处理等。
  • CMSIS-Driver :提供了对微控制器外设的访问函数,包括GPIO、UART、SPI、I2C、ADC等。
  • CMSIS-DSP :提供了一系列数字信号处理算法库,包括正余弦、矩阵计算、FFT等。
  • CMSIS-NN :提供了一系列机器学习算法库,包括卷积神经网络、循环神经网络等。
  • CMSIS-RTOS :提供了一种实时操作系统的通用API,可以支持多种操作系统和中间件组件,如FreeRTOS、RT-Thread等。
  • CMSIS-DAP :提供了一种Cortex-M内核处理器的开源调试器固件,可以与其他逻辑电路集成在同一芯片上。
  • CMSIS-Zone :提供了一种多核配置、TrustZone安全扩展和MPU设置的工具。
  • CMSIS-SVD :提供了一种系统视图描述文件,以XML格式描述了外设信息和其他设备参数
  • CMSIS软件架构由以下四层构成:

  • 核内外设访问层(CPAL,CorePeripheraIAccessLayer) :由ARM实现,包括对寄存器名称、地址的定义,内核寄存器、NVIC、调试子系统的访问接口定义以及对特殊用途寄存器的访问接口(例如:CONTROL,xPSR)定义。
  • 片上外设访问层(DPAL,DevicePeripheraIAccessLayer) :该层由芯片厂商负责实现,负责对硬件寄存器地址以及外设访问接口进行定义。该层可调用CPAL层提供的接口函数同时根据设备的特性对异常向量表进行扩展,以处理相应外设的中断请求。
  • 外设访问函数(AFP,AccessFunctionsforPeripherals) :该层也由芯片厂商负责实现,提供访问片上外设的访问函数,该部分可选。
  • 操作系统及中间件接口层(OSMI,OperatingSystemandMiddlewareInterfaceLayer) :该层提供了与操作系统和中间件组件的一致软件接口,例如CMSIS-RTOS、CMSIS-DSP、CMSIS-Driver、CMSIS-Pack、CMSIS-SVD、CMSIS-DAP和CMSIS-NN等。
  • CMSIS软件架构的优势主要有以下几点:

  • 一致性 :CMSIS提供了一致的设备支持和简单的软件接口,使得不同的微控制器和外设可以使用相同的软件代码,无需修改或重新编写。这样可以提高软件的可重用性和可移植性,降低开发者的学习成本和开发时间。
  • 优化性 :CMSIS包含了一些针对不同Cortex-M处理器核心优化的软件库,例如CMSIS-DSP、CMSIS-NN等。这些库提供了丰富的数字信号处理和神经网络功能,可以提高软件的性能和效率。
  • 灵活性 :CMSIS支持多种操作系统和中间件组件,例如CMSIS-RTOS、CMSIS-Driver等。这些组件提供了与硬件无关的抽象层,使得开发者可以根据自己的需求选择合适的软件框架和功能。
  • 易用性 :CMSIS提供了一种软件包的交付机制(CMSIS-Pack),可以包含设备、板卡和软件组件的信息。开发者可以通过CMSIS-Pack管理器轻松地下载、安装和更新所需的软件包,无需手动配置或搜索。