浅谈STM32启动流程
1启动流程
主要分为三个步骤:
1、上电复位进入程序入口地址
2、系统时钟初始化
3、进入main函数
1.1启动文件做了什么?
初始化堆栈、中断向量表、调用一些初始化函数、跳转到main

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

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

一般情况选择flash(0x0800 0000)。
1.3flash中会自动完成什么?
1、msp指针初始化
2、复位中断函数
在起始位置是一张中断向量表,源码中有注释


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

本文来自博客园,作者:树上掉下一只鱼,转载请注明原文链接:https://www.cnblogs.com/marshmallows/p/19420973

浙公网安备 33010602011771号