Bootloader跳转APP代码流程

一.上电后的初始化

1.单片机引导flash启动

可参考这个链接
https://blog.csdn.net/zlf19910726/article/details/127306237

2.从flash起始地址取出MSP的初始值,用于分配栈顶空间

3.从flash起始地址+4的地址取出值赋给PC寄存器,这个值是Reset_Handler复位函数的地址,然后从这个地址运行程序

4.调用SystemInit

5.调用__main

运行main函数

二.跳转流程

1.指定新的Reset_Handler复位函数的地址

2.指定新的栈指针

3.关闭中断

把所有Bootloader中断关闭,防止影响新的APP

4.跳转复位函数

5.APP初始化代码重新打开所有中断

相关推荐
深圳市宝华视联1 天前
Python 读取 IP 视频流简单 Demo
python·嵌入式硬件·opencv·网络协议·tcp/ip·实时音视频·嵌入式实时数据库
恒锐丰科技韩生1 天前
RB6005A|晶准 单节锂电池内置 MOS 保护芯片 DFN2×3‑8
嵌入式硬件·硬件工程
youshi66681 天前
stm32-PWR、低功耗模式
stm32·单片机·嵌入式硬件
ACP广源盛139246256731 天前
Qwen3.8‑2.4T 开源落地@ACP#国产 Serdes 长距离视频传输芯片 GSV5800 在私有化 AI 服务中的价值与应用场景
大数据·数据库·人工智能·嵌入式硬件·矩阵·开源·音视频
Funing71 天前
STM32 电机动态 PI 控制:从编码器反馈、增量式 PI 到 Matlab 参数拟合与 PWM 输出
stm32·嵌入式硬件·matlab·pi控制算法
云泽8081 天前
深入浅出 STM32(十八):时钟树、总线与寄存器的底层联动机制
stm32·单片机·嵌入式硬件
米饭不加菜1 天前
C51 语言参考手册
经验分享·笔记·单片机·嵌入式硬件
深圳市宝华视联1 天前
院感约束下,手术室音视频布线与设备摆放实施注意事项
嵌入式硬件·音视频·实时音视频·视频编解码·嵌入式实时数据库
科芯创展1 天前
2.7VIN,5VOUT,360KHz,电荷泵升压芯片,XZ3120
单片机
dozenyaoyida1 天前
LittleFS 嵌入式文件系统机制拆解与某 RISC-V MCU 实测配置
单片机·嵌入式·文件系统·risc-v·littlefs·flash存储