1 / 41
文档名称:

STM32固件库详解.doc

格式:doc   大小:309KB   页数:41页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

STM32固件库详解.doc

上传人:511709291 2022/1/21 文件大小:309 KB

下载得到文件列表

STM32固件库详解.doc

文档介绍

文档介绍:word
word
2 / 41
word
STM32固件库详解
基于标准外设库的软件开发
STM32标准外设库概述
STM32标准外设库之前的版本也称固件函数库或简称固件库,是一个固件函数包,它由程序、数ord
文件名
功能描述
具体功能说明
Cortex-M3内核与其设备文件
访问Cortex-M3内核与其设备:NVIC,SysTick等
访问Cortex-M3的CPU存放器和内核外设的函数
微控制器专用头文件
这个文件包含了STM32F10x全系列所有外设存放器的定义〔存放器的基地址和布局〕、位定义、中断向量表、存储空间的地址映射等
微控制器专用系统文件
函数SystemInit,用来初始化微控制器
函数Sysem_ExtMemCtl,用来配置外部存储器控制器。 /.c,在跳转到main前调用
SystemFrequncy,该值代表系统时钟频率
编译器启动代码
微控制器专用的中断处理程序列表(与头文件一致)
word
word
7 / 41
word
弱定义(Weak)的中断处理程序默认函数(可以被用户代码覆盖) 该文件是与编译器相关的
固件库配置文件
通过更改包含的外设头文件来选择固件库所使用的外设,在新建程序和进展功能变更之前应当首先修改对应的配置。
外设中断函数文件
用户可以相应的参加自己的中断程序的代码,对于指向同一个中断向量的多个不同中断请求,用户可以通过判断外设的中断标志位来确定准确的中断源,执行相应的中断服务函数。
外设驱动函数文件
包括了相关外设的初始化配置和局部功能应用函数,这局部是进展编程功能实现的重要组成局部。
用户文件
用户程序文件,通过标准外设库提供的接口进展相应的外设配置和功能设计。
2. 基于CMSIS标准的软件架构
word
word
8 / 41
word
根据调查研究,软件开发已经被嵌入式行业公认为最主要的开发本钱。对于ARM公司来说,一个ARM内核往往会授权给多个厂家,生产种类繁多的产品,如果没有一个通用的软件接口标准,那么当开发者在使用不同厂家的芯片时将极大的增加了软件开发本钱,因此,ARM与Atmel、IAR、Keil、hami-nary Micro、Micrium、NXP、SEGGER和ST等诸多芯片和软件厂商合作,将所有Cortex芯片厂商产品的软件接口标准化,制定了CMSIS标准。此举意在降低软件开发本钱,尤其针对新设备项目开发,或者将已有软件移植到其他芯片厂商提供的基于Cortex处理器的微控制器的情况。有了该标准,芯片厂商就能够将他们的资源专注于产品外设特性的差异化,并且消除对微控制器进展编程时需要维持的不同的、互相不兼容的标准的需求,从而达到降低开发本钱的目的。
如图 55所示,基于CMSIS标准的软件架构主要分为以下4层:用户应用层、操作系统与中间件接口层、CMSIS层、硬件存放器层。其中CMSIS层起着承上启下的作用:一方面该层对硬件存放器层进展统一实现,屏蔽了不同厂商对Cortex-M系列微处理器核内外设存放器的不同定义;另一方面又向上层的操作系统与中间件接口层和应用层提供接口,简化了应用程序开发难度,使开发人员能够在完全透明的情况下进展应用程序开发。也正是如此,CMSIS层的实现相对复杂。
word
word
10 / 41
word
图 55 CMSIS标准的软件架构
层主要分为以下3 个局部:
(1) 核内外设访问层〔CPAL,Core Peripheral Access Layer〕:该层由ARM 负责实现。包括对存放器名称、地址的定义,对核存放器、NVIC、调试子系统的访问接口定义以与对特殊用途存放器的访问接口〔例如:CONTROL,xPSR〕定义。由于对特殊存放器的访问以内联方式定义,所以针对不同的编译器ARM 统一用来屏蔽差异。该层定义的接口函数均是可重入的。
(2) 片上外设访问层〔DPAL, Device Peripheral Access Layer〕:该层由芯片厂商负责实现。该层的实现与CPAL 类似,负责对硬件存放器地址以与外设访问接口进展定义。该层可调用CPAL 层提供的接口函数同时根据设备特性对异常向量表进展扩展,以处理相应外设的中断请求。
word
word
10 / 41
word
(3) 外设访问函数〔AFP, Access Functions for Peripherals〕:该层也由芯片厂商负责实现,主要是提供访问片上外设的访问函数,这一局部是可选的。
对一个Cortex-M 微控