目录
1. 概述
Motorola S-record是由Motorola创建的一种文件格式,它以 ASCII十六进制文本形式传送二进制信息。这种文件格式也可以称为SRECORD、SREC、S19、S28、S37。它通常用于对微控制器、EPROM 和其他类型的可编程逻辑设备进行编程。
S-record格式是在1970年代中期为 Motorola 6800处理器创建的。该处理器和其他嵌入式处理器的软件开发工具将生成S-record格式的可执行代码和数据。程序员将读取S-record格式并将数据“刻录”到嵌入式系统中使用的PROM或EPROM中。
Hex 是另一种十六进制格式,指的是Intel-HEX,它是由Intel制定的格式。
2. S-record格式
S-record 格式文件由一系列 ASCII 文本记录组成。这些记录从左到右具有以下结构:
type(记录类型):2个字符,一个大写的"S"(0x53),然后是一个数字0~9,定义了记录的类型 (S0,S1,S2,S3,S5,S7,S8,S9)。
count(字节计数):2个字符,16进制数字,表示记录的其余部分(address + data + checksum)的字节数(16进制数字对)。对于 16 位地址字段加上 1 个校验和字节,该字段的最小值为 3,最大值为 255 (0xFF)。通常记录有 32 个数据字节。
address(地址):4或6或8个字符。由记录类型 type 决定。对于S1和S9类型(S19),地址字段为 4 个十六进制数字(2 个字节)。对于S2和S8 record(S28),地址字段为 6 个十六进制数字(3个字节),对于S3和S7 record(S37),地址字段为 8 个十六进制数字(4 个字节)。地址首先以 MSB 发送。地址字节以大端格式排列。
data(数据):0—64字符。用来组成和说明一个代表了内存载入数据或者描述信息的16进制的值。
checksum(校验和):2个字符。这些字符当被配对并换算成16进制数据的时候形成了一个最低有效字符 节,该字符节用来表达作为补充数据,地址和数据库的字符对所代表的(字节的)补码的byte总和。即计数值、地址场和数据场的若干字符以两个字符为一对, 将它们相加求和,和的溢出部分不计,只保留最低两位字符NN,checksum =0xFF-0xNN。有关详细的校验和示例,请参见示例部分。
不建议在一个记录中发送太多的数据字节,因为这可能会在出错时增加传输时间。还要避免每条记录只发送几个数据字节,因为与有效负荷相比,地址开销太大。
3. S-record类型
下表描述了 10 种可能的 S 记录。S4 是保留的,当前未定义。S6 最初是保留的,但后来在某个时候重新定义。

最低0.47元/天 解锁文章
1476





