玩转STM32-CMSIS软件架构(详细-慢工出细活)

3.1 CMSIS概述

        CMSIS是一种标准化软件接口,是独立于供应商的Cortex-M处理器硬件抽象层,为微处理器和外设实现一致且简单的软件接口,简化了软件复用,降低了操作系统的移植难度,同时也缩短了新开发人员学习的时间,更能减低开发成本。

        CMSIS软件架构由4层构成:用户应用层、操作系统及中间件接口层、CMSIS层和硬件层,如下图所示。

        其中,CMSIS层主要由3部分组成:

        (1)核内外设访问层CPAL:由ARM公司实现,包括了命名定义、地址定义、存取内核寄存器和外围设备的协助函数,同时定义一个与设备无关的RTOS内核接口函数。

        (2)中间件访问层MWAL:由ARM公司实现,芯片厂商提供更新,主要负责当以中间件访问的应用编程接口API函数,如TCP/IP协议栈、SD/MMC、USB等协议。

        (3)设备外设访问层DPAL:由芯片厂商实现,负责对硬件寄存器地址及外设接口进行定义,另外厂商会对异常向量进行扩展,以处理相应异常。

3.2 STM32F10x标准外设库

        STM32F10x标准外设库(也称固件库)是一个固件函数包,它由程序、数据结构和宏组成,包括了微控制器所由外设的性能特征,而且包括每一个外设的驱动描述和应用实例,同构使用该固件函数库无需深入掌握细节便可开发每一个外设。

        每一个外设驱动都有一组函数组成,这组函数覆盖了该外设所有功能,每个器件的开发都由一个通用API驱动,API对该程序的结构、函数和参数名都进行了标准化。因此,对于多数程序来说,我们都可以直接使用。STM32的标准库的命名都遵循一定的命名规则,其中各种外设缩写表如下图所示:

外设缩写表
缩写外设名称缩写外设名称
ADC模数转换器IISIIS音频总线接口
BKP备份寄存器IWDG独立看门狗
CANCAN控制器NVIC嵌套向量中断控制器
CRCCRC计算单元PWR电源控制
DMADMA控制器RCC复位和时钟
EXTI外部中断RTC实时时钟
SYSTICK系统定时器SDIOSDIO接口
FlashFlash存储器SPISPI接口
GPIO通用引脚FSMC静态存储控制器
IICIIC接口TIM定时器
DAC数模转换器USART串口
DBGMCUMCU调试模块WWDG窗口看门狗

        系统相关的源程序文件和头文件都以“stm32f10x_”开头,如stm32f10x.h。外设函数的命名以该外设的缩写加下划线开头,用以分隔外设缩写和函数名,函数名的每个单词的第一个字母大写,如GPIO_SetBits;STM32标准库中包含两个文件夹,分别为Librares和Project。

        1. CMSIS和STM32F10x_StdPeriph_Driver组成Libraries文件:

        (1)core_cm3.c和core_cm4.h分别是核内外设访问层的源文件和头文件。作用是为采用Cortex-M3内核的芯片外设提供进入M3内核的接口。

        (2)stm32f10x.h是设备外设访问层头文件。

        (3)system_stm32f10x.c和system_stm32f10x.h分别是设备外设访问层的源文件和头文件。

        (4)startup_stm32f10x_X.s是用汇编鞋的系统启动文件,X代表了不同的芯片型号,使用时要与芯片对应。

        (5)stm32f10x_ppp.c和stm32f10x_ppp.h分别为外设驱动源文件和头文件,ppp代表不同ing的外设,使用的时候将其加入到工程即刻。

        (6)misc.c和misc.h提供了外设对内核中的中断向量控制器NVIC的访问函数,在配置中断时,必须把这个文件加入到工程中。

        2. Project文件夹下是采用标准库写的一个工程模板和例子

        (1)其中比较重要的是stm32f10x_it.c和stm32f10x_it.h源文件和头文件,是用来编写中断服务函数。

        (2)stm32f10x_conf.h文件被包含进stm32f10x.h文件,用来配置使用了外设的头文件,用这个头文件可以方便地增加和删除外设驱动函数。

  • 29
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值