合并HEX文件(合并Bootloader和应用程序)

2013-11-262.7万
AI 快速预览详细 收起
本文介绍了如何合并Arduino Leonardo的Bootloader和应用程序为一个HEX文件。首先解释了HEX文件的格式,然后说明了AVR Flash空间分布和启动过程。最后推荐了一个实用工具cathex,可以高效可靠地合并两个HEX文件。通过这些步骤,用户可以轻松完成HEX文件的合并,提高开发效率。


当烧写加载Arduino Leonardo的Bootloader(Caterina-Leonardo.hex)后,单板重新启动后将会运行Blink程序。这是因为该“Bootloader”其实是Bootloader和Blink应用程序合并而成的。这个合并过程很简单,了解了HEX文件和AVR Flash空间分布就可以理解其原理。


HEX文件是格式化的文本文件,合并两个HEX文件只要用文本编辑器将两个HEX文件的内容放在一起,并将中间的文件结束记录(EOF)去掉即可。当然如果两个HEX文件地址是有重叠等异常情况,则说明要合并的文件之间有冲突。手工合并毕竟效率低,后面讲介绍一个实用工具。


2Flash空间

对于支持BootloaderAVR,其应用程序区和Bootloader区示意如下(详细参见datasheetBoot Loader Support
合并HEX文件(合并Bootloader和应用程序)图1


3、启动过程
MCU/CPU启动或复位后其运行的第一条指令地址是由硬件决定的。对于支持BootloaderAVR,若通过FUSE位选择了Bootloader区,则第一条指令地址为Bootloader的起始地址。在Bootloader运行结束后通过跳转指令跳转到0地址(由程序编写而定),开始运行应用程序。



***

这里为大家介绍一个实用小工具,可以将两个HEX文件合并,效率高而可靠。当然该工具不对地址是否重叠进行检查。  工具的作者是Lisper。

运行环境:windows 虚拟DOS
命令格式:请在cmd串口下使用帮助cathex /?



D:\tools\cathex>cathex /?
this program use for connect twohexfile
created bylisper<leyapin@gmail.com> from DFRobot
It will delete the last row of infile1
please input:
cathex infile1 infile2 outfile

工具:


cathex.rar

75.12 KB, 下载次数: 6173

创作许可协议

本项目采用 None(不开放任何权利,保留所有权利) 进行许可。

评论(3)
lisper
lisper
怎么没有可执行程序文件?
Leotower
Leotower
作者
回复lisper
已经更新,谢谢
微笑的rockets
微笑的rockets
这个有什么作用呢?
我爱小宇宙
我爱小宇宙
拿去学习学习~:)
- 没有更多了 -