认识固件库(一)

我们使用STM32固件库,就需要了解官方提供的固件库包结构。

文件夹介绍:

      固件库包的Libraries下有CMSIS和STM32F10x-StdPeriph-Driver两个目录,这其中包含了所以固件库核心的所有子文件夹河子文件。

STM32F10x-StdPeriph-Driver   //目录下为固件库源代码;
CMSIS //启动文件,有inc和src两文件夹,放置stm32f10x-xxx.h和stm32f10x-xxx.c,每个外设对应一个文件;
Project //存放ST官方提供实例源码;

文件介绍:

core-cm3.c core-cm3.h                     //提供进入Cortex-M3内核接口,Coresupport目录下
system-stm32f10x.c system-stm32f10x.h     //设置系统以及时钟总线,DeviceSupport目录下
stm32f10x.h                               //多结构体以及宏定义,DeviceSupport目录下
startup-stm32f10x-ld.s
startup-stm32f10x-md.s
startup-stm32f10x-hd.s                    //对于103系列主要有三个启动文件分别为小、中、大容量

      启动文件主要是进行堆栈之类的初始化、中断向量表以及中断函数定义。启动文件要引导进入main函数。Rest-Handler中断函数是唯一实现的中断处理函数,其他的中断函数基本是死循环:

Rest handler
Reset-Handler PROC
EXPORT Reset-Handler
IMPORT
--main
IMPORT SystemInit
LDR R0,=SystemInit
BLX R0
LDR R0,=--main
BX R0
ENDP

如上这段代码在系统启动之后,首先调用SystemInit系统初始化函数,再进入main函数。

 

原文地址:https://www.cnblogs.com/lwangj/p/5060025.html