一、比较工具

说到文件比较,在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文件相关推荐

  1. 控制器程序格式——bin/hex/SREC

    一.bin文件 (1)二进制文件 (2)Bin文件不带文件内容校验功能 二.hex文件 (1)Intel (2)十六进制 a.Start code--1个ASCII字符 ':',用于标志一行Hex记录 ...

  2. 程序编译生成的Hex、Bin、axf和elf格式

    一.Bin Bin文件是最纯粹的二进制机器代码,按照程序执行顺序存放.编译器把高级语言翻译成汇编,再把汇编代码翻译成二进制机器代码保存成bin文件,因此Bin是没有经过处理或附加信息程序原本的大小.B ...

  3. Hex、bin、axf、elf格式文件小结

    一.HEX Hex文件,一般是指Intel标准的十六进制文件.Intelhex 文件常用来保存单片机或其他处理器的目标程序代码.它保存物理程序存储区中的目标代码映象.一般编程器均支持生成此种格式文件. ...

  4. ARM:ELF bin Hex axf

    前言: PC平台流行的可执行文件格式(Executable File Format),主要是Windows下的PE(Portable Executable)和Linux的ELF(Executable ...

  5. ELF文件——动态链接

    前言 下文所示案例为运行在armV7架构.linux平台之下的动态库文件. ELF文件格式 链接器以ELF文件的固定格式对目标程序进行链接,程序加载器以ELF文件的固定格式对其进行解析.ELF文件的组 ...

  6. 痞子衡嵌入式:ARM Cortex-M文件那些事(8)- 镜像文件(.bin/.hex/.s19)

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家讲的是嵌入式开发里的image文件(.bin, .hex, .s19). 今天这节课是痞子衡<ARM Cortex-M文件那些事>主 ...

  7. 基于C/C++的hex、s19文件相互转换

    hex转s19实现: #include <stdio.h> #include <string.h> #include "../../common/common.h&q ...

  8. ELF文件和BIN文件

    文件的内容: 1. BIN文件是 raw binary 文件,这种文件只包含机器码. 2. ELF文件除了机器码外,还包含其它额外的信息,如段的加载地址,运行地址,重定位表,符号表等. 所以ELF文件 ...

  9. HEX,S19互相转换

    工具 工具为srecord 下载链接 使用 HEX转S19 .\srec_cat.exe XXX.hex -intel -output XXX_.s19 -Motorola -address-leng ...

  10. elf文件解析以及和bin文件的区别

    其实是想搞嵌入式的,但是总是要补补这里的知识补点那里的知识 1.ELF的分类 现在PC平台流行的可执行文件格式(Executable)主要是Windows下的PE和Linux的ELF,他们都是COFF ...

最新文章

  1. HDU 6091 - Rikka with Match | 2017 Multi-University Training Contest 5
  2. 八 web爬虫讲解2—urllib库爬虫—ip代理—用户代理和ip代理结合应用
  3. matlab中怎样将字母倒叙,如何用matlab将文档里的数按行倒序输出
  4. cmd10与16进制的相互转换
  5. boost::hana::hash用法的测试程序
  6. 美国纽约的一个摄像头!刷新即现奇迹!
  7. MySQL完全备份与恢复
  8. java8 新特性之流式数据处理_Java8新特性 - 集合流式编程 - 最终操作
  9. Log4j2进阶使用(按大小时间备份日志)
  10. python规范模块和包
  11. 根据mysql生成数据库设计文档_通过navicat工具导出数据库的word格式的设计文档...
  12. byte数组转double_java数组(不同类型的初始值)
  13. 【LeetCode】【字符串】题号:*58. 最后一个单词的长度
  14. 立创开源 | 基于lm393的模数温度传感器
  15. 【SpringBoot 框架】- SpringBoot 配置文件,深入浅出mysql第三版pdf百度云
  16. ios共享账号公众号_新增iOS游戏账号共享06
  17. php 爬虫框架QueryList
  18. Away3D4.0入门教程
  19. python frame用法_Pandas Series.to_frame()用法介绍
  20. python网络爬虫一

热门文章

  1. K近邻算法(Python实现)
  2. SourceForge下载慢的解决方案
  3. 在移动硬盘(SDD)上装ubuntu18.04
  4. 容联CC(呼叫中心)系统介绍
  5. 小游戏—九宫格(拼图游戏)
  6. azw3转换为pdf_PDF怎么转换为PPT?PDF秒转PPT秘技!
  7. Maven 详解及常用命令
  8. 在IIS管理器添加网站
  9. 并查集算法题-We Are A Team-python实现
  10. 机器视觉入门,网友推荐的书目