浅谈STM32启动流程

1启动流程

主要分为三个步骤:
1、上电复位进入程序入口地址
2、系统时钟初始化
3、进入main函数

1.1启动文件做了什么?

初始化堆栈、中断向量表、调用一些初始化函数、跳转到main
image

1.2上电复位

上电后,CPU从一个固定的地址0x0000 0000开始执行指令。该地址根据boot引脚的配置,可以选择映射到哪个一个地址。
image

1.2.1BOOT引脚的配置

一般在外围设计一个复位电路控制,共有三个地址可供选择:
1、Flash(掉电不丢失)
2、system memory(出厂设置,不可擦除)
3、RAM(掉电丢失)
image

一般情况选择flash(0x0800 0000)。

1.3flash中会自动完成什么?

1、msp指针初始化
2、复位中断函数

在起始位置是一张中断向量表,源码中有注释
image

image

第一个字(4字节)中,保存了栈顶地址,因此该地址已也被称为msp指针,表示指向栈顶地址。
第二个字(4字节)中,保存了复位中断函数,cpu直接执行该函数,实现了系统时钟初始化和进入main
image

posted @ 2025-12-30 15:09  树上掉下一只鱼  阅读(10)  评论(0)    收藏  举报