你的位置:大电流电感 > 新闻动态

基于CMSIS标准的 Cortex-M3应用软件开发

2020-08-22 13:47:05      点击:
上一篇:意法半导体(ST)新推出手持开发工具

基于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)是不同芯片厂商定义的系http://www.ruishen.net.cn/贴片电感器统初始化函数SystemInit(),以及一些指示时钟的变量(如SystemFre- quency)。.h(即图3中的stm32.h)是提供给应用程序的头文件,它包含core_cm3.h和 system_.h,定义了与特定芯片厂商相关的寄存器以及各中断异常号,并可定制M3核中的特殊设备,如MCU、中断优先级位数以及SysTick时钟配置。虽然CMSIS提供的文件很多,但在应用程序中只需包含h。