《基于CMSIS标准的Cortex-M3应用软件开发》.pdf

《基于CMSIS标准的Cortex-M3应用软件开发》.pdf

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于CMSIS 标准的Cortex-M3 应用软件开发 引 言 ARM 公司于2008 年11 月12 日发布了arm Cortex 微控制器软件接口标准(CMSIS: Cortex Microcon-troller Software InteRFace Standard) 。CMSIS 是独立于供应商的 Cortex-M 处理器系列硬件抽象层,为芯片厂商和中间件供应商提供了连续的、简单的处理 器软件接口,简化了软件复用,降低了Cortex-M3 上操作系统的移植难度,并缩短了新入 门的微控制器开发者的学习时间和新产品的上市时间。 根据近期的调查研究,软件开发已经被嵌入式行业公认为最主要的开发成本。图1 为近 年来软件开发与硬件开发 本对比图。因此,arm 与Atmel、IAR 、Keil 、hami-nary Micro 、 Micrium、NXP 、SEGGER 和ST 等诸多芯片和软件厂商合作,将所有Cortex 芯片厂商产 品的软件接口标准化,制定了CMSIS 标准。此举意在降低软件开发成本,尤其针对新设备 项目开发,或者将已有软件移植到其他芯片厂商提供的基于Cortex 处理器的微控制器的情 况。有了该标准,芯片厂商就能够将他们的资源专注于产品外设特性的差异化,并且消除对 微控制器进行编程时需要维持的不同的、互相不兼容的标准的需求,从而达到降低开发成本 的目的。 1 基于CMSIS 标准的软件架构 如图2 所示,基于CMSIS 标准的软件架构主要分为以下4 层:用户应用层、操作系统 及中间件接口层、CMSIS 层、硬件寄存器层。其中CMSIS 层起着承上启下的作用:一方面 该层对硬件寄存器层进行统一实现,屏蔽了不同厂商对Cortex-M 系列微处理器核内外设寄 存器的不同定义;另一方面又向上层的操作系统及中间件接口层和应用层提供接口,简化了 应用程序开发难度, 开发人员能够在完全透明的情况下进行应用程序开发。也正是如此, CMSIS 层的实现相对复杂。 CMSIS 层主要分为3 部分。 ①核内外设访问层(CPAL):由ARM 负责实现。包括对寄存器地址的定义,对核寄存 器、NVIC、调试子系统的访问接口定义以及对特殊用途寄存器的访问接口(如CONTROL 和xPSR)定义。由于对特殊寄存器的访问以内联方式定义,所以arm 针对不同的编译器统 一用_INLINE 来屏蔽差异。该层定义的接口函数均是可重入的。 ②中间件访问层(MWAL) :由arm 负责实现,但芯片厂商需要针对所生产的设备特性 对该层进行更新。该层主要负责定义一些中间件访问的API 函数,例如为TCP /IP 协议栈、 SD /MMC 、USB 协议以及实时操作系统的访问与调试提供标准软件接口。该层在1.1 标 准中尚未实现。 ③设备外设访问层(DPAL) :由芯片厂商负责实现。该层的实现与CPAL 类似,负责对 硬件寄存器地址以及外设访问接口进行定义。该层可调用CPAL 层提供的接口函数,同时根 据设备特性对异常向量表进行扩展,以处理相应外设的中断请求。 2 CMSIS 规范 (1)文件结构 CMSIS 的文件结构如图3 所示( 以STM32 为例) 。其中stdint .h 包括对8 位、16 位、 32 位等类型指示符的定义,主要用来屏蔽不同编译器之前的差异。core_cm3 .h 和 core_cm3 .C 中包括Cortex_M3 核的全局变量声明和定义,并定义一些静态功能函数。 system_ .h 和system_ .c( 即图3 中的system_stm32 .h 和system_stm32 .c)是不同芯 片厂商定义的系统初始化函数SystemInit(),以及一些指示时钟的变量(如 SystemFre-quency) 。 (.h )(即图3 中的stm32 .h)是提供给应用程序的头文件,它包含 core_cm3 .h 和system_ .h ,定义了与特定芯片厂商相关的寄存器以及各中断异常号,并 可定制M3 核中的特殊设备,如MCU、中断优先级位数以及SysTick 时钟配置。虽然CMSIS 提供的文件很多,但在应用程序中只需包含.h 。 (2)工具链 CMSIS 支持目前嵌入式开发的三大主流工具链,即ARM ReakView(armcc)、IAR EWARM(iccarm) 以及GNU 工具链(gcc) 。通过在core_cm3 .C 中的如下定义,来屏蔽一 些编译器内置关键字的差异。 这样,CPAL 中的功能函

文档评论(0)

ghfa + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档