当前位置: 首页 > news >正文

自定义完成boot loader

系统内boot loader与自定义boot loader区别

系统内的boot loader主要的功能是:

  • 串口挂起,等待接收程序数据。
  • 数据接收与解析:支持接收十六进制 HEX 文件,解析后提取原始二进制(BIN 格式)数据。
  • Flash 写入:将解析后的二进制数据写入 Flash 对应存储区域

自定义 Boot Loader 简化:

自定义 Boot Loader 通常直接接收 BIN 文件,无需 HEX 解析步骤。

Flash 存储位置与冲突问题

1. 存储位置说明

  • 系统内置 Boot Loader:存储在特殊地址0x1FFF F000
  • 自定义 Boot Loader:默认存储在 Flash 起始地址0x0800 0000

2. 程序覆盖冲突


自定义 Boot Loader 若直接存于 Flash 起始地址,串口接收新程序写入时,会覆盖原有 Boot Loader 程序,导致功能异常。

解决方法是flash分区:boot loader程序和application程序需要存放到不同的位置。也就是常说的AB区。B区一定要存放在flash的起始位置,A区要放在B区后,至于位置在哪根据bootloader程序大小划分(boot loader程序写好后点击.map文件查看total ROM size)

一般可以安排给boot loader比较大的空间来使用 16k A程序的地址就是0x0800 4000(16*1024转化为十六进制是4000)。

此时又有问题:这样编写时每一次复位单片机去执行哪个程序呢?

答:复位永远执行B程序。

那单片机永远执行不到APP程序了吗?

答:通过跳转方式 执行A程序,即便B程序和A程序的代码地址是完全连号的也不会执行A程序(因为main方法执行完了)。只能在B程序的main方法里有一个明确的跳转指向A程序的复位中断(A程序的flash的地址+4就是复位中断)。

http://www.jsqmd.com/news/521905/

相关文章:

  • ETF更名,哪家公募基金ETF更强?五家优质公募基金推荐
  • 2026三相四线电表厂家推荐:常州瑞信电子科技,有线远传电表/多用户智能电表/无线电表厂家精选 - 品牌推荐官
  • Windows11下Seay源码审计系统安装全攻略:从环境配置到实战测试
  • 找嵌入式硬件工程师合作项目
  • 合肥帮友惠-邦友恵客服咨询AI流量赋能,重塑智能体验新标杆 - 速递信息
  • 2026年知名的304潜水搅拌机厂家推荐:推流式潜水搅拌机/304冲压式潜水搅拌机批发销售 - 行业平台推荐
  • Git急救指南:误操作全场景挽救方案
  • Python调用大模型API入门实践
  • GriddyCode:3个理由告诉你为什么这款开源代码编辑器值得一试
  • 多径衰落信道下OFDM传输信道估计算法误码率比较
  • 从CCNA到HCIE,3月通关战报复盘
  • GitHub Copilot在Pycharm中报错?试试这个hosts修改+代理测试的黄金组合
  • open_basedir绕过(CTFshow Web72)
  • 论《AI》
  • 零基础学Python,就像学做菜:一份让小白少走弯路的“厨房指南”
  • 终极显示器色彩校准指南:novideo_srgb免费解决宽色域显示器过饱和问题
  • 5分钟带你过FastAPI基础知识
  • 2026年知名的平板显示器支架公司推荐:智慧病房显示器支架长期合作厂家推荐 - 行业平台推荐
  • 【Android】影响屏幕显示效果的一些因素
  • 算法可扩展性建模与渐进性能分析的技术6
  • INMP441:从MEMS原理到I2S接口,揭秘微型麦克风的音频采集全链路
  • 大数据领域数据标准化的流程优化与创新
  • Winget包管理器故障排查与系统优化指南
  • 拒绝从入门到放弃:自学C语言前的“必修课”——一些重要基础概念的解析
  • Redis从会用到精通,只需掌握这几点!
  • HPatches:计算机视觉评估的局部特征描述符基准
  • WSL2 启动报错“拒绝访问“ E_ACCESSDENIED 完整解决方案
  • 云端调用大模型--以阿里云百炼平台为例
  • openclaw对接高德地图,让你的龙虾为你定制旅游攻略或行程
  • HTML的基本用法