S19 文件格式详解
S-record 格式文件是 Freescale CodeWarrior 编译器生成的后缀名为.S19 的程序文
件,是一段直接烧写进 MCU 的 ASCII 码,英文全称问 Motorola format for EEPROM
programming。
【注意:编者】:
上面“是一段直接烧写进
MCU
的
ASCII
码”,这样说可能会误导初学者,因为并不是直接将
ASCII
码写进
MCU
,写进
MCU
前还要对
S19
文件进行一个解析,把有用的机器代码分解
出来,然后再进行写入,写入的也不是
ASCII
而是二进制码。
网上有关 S-record 格式文件的资料很少,经过我的收集和实验,整理出以下文档,方便
大家对 Freescale 单片机做深入了解。
1、格式定义及含义
S-record 每行最大是 78 个字节,156 个字符
S-record format
type count address data checksum
type(类型):2 个字符。用来描述记录的类型 (S0,S1,S2,S3,S5,S7,S8,S9)。
count(计数):2 个字符。 用来组成和说明了一个 16 进制的值,显示了在记录中剩余成对
字符的计数。
address(地址):4 或 6 或 8 个字节。用来组成和说明了一个 16 进制的值,显示了数据应
该装载的地址, 这部分的长度取决于载入地址的字节数。2 个字节的地址占用 4 个字符,3
个字节的地址占用 6 个字符,4 个字节的地址占用 8 个字符。
data(数据):0—64 字符。用来组成和说明一个代表了内存载入数据或者描述信息的 16
进制的值。
checksum(校验和):2 个字符。这些字符当被配对并换算成 16 进制数据的时候形成了一
个最低有效字符节,该字符节用来表达作为补充数据,地址和数据库的字符对所代表的(字
节的)补码的 byte 总和。即计数值、地址场和数据场的若干字符以两个字符为一对,将它
们相加求和,和的溢出部分不计,只保留最低两位字符 NN,checksum =0xFF-0xNN。
S0 Record:记录类型是“S0” (0x5330)。地址场没有被用,用零置位(0x0000)。数据