S19文件格式解析详解是一篇全面介绍S19格式的文章,深入剖析其结构、语法及应用方法,适合嵌入式系统开发人员阅读。
S19 文件格式详解
S19 文件是由 Freescale CodeWarrior 编译器生成的后缀名为.S19 的程序文件,它包含了一段直接烧录进 MCU 的 ASCII 码数据,英文全称是 Motorola format for EEPROM programming。需要注意的是,并不是将 ASCII 码直接写入 MCU 中,而是需要对 S19 文件进行解析以提取出有用的机器代码,然后将其转换为二进制码形式再写入。
下面是关于S19文件格式的详细解释:
1. 格式定义和含义
每行S-record的最大字节数是78个字符。该文件的基本结构由五个部分组成:
- 类型(type):2 个字符,用于描述记录类型 (如 S0, S1, S2 等)。
- 计数(count):2 个字符,表示剩余成对字符的计数值。
- 地址(address):4 或 6 或 8 字节长,指明数据应装载到内存中的地址位置。其长度取决于载入地址所需的字节数量。
- 数据(data): 包含0至64个字节的数据信息,这些信息可以是内存加载数据或描述性内容。
- 校验和(checksum):2 个字符,用于验证记录的正确性和完整性。
2. 记录类型
S19 文件包含多种类型的记录:
* S0 Record: 使用“S0” (0x5330) 类型。地址字段未被使用,并设置为零(0x0000),数据部分则包括名称、版本号和描述等信息。
* S1, S2 和 S3 Records:分别采用 S1(以两个字节的地址说明)、S2 (三个字节)和S3(四个字节) 来指示地址,其数据字段包含可加载的数据。
* S5 Record: 使用 “S5” (0x5335),其中计数由先前传输的记录数量决定。没有数据部分。
* S7, S8 和 S9 Records:分别使用 S7(四个字节)、S8(三个字节)和S9(两个字节)来指示地址,表示程序执行开始的位置,并且不需要将这些行烧录到内存中。
3. 校验算法
校验码的计算方法是把type、count、address以及data部分的所有字符加起来,然后去掉溢出的部分并保留最后两位作为结果。
4. 示例
以下是一个 S19 文件的例子:
S021000036384B50524F4720202031314352454154454420425920
解释如下:
类型(Type): S0
地址(Address): 未使用,设置为零(0x00)
数据(Data) :表示名称、版本号和描述等信息。
从该例子可以看出S19文件格式的复杂性以及对其每一部分进行详细解读的重要性。