您的位置 首页 主动

STM32规范外设库的文件结构解析

STM32标准外设库的文件结构解析-STM32标准外设库之前的版本也称固件函数库或简称固件库,是一个固件函数包,它由程序、数据结构和宏组成,包括了微控制器所有外设的性能特征。

最近考试较多,教材编写暂停了一下,之前写了许多,仅仅每一章都感觉不是特别完好,最近把其间的部分内容贴出来一下,欢迎纠正。本文内容依据我对固件库的了解,依照便于了解的次序进行收拾介绍,部分参阅了固件库的阐明,可是也基本上从头表述并依照我了解的次序进行从头编写。我的意图很简略,许多人写教程仅仅告知你怎么做,不会告知你为什么这么做,我就尽量吧来龙去脉都说清楚,这是我的起点,水平所限,不免有很大的局限性,详细缺乏欢迎纠正。1.1 依据规范外设库的软件开发1.1.1 STM32规范外设库概述

STM32规范外设库之前的版别也称固件函数库或简称固件库,是一个固件函数包,它由程序、数据结构和宏组成,包含了微控制器一切外设的功用特征。该函数库还包含每一个外设的驱动描绘和运用实例,为开发者拜访底层硬件供给了一个中心API,经过运用固件函数库,无需深化把握底层硬件细节,开发者就可以轻松运用每一个外设。因而,运用固态函数库可以大大削减用户的程序编写时刻,然后下降开发本钱。每个外设驱动都由一组函数组成,这组函数掩盖了该外设一切功用。每个器材的开发都由一个通用API (applicaTIon programming interface 运用编程界面)驱动,API对该驱动程序的结构,函数和参数称号都进行了规范化。

ST公司2007年10月发布了V1.0版别的固件库,MDK ARM3.22之前的版别均支撑该库。2008年6月发布了V2.0版的固件库,从2008年9月推出的MDK ARM3.23版别至今均运用V2.0版别的固件库。V3.0今后的版别相对之前的版别改动较大,本书运用现在较新的V3.4版别。

1.1.2 运用规范外设库开发的优势

简略的说,运用规范外设库进行开发最大的优势就在于可以使开发者不必深化了解底层硬件细节就可以灵敏规范的运用每一个外设。规范外设库掩盖了从GPIO到定时器,再到CANI2C、SPI、UARTADC等等的一切规范外设。对应的C源代码仅仅用了最基本的C编程的常识,一切代码经过严厉测验,易于了解和运用,而且配有完好的文档,十分便利进行二次开发和运用。

1.1.3 STM32F10XXX规范外设库结构与文件描绘1. 规范外设库的文件结构

在上一末节中现已介绍了运用规范外设库的开发的优势,因而对规范外设库的了解程度直接影响到程序的编写,下面让我们来认识一下STM32F10XXX的规范外设库。STM32F10XXX的规范外设库阅历许多的更新现在现已更新到最新的3.5版别,开发环境中自带的规范外设库为2.0.3版别,本书中以比较稳定而且较新的V3.4版别为根底介绍规范外设库的结构。

可以从ST的官方网站下载到各种版别的规范外设库,首要看一下3.4版别规范外设库的文件结构,如图 5?3所示。3.0以上版别的文件结构大致相同,每个版别或许略有调整。

STM32规范外设库的文件结构解析

图 5?3 STM32F10XXX V3.4规范外设库文件结构

表 5?4中介绍了每个文件夹所包含的首要内容。

表 5?4 STM32F10XXX V3.4规范外设库文件夹描绘

STM32F10x_StdPeriph_Lib_V3.4.0

_htmresc

本文件夹包含了一切的html页面资源

Libraries

CMSIS

见表 5?6

STM32F10x_StdPeriph_Driver

inc

规范外设库驱动头文件

src

规范外设库驱动源文件

Project

Examples

规范外设库驱动的完好例程

Template

MDK-ARM

KEIL RVMDK的项目模板示例

RIDE

Raisonance RIDE的项目模板示例

EWARM

IAR EWARM的项目模板示例

UTIliTIes

STM3210-EVAL

本文件夹包含了用于STM3210B-EVAL和STM3210E-EVAL评价板的专用驱动

规范外设库的榜首部分是CMSIS 和STM32F10x_StdPeriph_Driver,CMSIS 是独立于供货商的Cortex-M 处理器系列硬件笼统层,为芯片厂商和中心件供货商供给了简略的处理器软件接口,简化了软件复用作业,下降了Cortex-M 上操作体系的移植难度,并削减了新入门的微控制器开发者的学习曲线和新产品的上市时刻。STM32F10x_StdPeriph_Driver则包含了别离对应包含了一切外设对应驱动函数,这些驱动函数均运用C言语编写,并供给了共同的易于调用的函数接口,供开发者运用。Project文件夹中则包含了ST官方的一切例程和依据不同编译器的项目模板,这些例程是学习和运用STM32的重要参阅。UTIlities包含了相关评价板的示例程序和驱动函数,供运用官方评价板的开发者运用,许多驱动函数相同可以作为学习的重要参阅。

STM32F10xxx规范外设库体系结构如图 5?4所示。图中很好的展现了各层以及详细文件之间的联络,各文件的详细功用阐明如表 5?5所示。

STM32规范外设库的文件结构解析

图 5?4 STM32F10xxx规范外设库体系结构

