擦除整片flash后,程序下载到单片机,单片机不运行

擦除整片Flash后,将地址0x8004000改为0x8000000重新下载,就可以运行了。

你是不是做了全片擦除? 把0x8000000地址开始自带的boot代码给擦除掉了? 若擦除了boot, 把下载首地址从0x8004000改为0x8000000。。。。。让KEIL把下载app_hex放到0x8004000首地址,是因为0x8000000有boot代码上电后会跳入0x8004000执行app代码。

若全片擦除了boot代码,需把app下载地址改为0x8000000。。。。或先烧入boot程序,再把app代码下载到0x8004000即可。 这里KEIL下载地址不同,与有没有boot代码有关系

一、Boot代码的定义与作用

​Boot代码​​(引导加载程序)是嵌入式系统中一段固化在非易失性存储器(如Flash)中的底层程序,其核心功能包括:

  1. ​硬件初始化​:配置时钟、内存控制器、外设等基础硬件模块
  2. ​启动模式选择​:根据硬件引脚或寄存器配置,决定从Flash、系统存储器(如STM32的BootLoader)或RAM启动
  3. ​程序加载​:将应用程序(App)从存储介质(如Flash、网络)加载到内存(如RAM)并跳转执行
  4. ​OTA升级支持​:接收新固件并更新到App区域,同时校验数据完整性

在STM32等MCU中,Boot代码通常位于Flash的起始地址(如0x08000000),占用少量扇区(如32KB),与用户App代码分区共存

相关推荐
天吾cc8 小时前
RTT-IO设备模型
单片机·嵌入式硬件·学习
wengqidaifeng11 小时前
2026 年电赛(TI 杯)H 题:MaxiCamPro、双主控通信、VOFA+ 遥测与可复现实验方法
c语言·单片机·嵌入式硬件
寻道模式12 小时前
【运维心得】电视KK.RV22.E32B“捉鬼”实录:从炸机到 eMMC 的千里追击(1)
单片机·嵌入式硬件·mos管·开关电源
科芯创展13 小时前
XZ6206,6.5V,300mA稳压LDO芯片
单片机
科芯创展14 小时前
XC6206,8V,250mA稳压LDO芯片
嵌入式硬件
平凡的小蚂蚁14 小时前
Exynos4412-POP-7inLCD裸机开发完整教程(STM32 库风格)
驱动开发·stm32·单片机·嵌入式硬件·嵌入式·硬件工程
破晓单片机14 小时前
096、STM32项目分享开源:蓝牙智能手环
stm32·单片机·嵌入式硬件·开源
天吾cc15 小时前
RTT-Pin设备模型
单片机·嵌入式硬件
半仙100816 小时前
电感式编码器 IS06-18 在轮毂电机中的实战应用指南
嵌入式硬件·机器人
ACP广源盛1392462567316 小时前
Ling‑3.0‑flash 昇腾 0‑Day 适配落地@ACP#IX9104 在国产高密度算力矩阵中的机遇与落地场景
大数据·人工智能·分布式·单片机·嵌入式硬件