本文以STM32F103为例,介绍STM32的启动文件。
一般而言,系统上电后第一个执行的是由汇编所编写的启动文件,其主要工作为一下五部分:
(1)、初始化堆栈指针SP=_initial_sp
(2)、初始化PC指针,令其=Reset_Handler
(3)、初始化中断向量表
(4)、配置系统时钟
(5)、调用C库函数_main初始化用户堆栈,从而最终调用main函数进入C的世界
这上述的五个功能一般都由STM32官方在它们提供的官方库里的ASM文件(汇编启动文件)startup_stm32f10x_hd.s实现,因此在实际中只需要根据所用编译软件的不同选择对应的ASM文件,然后将之加入编译的工程中,再编写自己的main文件便可,而系统时钟已在ASM文件中设为72M,以及向量表已经设置完成(向量表的介绍在别的文章里介绍)。
一、初始化堆栈指针
(1)初始化栈指针(SP)
在startup_stm32f10x_hd.s文件中,开始为上述代码,其将