首页 > 技术文章 > STM32入门系列-复位程序

stm32-c 2020-11-01 13:37 原文

 已经对启动文有了大致了解,再来看看系统在复位过程中做了哪些工作。复位程序如下:

 1 ; Reset handler
 2 
 3 Reset_Handler PROC
 4 
 5 EXPORT Reset_Handler [WEAK]
 6 
 7 IMPORT SystemInit
 8 
 9 IMPORT __main
10 
11 LDR R0, =SystemInit
12 
13 BLX R0
14 
15 LDR R0, =__main
16 
17 BX R0
18 
19 ENDP

    在复位程序内,声明了外部文件标号SystemInit和__main(__main 是一个标准的C语言库函数,用于初始化用户堆栈,最终还是进入main),因此需要在外部文件中按照这个标号名写出对应的函数,否则编译器将报错。在库文件system_stm32f10x.c内就写了SystemInit()函数;在main.c 文件内也写了一个main()函数。所以主函数是main这个名字。

    系统复位后进入复位函数,首先调用SystemInit()函数,初始化STM32系统时钟,然后再进入我们熟悉的main()函数。

推荐阅读