【原创】说说ARM Cortex-M的软件接口标准库CMSIS
2赞ARM Cortex 微控制器软件接口标准 (CMSIS) 是Cortex-M系列MCU的与供应商无关的硬件抽象层。使用 CMSIS可以为接口外设、实时操作系统和中间件实现一致且简单的处理器软件接口,从而简化软件的重用、缩短新微控制器开发人员的学习过程,并缩短新设备的上市时间(做软件接口标准貌似是一种趋势了,趋于智能化开发)。
该标准完全可扩展,可确保其适合于所有 Cortex-M 处理器系列微控制器,从最小的 8 KB 设备到具有复杂通信外设(如以太网或 USB-OTG)的设备,内核外设访问层的 CMSIS 内存要求少于 1 KB 代码,少于 10 字节 RAM,下面瞅瞅CMSIS的架构图,上图:
架构图很清晰,下面说说CMSIS的几个组件:
1.CMSIS-CORE组件:提供Cortex-M系列微处理器的内核和外设的API函数,支持Cortex-M0,Cortex-M3,Cortex-M4,SC000和SC300,提供系统启动方法和访问特定处理器功能和内核外设的函数。它包含通过使用 Coresight调试单元进行 printf 风格输出的帮助器函数,并为 RTOS 内核定义与设备无关的接口以及用于内核识别的调试通道;
2.CMSIS-DSP组件:这个我曾在我最早期的一篇关于IAR6.3自带DSP应用库里介绍过,它提供了很多的复杂的优化的DSP函数库,包括向量运算、矩阵运算、复杂运算、过滤函数、控制函数、PID 控制器、傅里叶变换和很多其他常用的 DSP 算法。大多数算法为浮点格式和各种定点格式,并已针对 Cortex-M 系列处理器进行优化。Coretex-M4处理器实现使用 ARM SIMD(单指令多数据)指令集和浮点硬件,从而完全支持对信号处理算法使用 Cortex-M4 处理器的功能。优化的 CMSIS-DSP 库完全用 C 语言编写并提供源代码,允许软件程序员针对特定的应用要求对算法进行修改;
3.CMSIS-RTOS API组件:提供通用的API接口给一些实时操作系统(RTOS),具体如下图
4.CMSIS-SVD组件:以XML格式描述了系统外设和中断,调试的时候可能会用到(这个没弄明白,就不瞎说了,呵呵)。
这是篇纯介绍性文章,权当扩展下知识面了,呵呵,想具体研究的话可以去ARM的官方网站去下载CMSIS库(100多M大小),里面也有些说明文档(E文的哦),值得参考...未完待续~