1.记录结构
0 | 1 | 2 | 3 | 4 | 5 |
---|---|---|---|---|---|
S | Type | Byte Count | Address | Data | Checksum |
一个SREC格式文件包含一系列ASCLL格式的的数据。具体如下:
- Record type: 两个字节,一个大写“S” 和 一个0~9的数字,定义数据类型。
- Byte count: 一个字节,表示后面其余部分(地址+数据+校验和)的字节数。该字段最小值为3(两个字节地址字段+1个字节校验和)。
- Address: 地址段长度由Record type来决定。地址字节对齐方式为大端对齐。
- Data: 数据段。一般建议该段最大32字节。S0/S1/S2/S3 类型的最小数据数是0。最大可记录的数据数由地址段来决定,因为数据段最大记录数是255,减去1个字节的校验位,再减去地址段,剩下的才是数据段长度,因此S0/S1最大支持252字节数据,S2最大支持251字节数据,S3最大支持250字节数据。
- Checksum: 一个字节。Checksum = 取补码( (uint8_t)(Byte count + Address + Data) )
2.文本结束符
SREC记录由一个或多个ASCII行终止字符分隔,以便每个记录单独出现在文本行上。
通过可视化地划分记录来增强易读性,还提供了记录之间的填充,可以用来提高机器解析效率。
创建十六进制记录的程序通常使用符合其操作系统惯例的行终止字符。
例如,Linux程序使用一个LF(换行符,十六进制值0A)字符终止行,而Windows程序使用一个CR(回车符,十六进制值0D)后跟一个LF。
3.记录类型
4.实例
下一篇:
S19文件格式详解(2)——增加S19文件首行的解析
作者:L_Kian
链接:01_S19 文件格式详解(.srec文件) - 简书
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。