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初始化代码重新打开所有中断

相关推荐
炸膛坦客4 小时前
单片机开发工具篇:(九)MCU 芯片包的安装
单片机·嵌入式硬件
智者知已应修善业9 小时前
【51单片机实现初始化数码管不显示按启动从0秒计时到60按暂停一次显示当前秒按2次恢复原始状态】2024-6-11
c语言·c++·经验分享·笔记·嵌入式硬件·算法·51单片机
电气_空空10 小时前
基于LabVIEW的数据采集系统设计与实现
单片机·嵌入式硬件·labview
caimouse10 小时前
ReactOS BootCD 光盘布局完整深度分析
单片机·reactos
zlinear数据采集卡12 小时前
从万用表的6步调零到硅片级微秒自校准:硬核拆解LHAMP188的宽压轨到轨与零漂移实战
arm开发·stm32·单片机·嵌入式硬件·fpga开发
三品吉他手会点灯12 小时前
嵌入式机器学习 - 学习笔记1.2.3 - 机器学习软件框架
人工智能·笔记·嵌入式硬件·学习·机器学习
国科安芯14 小时前
ASC8T245S 8通道电平转换设计实战:从系统架构到QFN24 Layout再到量产测试
网络·单片机·物联网·安全·fpga开发·系统架构
云栖梦泽14 小时前
将RAW打包成MIPI CSI2
linux·人工智能·嵌入式硬件
伟大的前程15 小时前
us级开定时器中断,单片机的开销大,改用轮询的方式
单片机·嵌入式硬件
ACP广源盛139246256731 天前
IX8024@ACP# 搭配此芯 AI 服务器 + 爱芯元智产品完整方案
大数据·运维·服务器·人工智能·分布式·嵌入式硬件