STM32 Bootloader理解

STM32 Bootloader个人理解

stm32单片机启动时会先运行一个引导程序Bootloader,该程序可以判断单片机的启动方式,例如stm32f103单片机会利用 boot0 、boot1 两个引脚判断启动模式。判断完启动模式后,设置 SP地址 以及 PC 指针指向对应的地址。当我们的启动方式选择为从flash中启动,那么它会把我们的 PC 指针设置为 0x08000004。

当我们设置好 MDK 中的程序存储的位置后,程序就是从该路径开始保存,同时中断向量表的位置也是从该位置进行保存。


因此从 bootloader 退出时执行启动文件,PC = 0x08000004,会执行中断向量表中的复位中断程序,由复位中断程序跳转到我们的 main 函数中,从而进入到 c 的世界。

若是我们设置 MDK 的 flash 地址为 0x08001000 时,那么我们的中断向量表也会设置到 0x08001000 ,复位中断程序地址在 0x08001004 中保存;从 bootloader 退出时执行启动文件,PC = 0x08000004 并不能找到复位中断程序,程序会卡住。

相关推荐
XINVRY-FPGA4 小时前
XCVU47P-2FSVH2892E Xilinx Virtex UltraScale+ FPGA AMD
c语言·c++·人工智能·嵌入式硬件·阿里云·fpga开发·fpga
、我是男生。5 小时前
STM32的内部RC与外部晶振电路
stm32·单片机·嵌入式硬件
qq_401700419 小时前
stm32移植freemodbus
stm32·单片机·嵌入式硬件
懒惰的bit11 小时前
STM32F103C8T6 学习笔记摘要(二)
笔记·stm32·学习
A-花开堪折11 小时前
01-驱动开发开篇
linux·嵌入式硬件
big\hero12 小时前
freeRTOS学习
单片机
brave and determined12 小时前
MCU量产高效烧录:BootLoader与App合并技巧
单片机·嵌入式硬件·hexmergetool·hex文件合成·mcu烧录·mcu量产·mcu量产程序烧录
honey ball13 小时前
冰箱压缩机电机驱动板【电源部分】
单片机·嵌入式硬件
电院工程师14 小时前
基于机器学习的侧信道分析(MLSCA)Python实现(带测试)
人工智能·python·嵌入式硬件·安全·机器学习·密码学
跟着杰哥学嵌入式14 小时前
stm32串口(uart)2转发到串口(uart)3实现
stm32·单片机·嵌入式硬件