CMSIS是什么,虽然名字跟CMMI很像,但其实没什么关系。
借用百度百科的释义:ARM Cortex™ 微控制器软件接口标准(CMSIS:Cortex Microcontroller Software Interface Standard) 是 Cortex-M 处理器系列的与供应商无关的硬件抽象层。
简言之,CMSIS是由ARM公司和众多生产Cortex-M处理器的公司共同定义的一种软件接口标准,以实现不同Cortex-M处理器的软件重用,降低迁移成本。Cortex-M处理器是用来替代ARM7系列的,但CMSIS标准是随着Cortex-M的普及而提出的,ARM公司意识到了ARM7时代各个厂商的产品兼容性、可迁移性差的问题。同时从单片机开发继承而来传统的“基于寄存器”的开发方式的效率和开发人员培养难度越来越无法适应日趋复杂的应用开发。
嵌入式软件从业人员要么是从单片机开发转来的,要么是从PC端应用开发转来的。前者有一定的电路和处理器芯片知识,但缺乏现代软件开发的方法和工程理论。后者普遍有高级开发语言的经历(C#,Java等)、了解诸如面向对象开发等较先进的方法,但他们缺乏电路和芯片的知识,甚至对寄存器都很难理解。
CMSIS的出现无疑对基于CM芯片的开发带来了福音,其分层结构使软件有了良好的架构,降低了系统迁移的难度。对寄存器操作的封装(各厂商提供)降低了软件开发人员的难度。
借用百度百科对CMSIS软件层次和组件的说明
(http://baike.baidu.com/link?url=pCmFJDdCNjcwZCSP9hSwbQSRbsx1ah0FGPDHUXJ9DUR8tuIkJfUwefFYL2HkZbh3wylsWx5oIMDXTB1-Z5-j2K#refIndex_1_5152578)
另外,Keil从v5.0版本开始内置了CMSIS的支持,相信随着新版本的发布,基于CMSIS体系的开发将受到厂商和开发人员的青睐。