这次我们来聊聊CMSIS。之前在Kile环境下创建STM32工程的时候,对有些文件的加入总不是很了解,书上或网上建立工程的教程对于这些文件的加入也是一笔带过,或者直接不说。对于类似名叫core_cm3.h,system_stm32f4xx.c的文件的作用感到比较困惑。在阅读了《ARM Cortex-m3与Conrtex-m4权威指南》之后,对CMSIS才有了一个比较清楚的了解,也知道为什么工程中需要加入这些文件了。
以下内容节选自《ARM Cortex-m3与Conrtex-m4权威指南》第三版,Joseph Yiu著,清华大学出版社出版。根据这些描述我将创建一个典型的STM32F4的工程,以便更好的来理解我们对CMSIS的阐述。如果你想深入了解Cortex-m3或Cortex-m4而不是停留在简单的函数调用的话,我非常建议阅读本书,它会很好的解答你在学习过程中遇到的很多问题。
1.CMSIS简介
CMSIS由ARM开发,它使得微控制器和软件供应商可以使用一致的软件结构来开发Cortex微控制器的软件,许多Cortex-M微控制器的软件产品都是符合CMSIS的。
由于当前庞大的生态系统,对软件结构进行某种形式的标准化已经非常必要,这样可以确保多种开发工具和不同软件解决方案的兼容性。同时,嵌入式系统也变得越来越复杂,开发和软件测试的工作量也显著增加了。为了减少开发时间并且降低产品中存在缺陷的风险,软件重用已经越来越普遍。另外,嵌入式系统的复杂度也增加了对第三方软件解决方案的依赖。例如,一个嵌入式软件工程可能会涉及各方面的软件部件:
·内部开发者开发的软件
·重用的其他项目的软件
·微控制器供应商的设备驱动库
·嵌入式OS
·通信协议栈等其他的第三方软件产品
在这种情况下,各种软件产品间的配合已经非常关键。由于所有这些原因,ARM同各家微控制器供应商、工具供应商和