野火STM32学习笔记:固件库大致的组成

哔哩哔哩2023-08-28 01:14:11

这节课不编程,只是来分析一下这个固件库。

猜猜固件库有哪些部分组成

前几节课我们已经构建了库函数的模型,主要以GPIO为主角,今天我们就用构建好的库函数模型来猜一猜,固件库的组成是什么样的。

1.启动文件


【资料图】

startup_stm32f10x_

这个启动文件是由汇编编写的,如图所示在这个位置,名字叫startup_stm32f10x_

这个启动文件的内容大家有余力可以去仔细阅读一下,我的汇编不是很好,忘得差不多了,大家其实只需要知道它的作用是什么就可以了。它的功能是:设置堆栈指针、设置PC指针、初始化中断向量表、配置系统时钟、对用C库函数_main最终去到C的世界。以后有时间我会学习一下,再给大家讲解的。

2.时钟配置文件

system_

文件名叫system_,它的作用是把外部的HSE=8M,经过PLL锁相环(专门来倍频的外设)倍频成72M,从而系统时钟已经配置为72M了。

3.外设相关的

stm32f10x_

stm32f10x_

在进入固件库编程之前,我们都是寄存器编程的,寄存器编程的困难性有目共睹,通过技术手册寻找我们要使用的外设地址,要记住初始地址,偏移地址等等等等。因此我们要对各种外设(内核外的)的地址进行寄存器映射的操作,寄存器映射就是我之前在我的第二篇博客最后讲的,关于寄存器地址是如何封装的。这里在把网上的解释摘录下来,给大家再复习一下。

寄存器映射

我们知道,存储器本身没有地址,给存储器分配地址的过程叫存储器映射,那什么叫寄存器映射?寄存器到底是什么?

在存储器Block2 这块区域,设计的是片上外设,它们以四个字节为一个单元,共32bit,每一个单元对应不同的功能,当我们控制这些单元时就可以驱动外设工作。我们可以找到每个单元的起始地址,然后通过C 语言指针的操作方式来访问这些单元,如果每次都是通过这种地址的方式来访问,不仅不好记忆还容易出错,这时我们可以根据每个单元功能的不同,以功能为名给这个内存单元取一个别名,这个别名就是我们经常说的寄存器,这个给已经分配好地址的有特定功能的内存单元取别名的过程就叫寄存器映射。

具体文章详见知乎:/p/96133532。

这些寄存器映射都在一个叫做的头文件里,一般都是结构体封装的外设,比如GPIO,串口,I²C,SPI这些。这些外设都在内核外,是ST公司设计。对应当然有ARM公司设计的内核外设,会在下面提到。

寄存器映射完成以后就要开始编程,操作这些寄存器了。我们构建库函数模型的时候就拿了GPIO举了例子,它的固件库C文件名称叫做stm32f10x_,里面写了GPIO的置位复位函数,初始化函数(必须有的),以此类推,如果是关于串口的固件库,固件库C文件名字应该就是stm32f10x_。有C文件那必然会有头文件,stm32f10x_,stm32f10x_这些头文件就用来存放C文件中的函数的定义,以及枚举的一些外设工作状态,用再C文件里,这里我们可以再看一下GPIO对应的stm32f10x_。

4.内核相关的

core_

core_

core_实现了内核里面的寄存器映射,当然也会有对应的C文件。core_的内容是CMSIS-Cortex微控制器软件接口标准,这些都是ARM公司设计的,只要是ARM公司设计的内核的,都可以通用的。但是这个内核的外设其实有很多,不过我们的单片机用不了那么多,因此ST公司把它裁剪了,于是这两个文件,诞生了,它们中主要的内核外设是NVIC(嵌套向量中断控制器),SysTick(系统滴答定时器)。

5.头文件的配置文件

stm32f10x_:头文件的头文件

它出现在main函数的开头,在构建库函数模型的时候,由于我们只用了GPIO这个举例子,如果用到其他的,ADC,I²C,这些的话,那都要把头文件添加一遍。程序会非常冗杂,因此这个头文件的头文件作用,就是包含这些所有的头文件了。奇怪的是,真正的固件库里面是不包含这个头文件的,其实不是不存在,只是开发者往往都把它包含在里面了,如图所示

6.专门存放中断服务函数的C文件

stm32f10x_

stm32f10x_

由于stm32非常强大,因此它有很多的中断,为了方便管理,中断服务函数全被写在一个C文件里叫stm32f10x_,当然与之对应也有一个头文件。这些中断服务函数可以随意放在某个地方。

最后固件库成型大致是这样的

启动文件,内核外设,片上外设,时钟控制等等应有尽有。

最后到达main函数的内容

#include ""   // 相当于51单片机中的  #include <>

int main(void)

{

// 来到这里的时候,系统的时钟已经被配置成72M。

}

在固件库搭建完成以后,我们就可以在main函数里写程序了。

关键词:

上一篇:公交变“婚车”,武汉新人“低碳”迎亲开启新生活
下一篇:最后一页