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 并不能找到复位中断程序,程序会卡住。

相关推荐
1+2单片机电子设计30 分钟前
基于 STM32 的网络授权时钟系统设计与实现
开发语言·stm32·单片机·嵌入式硬件·php·51单片机
在职工程博士1 小时前
在职博士-南京邮电大学申请考核制博士招生实施细则(信息通信、信息管理工程方向)
大数据·数据库·嵌入式硬件·物联网·硬件工程·数据库开发
TEC_INO2 小时前
STM32_3:EXTI和NVIC
stm32·单片机·嵌入式硬件
张泽腾662 小时前
Ubuntu 扩容
linux·服务器·嵌入式硬件
恒锐丰小吕2 小时前
黑锋科技(HeifengTech)过压过流保护开关芯片全系列技术解析
嵌入式硬件·硬件工程
LCG米2 小时前
基于STM32F4和LVGL的智能灯光控制系统开发实战
stm32·单片机·嵌入式硬件
歌者長門2 小时前
STM32DAC输出遇到的问题
stm32·单片机·嵌入式硬件
辰哥单片机设计2 小时前
STM32项目分享:智能头盔
stm32·单片机·嵌入式硬件
九鼎创展科技2 小时前
「有温度的陪伴」:基于全志 V821 的情感共鸣型实体机器人详解
linux·人工智能·嵌入式硬件·机器人
bocoder3 小时前
ESP-IDF(FreeRTOS)
c语言·单片机·嵌入式硬件