BIN文件和HEX文件区别

本文详细阐述了HEX文件与BIN文件的区别。HEX文件包含地址信息且使用ASCII码表示十六进制数,通常用于烧录过程中的地址定位;而BIN文件仅包含数据信息,可以直接烧写到芯片中。此外,还介绍了HEX文件的具体结构。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

BIN文件和HEX文件区别

参考:https://blog.youkuaiyun.com/spdian/article/details/52963467
https://zhidao.baidu.com/question/180988134632085124.html

1. HEX文件包含地址信息,BIN文件只包含数据信息

在烧写或下载HEX文件的时候,一般都不需要用户指定地址,因为HEX文件内部的信息已经包括了地址。而烧写BIN文件的时候,用户是一定需要指定地址信息的。
HEX文件是十六进制文件,整个文件以行为单位,每行以冒号开头,内容全部为16进制码。第一个字节表示本行数据的长度;第二、三字节表示本行数据的起始地址;第四字节表示数据类型,数据类型有:0x00、0x01、0x02、0x03、0x04、0x05。然后是数据字段,最后一个字节为校验和。

00用来记录数据,HEX文件的大部分记录都是数据记录
01用来标识文件结束,放在文件的最后,标识HEX文件的结尾
02用来标识扩展段地址的记录
03开始段地址记录
04用来标识扩展线性地址的记录
05开始线性地址记录

举个栗子

:020000040000FA
:10000400FF00A0E314209FE5001092E5011092E5A3
:00000001FF

对上面的HEX文件进行分析:
第1条记录的长度为02,LOAD OFFSET为0000,RECTYPE为04,说明该记录为扩展段地址记录。数据为0000,校验和为 FA。从这个记录的长度和数据,我们可以计算出一个基地址,这个地址为0X0000。后面的数据记录都以这个地址为基地址。
第2条记录的长度为10,LOAD OFFSET为0004,RECTYPE为00,说明该记录为数据记录。 数据为FF00A0E314209FE5001092E5011092E5,共16个BYTE。这个记录的校验和为A3。此时的基地址为0X0000,加上OFFSET, 这个记录里的16BYTE的数据的起始地址就是0x0000 + 0x0004 = 0x0004。
第3条记录的长度为00,LOAD OFFSET为0000,TYPE = 01,校验和为FF。说明这个是一个END OF FILE RECORD,标识 文件的结尾。

2. HEX文件是用ASCII来表示十六进制

例如一个的十六进制数值0x3F,用ASCII来表示就需要分别表示字符’3’和字符’F’,每个字符需要一个BYTE,所以HEX文件需要 > 2倍的空间。
HEX文档是ASCII码的文档。是不能直接烧到单片机中的。中间要有转换程序。但是现在很多编程器都设计成直接可以导入hex文件烧录的,其实这是做了设计的。bin文件是二进制文件,是可以直接烧到芯片中,中间不用转换的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

tangYi0_0

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值