PLUG2:STM32启动流程 - LI,Yi

Step1. STM32上电复位/按键复位

此时内核处于已知状态:

  • PC = 0x0000 0000
  • 所有寄存器为默认值,Flash 等待周期按出厂设定

1. 硬件复位序列(芯片自动完成)

Step2. 取第一个字:主堆栈顶(MSP)

内核从 0x0000 0000 读出 32 位数值(也就是4个字节),装入 MSP(该值实际存放在 Flash 0x0800 0000,通过地址别名映射到 0x0000 0000。)

Step3. 取第二个字:复位向量

从 0x0000 0004 读出 Reset_Handler (程序的入口)地址,跳转到该地址,开始执行用户代码

2. 运行启动文件

Step4. 调用SystemInit:使能 FPU、配置 RCC 时钟树、重映射中断向量表(写 SCB->VTOR)

Step5. 调用main