擦除整片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代码分区共存

相关推荐
linweidong1 小时前
嵌入式电机:如何在低速和高负载状态下保持FOC(Field-Oriented Control)算法的电流控制稳定?
stm32·单片机·算法
Zero_Era2 小时前
高性价比安全MCU——LKT6830C
单片机·嵌入式硬件·安全
国科安芯3 小时前
卫星通讯导航FPGA供电单元DCDC芯片ASP4644S2B可靠性分析
单片机·嵌入式硬件·fpga开发·架构·安全性测试
易水寒陈5 小时前
单片机实现的工厂模式
单片机
别了,李亚普诺夫6 小时前
PCB设计大师篇笔记
笔记·嵌入式硬件·学习
点灯小铭6 小时前
双积分AD转换电路
单片机·毕业设计·课程设计·期末大作业
youcans_7 小时前
【动手学STM32G4】(8)STM32G431之 DAC进阶
stm32·单片机·嵌入式硬件·dma·定时器
hqwest7 小时前
码上通QT实战14--监控页面06-串口设备数据初始化-
单片机·rs232·serialport·波特率·串口设备·虚拟串口设备软件·qt项目配置文件
qq_397562317 小时前
BMI088 , 传感器的使用经验 . ( SPI 模式 )
单片机
点灯小铭7 小时前
基于单片机的智能收银机模拟系统设计
单片机·嵌入式硬件·mongodb·毕业设计·课程设计·期末大作业