目录

一,启动Flow

1.1 初始化MSP

1.2 初始化PC

1.3 设置堆栈大小

1.4初始化中断向量表

1.5 调用初始化函数(可选)

1.6 调用__main

二,Reset_Handler函数


一,启动Flow

下面是stm32在内部FLASH启动的启动建议流程图,在stm32复位到执行我们程序的main函数的过程中,最重要的就是我们的启动文件。

2.4 STM32启动过程-LMLPHP

1.1 初始化MSP

MSP指向主堆栈的顶部,所有函数的局部变量、参数、返回值等都会存储在堆栈中。初始化MSP是为后续的程序运行准备堆栈空间。

系统复位后,处理器会从地址0x08000000处读取一个32位的值,这个值就是主堆栈指针MSP的初始值。

1.2 初始化PC

PC指向当前要执行的指令,是程序执行的控制中心。

紧随MSP之后,处理器从地址0x08000004处读取一个32位的值,这个值就是程序计数器的初始值,即程序开始执行的第一条指令的地址。

10-17 10:09