技巧和窍门–ARM CMSIS简介

在过去的十年中,微控制器已经变得极为复杂,从复位向量开始从头开始开发固件已成为历史。软件复杂性正以指数级增长,并导致开发人员依赖和利用3rd 政党组成部分以越来越高的速度增长。为了减轻软件集成工作和不兼容的可能性,由硅和工具供应商组成的财团与ARM一起开发了CMSIS(发音为see-M-sys)标准。

CMSIS代表Cortex微控制器系统接口标准,由五部分组成; CMSIS核心,CMSIS 实时操作系统,CMSIS DSP,CMSIS SVD和CMSIS DAP。 CMSIS并不是使外围设备笨拙的抽象层,而是使开发人员访问Cortex-M内核和注册的方式标准化。 CMSIS为开发人员提供了一个通用接口,无论选择哪个芯片供应商,该接口都可以使用。图1概述了这五个部分如何相互作用。

ARM_CortexM_CMSIS_large图1 – ARM CMSIS

CMSIS Core为开发人员提供了许多有用的功能,这些功能可减轻尝试使微控制器启动和运行时的压力。第一个是一组函数和宏,除了启动代码(例如振荡器选择和配置)外,还可以用于访问Cortex-M寄存器(例如中断控制)。 CMSIS内核为设备外设寄存器提供了标准的命名约定,有助于使代码可移植且可读。例如,图2显示了在不使用CMSIS与不使用CMSIS的情况下如何设置系统滴答外设的比较。

信息系统 图2 – CMSIS SysTick示例

CMSIS 实时操作系统提供了一组与RTOS交互的功能。这些函数充当包装器,因此可以使用不同的RTOS,而无需大量修改代码库。符合CMSIS的开源RTOS的一个很好的例子和第一个可用的例子是Keil RTX 实时操作系统。

CMSIS DSP仅在具有执行DSP功能能力的高端Cortex-M4系列上可用。 CMSIS DSP提供了60多种DSP数学函数的库,这些函数通常被嵌入式软件开发人员使用。

与嵌入式软件开发人员相比,CMSIS SVD和CMSIS DAP对芯片和工具供应商的标准更高。 CMSIS SVD提供了一种XML格式,系统查看器使用它来提供MCU外设寄存器描述。 CMSIS DAP提供了调试访问端口的标准。

在考虑CMSIS时,开发人员需要牢记许多优点。首先,CMSIS通过它提供的通用规范提供了可移植性和重用性的途径。其次,CMSIS除了符合ANSI-C标准外,还遵循MISRA C约定,这甚至使安全关键的开发人员也可以使用该标准。最后,所有的CMSIS软件都使用Doxygen进行了记录。

 

发表评论

您的电子邮件地址不会被公开。 必需的地方已做标记 *

该网站使用Akismet减少垃圾邮件。 了解如何处理您的评论数据.