HexCompare比较任意Bin/Hex/Srec/s19/elf文件
Posted 嵌入式软件实战派
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HexCompare比较任意Bin/Hex/Srec/s19/elf文件相关的知识,希望对你有一定的参考价值。
一、比较工具
说到文件比较,在Windows系统最常用的莫过于Beyond Compare了,好用是很好用,不过这货是要license收费的,而且还挺贵的。
当然,其他选择也是很多的,例如小乌龟里面的比较工具,visual code里面也有文件比较的插件,免费的。
也有高手直接用diff命令的,视界面如粪土。
二、比较Hex数据
言归正传,作为嵌入式软件工程师,很多时候是要和Bin/Hex/Srec文件搞在一起的,如果要比较这些文件的Hex数据呢。
Note:如果你对这几种文件格式还不够了解,请戳《SREC、Hex、Bin等烧录文件格式完全解读》
>>> Bin文件和Bin文件比较
这还好说,直接找个能比较二进制文件的工具直接比较就好了,例如Beyond Compare
>>> Hex文件和Hex文件比较
这个看情况,如果是同一个软件生成的Hex,其里面的格式属性应该一样的,即段分布,每行长度是一样的,可以直接比较,但需要了解Hex的格式要求。
但是,如果一个Hex文件里面的一行内容长度是8字节,一个是16字节,这就没法搞了。
但是有个问题,Hex文件里面的内容地址不一定连续的,可能存在空隙,例如一个Hex文件地址00000000-00010000和FFFF0000-FFFF8000两个段有内容,你转Bin试试,撑爆硬盘,卡死电脑,你信不信,别说我没提醒哦
>>> Srec文件和Srec文件比较
Rrec文件和Hex文件一样,都是字符型带地址的文件格式,比较效果同样有Hex那样的问题。
>>> Bin文件和Hex/Srec文件比较
别想,转Bin再比较吧
你看(左边是bin,右边是hex),这根本就不是一个频道的
>>> Hex文件和Srec文件比较
呵呵,虽然都是字符型,这两种文件格式不一样,可以看出一点点,但是别这样费神了。
>>> Bin/Hex/Srec文件和ELF文件比较
想出这个想法都有点心虚。
ELF文件虽然是可执行文件,但其内部是存有Memory镜像的,即可提取出Bin内容的。
但是,这比较嘛……算了,先打消这念头吧!
以上,就是各种文件比较的情况,和一些可能遇到的问题。
三、Hex比较常规方法
那么,真没办法了吗?
我能想到的办法有几种:
1. 将文件转成bin格式,用Beyond Compare来比较;
2. 用J-Flash打开两个文件,人肉比较;
3. 网上找个付费的,可以比较Hex/S19等格式的工具(以前还真见过,忘记名字了);
4. 用Vector的Hexview比较。
但是,这些,我都不满意。
我期望有一个可以任意支持Hex/Srec/Bin,甚至ELF文件格式的Hex内容比较工具,重要的是免费,无license困扰。
四、HexCompare比较工具
找我是没找到的,不过我狠下心写了一个。
没错,可以比较任意Hex/Srec/Bin/TI-TXT/ELF等格式文件的Hex内容!
我给它取了个名字--HexCompare
支持:
1. 自动识别文件格式
2. 生成html文件报告
3. 红色标注内容不同部分
4. 可以指定地址范围
5. 指定每行显示长度
五、HexCompare工具下载
首先,该工具完全免费
其次,可以通过本公众号获得下载链接
关注公众号“嵌入式软件实战派”,回复“HexCompare”即可获得下载链接。
可能你还感兴趣的文章
以上是关于HexCompare比较任意Bin/Hex/Srec/s19/elf文件的主要内容,如果未能解决你的问题,请参考以下文章
HexConvert转换合并或截取任意Hex/Srec/Bin等文件
HexConvert转换合并或截取任意Hex/Srec/Bin等文件
sourcetree 如何让任意两个版本中同一个文件进行比较