行格式
跟hex文件不同,S19文件是由 ASCII 文本组成
区域 | 记录类型 | 字节计数 | 地址 | 数据 | 校验和 |
长度 | 2字符 | 2字符 | 4或6或8个字符 | 0—64字符 | 2字符 |
记录类型:2字符,一个大写"S"(0x53),和一个数字0-9。
字节计数:2字符,地址和数据和校验和三个区域的总长度。
地址:4或6或8字符,由记录类型决定,地址字节以大端格式排列。
数据:0-64字符。
校验和:2个字符。
记录类型
记录类型 | 意义 | 意义 |
S0 | 标题 | 在文件的第一行,表示标题,地址部分没有用,全0,表示记录的开始,一般是S0030000FC |
S1 | 数据 | 地址长度为两字节的记录,包含类型、长度、地址、数据和校验和五个部分 |
S2 | 数据 | 地址长度为三字节的记录,包含类型、长度、地址、数据和校验和五个部分 |
S3 | 数据 | 地址长度为四字节的记录,包含类型、长度、地址、数据和校验和五个部分 |
S4 | / | / |
S5 | 计数 | 很少用到 |
S6 | 计数 | 很少用到 |
S7 | 起始/终止地址 | 地址长度为四字节的记录,包含类型、长度、地址和校验和四个部分,表示程序的结束。 |
S8 | 起始/终止地址 | 地址长度为三字节的记录,包含类型、长度、地址和校验和四个部分,表示程序的结束。 |
S9 | 起始/终止地址 | 地址长度为四字节的记录,包含类型、长度、地址和校验和两个部分,表示程序的结束。 |
校验算法
校验和CHKSUM = 0xFF - ((字节计数 + 地址 + 数据 )& 0xFF)