> motorola | srec | S1 <
// S-Record —— Motorola 面向嵌入式系统和微控制器的十六进制固件格式
[MOTOROLA]
行业标准
Motorola 官方的十六进制固件格式,广泛用于微控制器和嵌入式系统编程。
[FLEXIBLE]
多种地址长度
支持 16 位(S1)、24 位(S2)、32 位(S3)等不同地址宽度。
[VERIFIED]
校验和保护
每条记录都包含校验和,用于错误检测和保证数据完整性。
>> 技术说明
S-Record 的工作原理:
S-Record 将二进制数据表示为 ASCII 十六进制记录。每一行以 "S" 开头,后面依次是类型、字节计数、地址、数据和校验和。不同的记录类型对应不同的地址宽度。
记录类型示例:
S0:头部记录 S1:数据(16 位地址) S2:数据(24 位地址) S3:数据(32 位地址) S5:计数记录 S7/S8/S9:结束记录
为什么选择 S-Record:
- >Motorola MCU 固件烧录
- >嵌入式固件分发
- >PROM/烧录器工具
- >跨平台固件传输
- >调试与数据校验
>> 常见问题
什么是 S-Record 格式?
S-Record(SREC)是 Motorola 提出的十六进制固件文件格式,用于把二进制数据编码成 ASCII 文本行。它在微控制器编程和向嵌入式系统传输固件数据时被广泛使用。
S1、S2、S3 记录有什么区别?
主要区别在于可用地址空间:S1 使用 16 位地址(最高约 64KB),S2 使用 24 位地址(最高约 16MB),S3 使用 32 位地址(最高约 4GB)。应根据目标设备的地址空间选择合适的记录类型。
S-Record 中的校验和是如何计算的?
校验和是记录中所有字节(计数字段、地址和数据)的和取反(one's complement)。通过复算校验和,可以检测传输或存储过程中是否发生了数据损坏。
S-Record 和 Intel HEX 有什么区别?
二者都是文本形式的固件格式。S-Record 来自 Motorola,Intel HEX 来自 Intel。S-Record 原生支持更大的地址空间和更多记录类型,而 Intel HEX 在很多老工具链中更常见。