热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

19.9CMSIS编程标准

引言ARM公司于2008年11月12日发布了armCortex微控制器软件接口标准(CMSIS:CortexMicrocon-trollerSoftwareInteR

引 言    

    ARM公司于200811 12 日发布了arm Cortex微控制器软件接口标准(CMSIS:Cortex Microcon-troller Software InteRFace Standard)CMSIS 是独立于供应商的Cortex-M 微控制器系列硬件抽象层,为芯片厂商和中间件供应商提供了连续的、简单的微控制器软件接口,简化了软件复用,降低了Cortex-M0上操作系统的移植难度,并缩短了新入门的微控制器开发者的学习时间和新产品的上市时间。 

   根据近期的调查研究,软件开发已经被嵌入式行业公认为最主要的开发成本。图 19.9-1 为近年来软件开发与硬件开发成本对比图。因此,arm AtmelIARKeilhami-nary MicroMicriumNXPSEGGER ST等诸多芯片和软件厂商合作,将所有 Cortex芯片厂商产品的软件接口标准化,制定了CMSIS 标准。此举意在降低软件开发成本,尤其针对新设备项目开发,或者将已有软件移植到其他芯片厂商提供的基于 Cortex微控制器的微控制器的情况。有了该标准,芯片厂商就能够将他们的资源专注于产品外设特性的差异化,并且消除对微控制器进行编程时需要维持的不同的、互相不兼容的标准的需求,从而达到降低开发成本的目的。 

 

19.9.1 CMSIS标准的软件架构 

 

   如图19.9-2 所示,基于CMSIS 标准的软件架构主要分为以下 4层:用户应用层、操作系统及中间件接口层、CMSIS层、硬件寄存器层。其中 CMSIS层起着承上启下的作用:一方面该层对硬件寄存器层进行统一实现,屏蔽了不同厂商对 Cortex-M 系列微微控制器核内外设寄存器的不同定义;另一方面又向上层的操作系统及中间件接口层和应用层提供接口,简化了应用程序开发难度,使开发人员能够在完全透明的情况下进行应用程序开发。也正是如此,CMSIS层的实现相对复杂。 

 

 

19.9-2 CMSIS 标准的软件架构

 

 

   CMSIS 层主要分为3部分:

① 核内外设访问层(CPAL):由ARM负责实现。包括对寄存器地址的定义,对核寄存

器、NVIC、调试子系统的访问接口定义以及对特殊用途寄存器的访问接口(如 CONTROL

xPSR)定义。由于对特殊寄存器的访问以内联方式定义,所以 arm 针对不同的编译器统

一用_INLINE来屏蔽差异。该层定义的接口函数均是可重入的。 

 

② 中间件访问层(MWAL):由arm 负责实现,但芯片厂商需要针对所生产的设备特性

对该层进行更新。 该层主要负责定义一些中间件访问的 API函数,例如为 TCP/IP协议栈、

SD/MMCUSB 协议以及实时操作系统的访问与调试提供标准软件接口。该层在1.

准中尚未实现。 

 

③ 设备外设访问层(DPAL):由芯片厂商负责实现。该层的实现与 CPAL类似,负责对

硬件寄存器地址以及外设访问接口进行定义。该层可调用 CPAL 层提供的接口函数,同时根

据设备特性对异常向量表进行扩展,以处理相应外设的中断请求。 

 

…………………………

 

书籍下载地址(复制到下载工具进行下载):

 

http://files.cnblogs.com/wenziqi/ARMCortex-M0原理与应用实践.part1.rar

 

http://files.cnblogs.com/wenziqi/ARMCortex-M0原理与应用实践.part2.rar

 

注:书籍内容会不定期进行更新!

转:https://www.cnblogs.com/wenziqi/archive/2012/02/19/2358376.html



推荐阅读
author-avatar
PengJin05
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有