表 5?5 文件功用阐明

文件名

功用描绘

详细功用阐明

core_cm3.h

core_cm3.c

Cortex-M3内核及其设备文件

拜访Cortex-M3内核及其设备:NVIC,SysTick等

拜访Cortex-M3的CPU寄存器和内核外设的函数

stm32f10x.h

微控制器专用头文件

这个文件包含了STM32F10x全系列一切外设寄存器的界说(寄存器的基地址和布局)、位界说、中止向量表、存储空间的地址映射等

system_stm32f10x.h

system_stm32f10x.c

微控制器专用体系文件

函数SystemInit,用来初始化微控制器

函数Sysem_ExtMemCtl,用来装备外部存储器控制器。它坐落文件startup_stm32f10x_xx.s /.c,在跳转到main前调用

SystemFrequncy,该值代表体系时钟频率

startup_stm32f10x_Xd.s

编译器发动代码

微控制器专用的中止处理程序列表(与头文件共同)

弱界说(Weak)的中止处理程序默许函数(可以被用户代码掩盖) 该文件是与编译器相关的

stm32f10x_conf.h

固件库装备文件

经过更改包含的外设头文件来挑选固件库所运用的外设,在新建程序和进行功用改变之前应当首要修正对应的装备。

stm32f10x_it.h

stm32f10x_it.c

外设中止函数文件

用户可以相应的参加自己的中止程序的代码,关于指向同一个中止向量的多个不同中止请求,用户可以经过判别外设的中止标志位来确认精确的中止源,履行相应的中止服务函数。

stm32f10x_ppp.h

stm32f10x_ppp.c

外设驱动函数文件

包含了相关外设的初始化装备和部分功用运用函数,这部分是进行编程功用完成的重要组成部分。

Application.c

用户文件

用户程序文件,经过规范外设库供给的接口进行相应的外设装备和功用设计。

2. 依据CMSIS规范的软件架构

依据调查研究,软件开发现已被嵌入式职业公认为最首要的开发本钱。关于ARM公司来说,一个ARM内核往往会授权给多个厂家,出产品种繁复的产品,假如没有一个通用的软件接口规范,那么当开发者在运用不同厂家的芯片时将极大的增加了软件开发本钱,因而,ARM与Atmel、IAR、Keil、hami-nary Micro、Micrium、NXP、SEGGER和ST等许多芯片和软件厂商协作,将一切Cortex芯片厂商产品的软件接口规范化,拟定了CMSIS规范。此举意在下降软件开发本钱,特别针对新设备项目开发,或许将已有软件移植到其他芯片厂商供给的依据Cortex处理器的微控制器的状况。有了该规范,芯片厂商就可以将他们的资源专心于产品外设特性的差异化,而且消除对微控制器进行编程时需求保持的不同的、相互不兼容的规范的需求,然后到达下降开发本钱的意图。

如图 5?5所示,依据CMSIS规范的软件架构首要分为以下4层:用户运用层、操作体系及中心件接口层、CMSIS层、硬件寄存器层。其间CMSIS层起着承上启下的效果:一方面该层对硬件寄存器层进行共同完成,屏蔽了不同厂商对Cortex-M系列微处理器核内外设寄存器的不同界说;另一方面又向上层的操作体系及中心件接口层和运用层供给接口,简化了运用程序开发难度,使开发人员可以在彻底通明的状况下进行运用程序开发。也正是如此,CMSIS层的完成相对杂乱。

STM32规范外设库的文件结构解析

图 5?5 CMSIS规范的软件架构

层首要分为以下3 个部分:

(1) 核内外设拜访层(CPAL,Core Peripheral Access Layer):该层由ARM 担任完成。包含对寄存器称号、地址的界说,对核寄存器、NVIC、调试子体系的拜访接口界说以及对特别用处寄存器的拜访接口(例如:CONTROL,xPSR)界说。因为对特别寄存器的拜访以内联办法界说,所以针对不同的编译器ARM 共同用来屏蔽差异。该层界说的接口函数均是可重入的。

(2) 片上外设拜访层(DPAL, Device Peripheral Access Layer):该层由芯片厂商担任完成。该层的完成与CPAL 相似,担任对硬件寄存器地址以及外设拜访接口进行界说。该层可调用CPAL 层供给的接口函数一起依据设备特性对反常向量表进行扩展,以处理相应外设的中止请求。

(3) 外设拜访函数(AFP, Access Functions for Peripherals):该层也由芯片厂商担任完成,首要是供给拜访片上外设的拜访函数,这一部分是可选的。

对一个Cortex-M 微控制体系而言,CMSIS 经过以上三个部分完成了:

l 界说了拜访外设寄存器和反常向量的通用办法;

l 界说了核内外设的寄存器称号和核反常向量的称号;

l 为RTOS 核界说了与设备独立的接口,包含Debug 通道。

这样芯片厂商就能专心于对其产品的外设特性进行差异化,而且消除他们对微控制器进

行编程时需求保持的不同的、相互不兼容的规范需求,以到达低本钱开发的意图。CMSIS中的详细文件结构如表 5?6所示。

表 5?6 CMSIS文件夹结构

CMSIS

Core

Documentation

CMSIS文档

CM3

Startup

arm

MDK ARM编译器发动文件

startup_stm32f10x_hd.s: 大容
来历;21ic

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/ziliao/zhudong/343964.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部