STM32入门系列-复位程序
已经对启动文有了大致了解,再来看看系统在复位过程中做了哪些工作。复位程序如下:
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()函数。