无需登录 数据私有 本地保存

S-Record/HEX转二进制 - 固件文件查看器

11
0
0
0

固件文件查看器

S-Record / Intel HEX 解析 & 二进制转换
上传固件文件 或 粘贴内容
拖拽固件文件到此处
点击选择文件 · 支持 .srec / .hex / .bin / .txt
也支持直接在下文文本框中粘贴内容
字符数: 0
常见问题 & 知识点

S-Record(又称 Motorola S-record 或 SREC)是一种用于存储和传输二进制数据的文本格式,广泛用于嵌入式系统固件烧录。每条记录以 S 开头,后跟类型数字(0-9)。常见类型包括:S0(文件头)、S1(16位地址数据)、S2(24位地址数据)、S3(32位地址数据)、S5(计数记录)、S7/S8/S9(结束记录,分别对应32/24/16位起始地址)。每行末尾的最后一个字节为校验和,所有字节之和的低8位应为 0xFF

Intel HEX 是一种使用ASCII文本表示二进制数据的标准格式。每行以冒号 : 开头,格式为::LLAAAATT[DD...]CC。其中 LL 为数据长度、AAAA 为地址、TT 为记录类型(00=数据、01=文件结束、02=扩展段地址、03=起始段地址、04=扩展线性地址、05=起始线性地址)、DD 为数据字节、CC 为校验和。所有字段字节之和的低8位必须为 0x00

两者都是将二进制数据编码为ASCII文本的格式,但存在几个关键区别:

1. 行首标识:S-Record 以 S 开头,Intel HEX 以 : 开头。
2. 地址宽度:S-Record 支持16/24/32位地址(通过S1/S2/S3),Intel HEX 默认16位地址但可通过扩展记录实现32位寻址。
3. 校验和算法:S-Record 要求所有字节之和为 0xFF,Intel HEX 要求为 0x00
4. 头部信息:S-Record 有专门的S0头部记录可存储文件名等信息,Intel HEX 无标准头部。
5. 使用场景:S-Record 在Freescale/NXP、STM32等生态中更常见,Intel HEX 广泛用于8051、AVR、ARM等平台。

使用本工具即可轻松完成: 上传或粘贴 S-Record/HEX 内容 → 点击「解析文件」→ 检查解析结果无误后,点击「下载 .bin」按钮即可获取纯二进制文件。转换时,地址间隙默认用 0xFF 填充(模拟Flash擦除状态)。如果您的设备需要 0x00 填充,可在下载前留意地址范围信息。本工具正确处理扩展线性地址(HEX类型04)和扩展段地址(HEX类型02),确保大地址空间固件转换正确。

校验错误可能由以下原因导致:
① 文件损坏:传输或复制过程中数据受损,导致校验和不匹配。
② 格式混用:文件中混杂了不同格式的记录(如S-Record和HEX混在一起)。
③ 手动编辑错误:手动修改地址或数据后未重新计算校验和。
④ 多余空格/换行:某些编辑器引入的不可见字符干扰解析。
本工具会逐行验证校验和并在记录列表中用红色标记错误行,方便您定位问题。

Intel HEX 标准数据记录仅支持16位地址(最大64KB)。对于超过64KB的固件(如STM32的512KB Flash),需要使用扩展线性地址记录(类型 04)来设置高16位地址。例如:记录 :020000040801F1 将扩展线性地址设为 0x0801,后续数据记录的实际地址 = 记录内地址 + (0x0801 << 16) = 0x0801XXXX。本工具自动追踪扩展地址变化,确保大固件文件地址计算准确无误。

S5记录是一个可选的元数据记录,其数据字段包含在此之前出现的 S1/S2/S3 数据记录的总数(2字节大端序)。它用于验证文件传输的完整性——接收方可以对比实际收到的数据记录数与S5中声明的数量是否一致。虽然现代烧录工具较少依赖S5,但在对老旧设备或严格的生产流程中,S5记录仍然是一个有用的校验手段。本工具在解析时会识别并显示S5计数记录。

下载的 .bin 文件是纯二进制固件映像,可使用以下工具烧录:
STM32:STM32CubeProgrammer、ST-LINK Utility、OpenOCD
AVR/Arduino:avrdude、Arduino IDE
ESP32/ESP8266:esptool.py
通用:J-Flash(Segger)、OpenOCD、pyOCD
请确保烧录地址与固件的起始地址一致。本工具在解析结果中会显示地址范围,供您参考。

本工具支持 .srec.s19.s28.s37.hex.mcs.bin.txt.rom 等常见固件文件扩展名。文件大小方面,文本输入框可处理数MB的固件文件(典型固件通常在几KB到几MB之间)。对于极大的文件(如超过16MB地址范围的映像),二进制下载功能可能会受浏览器内存限制,但解析和查看功能不受影响。大文件建议使用「记录列表」和「内存映射」视图进行分析。

Intel HEX:将记录中冒号后所有字节(长度+地址+类型+数据+校验和)相加,结果的低8位必须为 0x00。校验和字节 = (0x100 - 前面所有字节之和的低8位) & 0xFF
S-Record:将类型字符后所有字节(地址+数据+校验和)相加,结果的低8位必须为 0xFF。校验和字节 = (~地址与数据字节之和) & 0xFF
本工具在解析每条记录时自动验证校验和,并用绿色标记正确、红色标记错误的记录。