S 文件格式详解

S 文件格式详解


2023年12月1日发(作者:性价比最高的手机推荐)

S19文件格式详解

1. 概述

为了在不同的计算机平台之间传输程序代码和数据,摩托罗拉将程序和数据文件以一种

可打印的格式(ASCII格式)编码成s格式文件。

S-record格式文件是Freescale CodeWarrior编译器生成的后缀名为.S19的程序文件,

S格式文件是 Freescale推荐使用的标准文件传送格式。编译完成之后,Freescale

CodeWarrior编译器将在bin文件夹下自动生成“*.abs.s19”文件,这个文件包含最终下

载带单片机中的所有内容。

是一段直接烧写进MCUASCII码,英文全称问Motorola format for EEPROM

programming

2. 格式定义及含义

S-record每行最大是78个字节,156个字符。

S格式文件中的每一行称为一个S记录,每个S记录记录类型、记录长度、存储地址、

代码/数据、校验5部分组成。

每字节数据编码成216字符,一个字符代数据的高四位第二个字符代

数据的4

5个部分具体内容如下:

记录类型记录长度存储地址代码数据校验和

/ / / (/) /

记录类型:

2个字符(1个字节),用来描述记录的类型。记录供定义8类型:

S0:S格式文件的一个记录,表示文件名(路径)存储地址部分没有使用,0000置位

记录表示记录的开始无需下载到MCU

S1: 地址长度2字节(4个字符)的记录。记录类型是“S1 (0x5331)地址场由2个字

地址来说明。数据场由可载的数据成。

S2: 地址长度3字节的记录。记录类型是“S2 (0x5332)地址场由3个字节地址来说

。数据场由可载的数据成。

S3: 地址长度4字节的记录。记录类型是“S3 (0x5333)地址场由4个字节地址来说

。数据场由可载的数据成。

S5: 标记文件的S1S2S3记录的个数(记录不是一个S文件所必须)。记录类型

S5 (0x5335)地址场由2字节的值说明包含了先前传输的S1S2S3记录的计数。

有数据

只有S1S2S3S5需要写入到FLASH中。

S7: 地址长度4字节,表示程序的开始执地址,代码/数据部分没使用,表示

程序的结束无需下载MCU记录类型S7(0x5337)地址场由4字节的地址说明

包含了开始执地址有数据表示程序的结束,不memory

S8: 地址长度3字节,表示程序的开始执地址,代码/数据部分没使用,表示

程序的结束无需下载MCU。记录类型是“S8 (0x5338)地址场由3字节的地址说

,包含了开始执地址有数据表示程序的结束,不memory

S9: 地址长度2字节,表示程序的开始执地址,代码/数据部分没使用,表示

程序的结束无需下载MCU。记录类型是“S9 (0x5339)地址场由2字节的地址说

,包含了开始执地址有数据表示程序的结束,不memory

记录长度:

2个字符(1个字节)显示在记录中剩余的字节数

记录长度 = 存储地址字节数 + 代码/数据字节数 + 校验和字节数

存储地址:

234个字节(记录类型决定),用来表示代码/数据应该装载的起始地址。这

长度取决于入地址的字节数。2个字节的地址占4个字符,3个字节的地址占6

个字符,4个字节的地址占8个字符。

代码/数据:

0-64字符(0-32字节)表示需要下载MCU中的数据。

校验和:

2个字符(1字节),校验数据,计算方法:

校验和 = 0Xff (记录长度 + 存储地址 + 代码/数据)

注意校验和不是字符的校验和,实际二数的校验和。字符当被配对并

算成16数据的时候形成了一个最字符节,字符节用来表达作补充数据,

地址和数据的字符所代字节的)补码的byte和。计数值、地址场和数据

若干字符以个字符为一 它们相加求和,和的溢出部分不计,只保留低两位

NNchecksum =0xFF-0xNN

3. 实例:

S01F0000443A5C50726F6A6563745F335C62696E5C50726F6A6563742E61627371

S0,S191F0000

443A5C50726F6A6563745F335C62696E5C50726F6A6563742E616273

D:Project_3binProject_.ASCII71校验.

S123C000CF2100C6055B134A800BFE4A8000FE0000C015C00000

第二 S1表示本记录存储地址长度2字节23(注意16)剩余字节数,C000

92

CF2100C6055B134A800BFE4A8000FE0000C015C0

下载地址C000开始的一段连续地址中。

S218FE8020F2FEC013EC31270BED31180A30700434F920F10A0B

S2表示本记录存储地址长度3字节,18(16)表示剩余字节数,FE8020

表示起始地址0B校验和。

S9030000FC

校验和的计算S2记录为

校验 = 0xFF (0xFE + 0×80 + 0×20 + 0Xf2 + + 0x0A)

在用Freescale CodeWarrior调试FLASH擦除和写入时需注意以下几点:

1) FLASH地址需要擦除才能再次

2) 在内监视窗口时无法否正确擦除可用指针从地址处读出数据检查

否正确擦除及

3) BDM式下,用自写的FLASH下载代码通过串口导s19文件后,将导致芯

解锁(Unsecure)无法再次通过BDM者串口下载s19文件。

脱离BDM独立运未发现

: ;CW for S12(X) 5.0:MC9S12XDP512


发布者:admin,转转请注明出处:http://www.yc00.com/num/1701382642a1075527.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信