什么是 HEX 文件?
HEX 文件是十六进制文件,常见的格式是 Intel HEX 文件格式,是一种广泛用于存储和传输二进制数据的文本文件。它以 ASCII 文本的形式存储二进制数据,主要特点如下:
1.文件结构
HEX 文件以行(称为记录)为单位,每行由以下字段组成:
- 冒号 (😃:每行以冒号开头。
- 字节数(2位16进制):表示当前记录的数据字节数。
- 地址(4位16进制):数据在内存中的起始地址。
- 记录类型(2位16进制):
- 00 表示数据记录。
- 01 表示文件结束记录。
- 其他类型用于扩展地址等。
- 数据(2*N位16进制):实际存储的数据。
- 校验和(2位16进制):用于校验记录的正确性。
2.示例
一个简单的 HEX 文件内容:
:100000000C947E000C9484000C9484000C948400A7:00000001FF
第一行是数据记录,其中 10000000 表示数据的长度和地址,0C947E000C948400 是数据内容。
第二行是文件结束记录,表示文件读取到此结束。
什么是 BIN 文件?
BIN 文件是二进制文件,是以二进制格式直接存储数据的文件,没有额外的元数据和格式信息。它是一种更原始的文件形式。
1.文件结构
- 纯粹的数据流,没有分隔符、地址信息或校验字段。
- 数据从文件的第一个字节开始存储,通常直接映射到目标存储器的起始地址。
2.示例
如果 HEX 文件的内容是:
:100000000C947E000C9484000C9484000C948400A7
它对应的 BIN 文件是:
[0x0C][0x94][0x7E][0x00][0x0C][0x94][0x84][0x00]...
BIN 文件仅保存实际数据,不包含地址等附加信息。
HEX 文件和 BIN 文件的对比
属性 | HEX 文件 | BIN 文件 |
---|---|---|
格式 | 以 ASCII 格式存储,包含地址、校验等附加信息 | 纯二进制数据,没有任何附加信息 |
文件大小 | 较大(因为以文本存储数据并有附加信息) | 较小(因为只存储数据) |
地址信息 | 包含地址信息,可以精确映射到目标存储器 | 无地址信息,需烧录工具手动指定起始地址。 |
校验机制 | 每行有校验和,用于确保数据完整性 | 无校验机制,数据的完整性需额外处理 |
可读性 | 人类可读,适合调试和查看内容 | 不可读,仅供机器直接处理 |
典型用途 | 更复杂的场景,需支持分段地址的存储和精确映射 | 简单烧录任务,或起始地址固定的系统 |
属性HEX 文件BIN 文件格式以 ASCII 格式存储,包含地址、校验等附加信息。纯二进制数据,没有任何附加信息。文件大小较大(因为以文本存储数据并有附加信息)。较小(因为只存储数据)。地址信息包含地址信息,可以精确映射到目标存储器。无地址信息,需烧录工具手动指定起始地址。校验机制每行有校验和,用于确保数据完整性。无校验机制,数据的完整性需额外处理。可读性人类可读,适合调试和查看内容。不可读,仅供机器直接处理。典型用途更复杂的场景,需支持分段地址的存储和精确映射(如 MCU 的 Flash)。简单烧录任务,或起始地址固定的系统。
总结
- HEX 文件:适合复杂的嵌入式应用,提供精确的地址映射和较高的数据完整性。
- BIN 文件:适合简单任务,文件紧凑且烧录速度快。