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”即可获得下载链接。
可能你还感兴趣的文章
SREC、Hex、Bin等烧录文件格式完全解读
玩转Hex文件
玩转S19文件
“嵌入式开发学脚本干嘛”之进制/Byte/Hex处理
HexCompare比较任意Bin/Hex/Srec/s19/elf文件相关推荐
- 控制器程序格式——bin/hex/SREC
一.bin文件 (1)二进制文件 (2)Bin文件不带文件内容校验功能 二.hex文件 (1)Intel (2)十六进制 a.Start code--1个ASCII字符 ':',用于标志一行Hex记录 ...
- 程序编译生成的Hex、Bin、axf和elf格式
一.Bin Bin文件是最纯粹的二进制机器代码,按照程序执行顺序存放.编译器把高级语言翻译成汇编,再把汇编代码翻译成二进制机器代码保存成bin文件,因此Bin是没有经过处理或附加信息程序原本的大小.B ...
- Hex、bin、axf、elf格式文件小结
一.HEX Hex文件,一般是指Intel标准的十六进制文件.Intelhex 文件常用来保存单片机或其他处理器的目标程序代码.它保存物理程序存储区中的目标代码映象.一般编程器均支持生成此种格式文件. ...
- ARM:ELF bin Hex axf
前言: PC平台流行的可执行文件格式(Executable File Format),主要是Windows下的PE(Portable Executable)和Linux的ELF(Executable ...
- ELF文件——动态链接
前言 下文所示案例为运行在armV7架构.linux平台之下的动态库文件. ELF文件格式 链接器以ELF文件的固定格式对目标程序进行链接,程序加载器以ELF文件的固定格式对其进行解析.ELF文件的组 ...
- 痞子衡嵌入式:ARM Cortex-M文件那些事(8)- 镜像文件(.bin/.hex/.s19)
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家讲的是嵌入式开发里的image文件(.bin, .hex, .s19). 今天这节课是痞子衡<ARM Cortex-M文件那些事>主 ...
- 基于C/C++的hex、s19文件相互转换
hex转s19实现: #include <stdio.h> #include <string.h> #include "../../common/common.h&q ...
- ELF文件和BIN文件
文件的内容: 1. BIN文件是 raw binary 文件,这种文件只包含机器码. 2. ELF文件除了机器码外,还包含其它额外的信息,如段的加载地址,运行地址,重定位表,符号表等. 所以ELF文件 ...
- HEX,S19互相转换
工具 工具为srecord 下载链接 使用 HEX转S19 .\srec_cat.exe XXX.hex -intel -output XXX_.s19 -Motorola -address-leng ...
- elf文件解析以及和bin文件的区别
其实是想搞嵌入式的,但是总是要补补这里的知识补点那里的知识 1.ELF的分类 现在PC平台流行的可执行文件格式(Executable)主要是Windows下的PE和Linux的ELF,他们都是COFF ...
最新文章
- HDU 6091 - Rikka with Match | 2017 Multi-University Training Contest 5
- 八 web爬虫讲解2—urllib库爬虫—ip代理—用户代理和ip代理结合应用
- matlab中怎样将字母倒叙,如何用matlab将文档里的数按行倒序输出
- cmd10与16进制的相互转换
- boost::hana::hash用法的测试程序
- 美国纽约的一个摄像头!刷新即现奇迹!
- MySQL完全备份与恢复
- java8 新特性之流式数据处理_Java8新特性 - 集合流式编程 - 最终操作
- Log4j2进阶使用(按大小时间备份日志)
- python规范模块和包
- 根据mysql生成数据库设计文档_通过navicat工具导出数据库的word格式的设计文档...
- byte数组转double_java数组(不同类型的初始值)
- 【LeetCode】【字符串】题号:*58. 最后一个单词的长度
- 立创开源 | 基于lm393的模数温度传感器
- 【SpringBoot 框架】- SpringBoot 配置文件,深入浅出mysql第三版pdf百度云
- ios共享账号公众号_新增iOS游戏账号共享06
- php 爬虫框架QueryList
- Away3D4.0入门教程
- python frame用法_Pandas Series.to_frame()用法介绍
- python网络爬虫一