starup_stm32f10x_hd.s的作用

版权声明:著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处,@清风蓝。 https://blog.csdn.net/qq_38405680/article/details/82078836

对于 103 系列,主
要是用其中 3 个启动文件:
startup_stm32f10x_ld.s:  适用于小容量 产品
startup_stm32f10x_md.s : 适用于中等容量产品
startup_stm32f10x_hd.s:  适用于大容量产品

这里的容量是指 FLASH 的大小.判断方法如下:
小容量:FLASH≤32K
中容量:64K≤FLASH≤128K
大容量:256K≤FLASH
我们ALIENTEK STM32战舰板,精英板以及mini板采用的STM32F103ZET6和stm32F103RCT6
芯片都属于大容量产品,所以我们的启动文件选择 startup_stm32f10x_hd.s,对于中等容量芯片请
选择 startup_stm32f10x_md.s 启动文件,小容量芯片请选择 startup_stm32f10x_ld.s。
启动文件到底什么作用,其实我们可以打开启动文件进去看看。启动文件主要是进行堆栈
之类的初始化,中断向量表(中断处理的函数名已经起好了,不能自己另外起中断处理名的,但中

断处理函数体为空,自己写函数体内容)以及中断函数定义。启动文件要引导进入 main 函数。Reset_Handler
中断函数是唯一实现了的中断处理函数,其他的中断函数基本都是死循环。 Reset_handler 在我
们系统启动的时候会调用,下面让我们看看 Reset_handler 这段代码:

; Reset handler
Reset_Handler PROC
EXPORT Reset_Handler [WEAK]
IMPORT __main
IMPORT SystemInit
LDR R0, =SystemInit
BLX R0
LDR R0, =__main
BX R0
ENDP
这段代码我也看不懂,反正就知道,这里面要引导进入 main 函数,同时在进入 main 函数之前,
首先要调用 SystemInit 系统初始化函数。
还有其他几个文件 stm32f10x_it.c,stm32f10x_it.h 以及 stm32f10x_conf.h 等文件,这里就不
一一介绍。stm32f10x_it.c 里面是用来编写中断服务函数,中断服务函数也可以随意编写在工程
里面的任意一个文件里面,个人觉得这个文件没太大意义。
stm32f10x_conf.h 文件打开可以看到一堆的#include,这里你建立工程的时候,可以注释掉一
些你不用的外设头文件。这里相信大家一看就明白。
 

猜你喜欢

转载自blog.csdn.net/qq_38405680/article/details/82078836
今日推荐