HEX 合并工具

把 Bootloader 与 APP 固件拼成一个 Intel HEX 文件 · 纯本地处理

不上传任何文件

1选择固件支持 .hex / .ihx / .ihex,可拖入多个

拖拽 HEX 文件到这里,或 点击选择文件
两个及以上文件会按地址自动合并,空白区域保持不填充(可选填充)

2内存布局按地址对齐显示,空格即为未填充区间

3合并选项

Boot 与 APP 地址冲突时生效
每行数据记录的字节数
Type 05 / 03 记录,多数烧录器可忽略
无关紧要,个别老旧工具挑格式
填充值 / 最大间隙字节数(0=不限)

4合并结果

尚未添加文件
使用说明与常见问题

典型流程:把 boot.hex 和 app.hex 一起拖进来,确认布局里两段地址不重叠、中间空白符合预期,然后下载合并后的 HEX 直接烧录。烧录器不需要支持双文件,也不需要手工改链接地址。

关于空白区:默认不填充,输出文件中两个镜像各自是独立的数据段(多数烧录器、J-Flash、STM32CubeProgrammer 都支持稀疏 HEX,且不会擦除空白区)。若下游设备要求连续地址,勾选「填充中间空白区」,程序会用 FF(Flash 擦除态)补齐。注意:填充只发生在两个镜像之间,不会补到地址 0。

关于偏移:若 APP 是按 0x08000000 链接的、但实际要放到 0x08008000,在该文件的「偏移」列填 8000(十六进制)即可整体搬移,无需重新编译。

常见问题:

  • 校验和错误:文件被文本编辑器改动过(比如自动转码、去掉了行尾、粘贴时截断),请用原始产物重试。
  • 地址重叠:多数情况是 APP 也链接到了 0x08000000,需要改 APP 的链接脚本(或前面说的偏移);也可能两个文件是同一个固件的不同版本。
  • 启动地址记录:源码里 0x08000000 处的中断向量表才是真正的入口。Type 05 记录只被少数调试器使用,保留与否一般不影响运行。
  • 地址范围:页面不校验芯片容量,请自行确认合并后的结束地址没有超出 Flash 末尾(例如 STM32F103C8 为 0x08000000–0x0800FFFF)。

支持 Intel HEX 的全部记录类型:00 数据、01 结束、02 扩展段地址、03 启动段地址、04 扩展线性地址、05 启动线性地址。