2024年2月9日发(作者:)
1、 HEX文件与BIN文件区别
HEX文件
包含内容
包括地址信息的
烧录信息
一般都不需要用户指定地址
一定需要指定地址信息的
文件存储形式
以ASCII码形式表示十六进制的数值
十六进制数据
文件大小
非实际数据大小
BIN文件 只包括了数据本身 实际数据大小
BIN、hex 文件常用来保存单片机、ARM或其他处理器的目标程序代码,它保存物理程序存储区中的目标代码映象,一般的编程器都支持这种格式
2、HEX文件
2.1 HEX文件是用ASCII来表示十六进制的数值。例如十六进制数值0x3F,用ASCII来表示就需要分别表示字符'3'和字符'F',每个字符需要一个BYTE,所以HEX文件需要 > 2倍的空间;
2.2 Hex文件如果用特殊的程序来查看(一般记事本就可以实现)。打开后可发现,整个文件以行为单位,每行以冒号开头,内容全部为16进制码(以ASCII码形式显示);
每一行代表一个记录;
下列两行为hex的两条文件记录
:F2
:1F7020008F902000836
校验
记录头数据数据数据数据
记录结长度
地址
类型
(:)
束
占用字节数
例1
例2
1Byte
1Byte
2Byte
1Byte
nByte
1Byte
2Byte
:
:
02
10
0000
0000
04
00
0800
3818F7020008F9020008
F2
36
回车、换行
回车、换行
此表格数据“例”为16进制数(以ASCII码形式显示)
说明
数据长度:数据所占的字节数据
数据类型:
1) 00' Data Record//数据记录
2) '01' End of File Record//文件结束记录
每一个HEX文件的最后一行。例如::00000001FF这样的一行数据内容是固定的,数据长度为0,地址为0
3) '02' Extended Segment Address Record//扩展段地址记录
4) '03' Start Segment Address Record//开始段地址记录
5) '04' Extended Linear Address Record//扩展线性地址记录
由于每行标识数据地址的只有2Byte,所以最大只能到7K,为了可以保存高地址的数据,就有了Extended Linear Address Record。如果这行的数据类型是0x04,那么,这行的数据就是随后数据的基地址;上表中例2中,要写入FLASH中的地址为 (0x0800 << 16) | 0x0000),也就是写入FLASH的0x8000000这个地址
6) '05' Start Linear Address Record//开始线性地址记录
校验:计算从: (0x3A)以后(不包括:)的所有各字节的和模256的余。即各字节十六进制算术和,不计超过256的溢出值,然后用0x100减去这个算数累加和,得出得值就是此行得校验和
补充:hex 原“Intel -standard”


发布评论