S19文件格式详解

合集下载

INCA培训

INCA培训

2010年11月11日
28
INCA培训
五、CDM(Calibration Data Manager)标定数据的比较
2.导入比较数据 点击下面红箭头所示图标加入需要比较的标定数据,然后在蓝色箭头所指区域右键 加入组标定数据
2010年11月11日
29
INCA培训
五、MDA(measure data analyzer)的使用
3.增加显示和记录的变量 点击default命令,跳出窗口,你可以选择你喜欢的变量显示方式(包括表格显示, 视窗显示和示波器显示)。然后点击ok。
2010年11月11日
27
INCA培训
五、CDM(Calibration Data Manager)标定数据的比较
1.进入CDM界面 CDM用于同一版本ECU的不同标定数据的比较。点击下图红箭头所示图标进入CDM 界面。
2010年11月11日
33
INCA培训
六、MDA(measure data analyzer)的使用
3.显示变量 点击“选择变量”图标,用鼠标选择你需要看的变量,点击“ok”。
2010年11月11日
34
INCA培训
六、MDA(measure data analyzer)的使用
3.显示变量 如下图所示我们可以选择变量的显示形式(窗口、表格、示波器等)。示例中选择示 波器的显示方式。
13
INCA培训
三、INCA操作流程
4、将项目添加到workspace
如图所示选择项目点击ok将project添加到workspace
2010年11月11日
14
INCA培训
三、INCA操作流程
4、将项目添加到workspace

文件格式和数据序列化

文件格式和数据序列化

文件格式和数据序列化在计算机科学领域中,文件格式和数据序列化是两个非常重要的概念。

文件格式定义了数据在存储介质上的组织方式和表示方法,而数据序列化则是将数据从一种形式转换为另一种形式,以便于存储、传输和处理。

本文将介绍文件格式和数据序列化的概念、应用及相关技术。

一、文件格式文件格式是指计算机文件中存储的数据的组织形式和编码方式。

不同的文件格式适用于不同的应用场景,如文本文件(.txt)适用于存储纯文本数据,图像文件(.jpg, .png)适用于存储图像数据,视频文件(.mp4, .avi)适用于存储视频数据等。

文件格式的设计需要考虑数据的类型、大小、可读性、可兼容性等因素。

常见的文件格式有:文本文件、二进制文件、图像文件、音频文件、视频文件等。

文本文件是由字符组成的文件,可用普通文本编辑器打开并查看其内容。

二进制文件是由字节组成的文件,通常用于存储计算机程序或非文本数据。

图像文件、音频文件和视频文件是用于存储图像、音频和视频数据的文件格式。

文件格式的设计需要考虑多方面的因素,如数据的可读性、存储效率、传输效率、兼容性等。

不同的文件格式有不同的特点和应用场景,选择合适的文件格式对于数据的处理和存储至关重要。

二、数据序列化数据序列化是将数据从一种形式转换为另一种形式的过程。

在计算机领域中,数据序列化通常用于数据的存储、传输和处理。

序列化可以将数据结构转换为字节流,以便于存储在计算机的硬盘上;反序列化则是将字节流重新还原为原始的数据结构,以便于进一步处理。

数据序列化的方法有很多种,常见的有文本格式、二进制格式和XML格式等。

文本格式的序列化方法采用纯文本的方式将数据转换为字符串,易于阅读和理解,但占用存储空间较大。

二进制格式的序列化方法将数据转换为二进制字节流,占用存储空间较小,但不易于阅读和理解。

XML格式是一种标记语言,可以将数据以标签的形式进行序列化,具有良好的可读性和可扩展性。

在实际应用中,选择合适的数据序列化方法可以提高数据的处理效率和存储效率。

MC68HC09编程器手册

MC68HC09编程器手册

8位Motorola单片机MC68HC908全系列编程器用户手册清华大学Motorola单片机与DSP应用开发研究中心地址:北京清华大学工程物理系馆210B房间邮编:100084电话:8610-62785779传真:8610-62782026网址:电邮:wufr@8位Motorola单片机MC68HC908全系列编程器用户手册1、简介Motorola公司的8位单片机在世界上占有很大的市场份额。

MC68HC908是Motorola公司的以Flash作为内部存储器的8位单片机系列。

面向不同的用户和场合,MC68HC908包括多种单片机型号。

比如MC68HC908JB8带有USB模块,可用于USB设备的设计;MC68HC908GP32含有丰富的IO引脚,带有SCI、SPI、AD、键盘等功能模块,是一款通用的8位单片机;MC68HC908QT,是面向低端用户的,其价格便宜,功能简约实用……MC68HC908系列单片机均以Flash作为内部存储器。

“8位Motorola单片机MC68HC908全系列编程器”以此为基础,实现对MC68HC908单片机内容Flash 的擦写,并将用户编写的程序烧写入Flash中,实现编程的功能。

2、可适用的单片机可直接进行编程的单片机型号:Pin,DIP)MC68HC908GP32 (40Pin,SDIP)MC68HC908GP32 (42Pin,SDIP)MC68HC908SR12 (42Pin,DIP)MC68HC908JL3 (28Pin,DIP)MC68HC908JK1 (20Pin,DIP)MC68HC908JK3 (20Pin,DIP)MC68HC908JB8 (20Pin,DIP)MC68HC908GR8 (28Pin,DIP)MC68HC908QY1 (16MC68HC908QY2 (16Pin,DIP)Pin,DIP)MC68HC908QY4 (16Pin,DIP)MC68HC908QT1 (8Pin,DIP)MC68HC908QT2 (8Pin,DIP)MC68HC908QT4 (8有关MC68HC908系列中其他型号的单片机及贴片封装的单片机的编程方法,用户可与中心联系。

FlashProgrammer使用说明

FlashProgrammer使用说明

Flash Programmer使用说明OCD Flash Programmer 是Macraigor 公司专门用于烧写Nor Flash 的在线编程软件可配合Macraigor 所有仿真器的使用。

有支持Windows (非常易于使用)和Linux 2种操作系统的版本。

支持CPU及Flash非常丰富具体可下载OCD Flash Programmer试用版,试用查找。

现在本使用手册以烧写SinoSys-M3 平台为例,结合Macraigor 公司的usb2Demon 仿真器,演示OCD Flash Programmer使用方法。

一、软硬件准备1、硬件SinoSys-M3 是ARM920T CPU采用Samsung S3c2440 ,Flash采用Silicon Stor age Technology的SST39VF1601;仿真器是Macraigor 公司的usb2Demon ARM20 ;PC操作系统是WindowsXp。

2、软件OCD Flash Programmer 正式版;SinoSys-M3 的bootloader.bin ;OCD Commander;二、操作步骤1、安装OCD Commander及OCD Flash Programmer,下载试用版,点击安装即可。

2、将目标板(SinoSys-M3)通过仿真器(usb2Demon)和PC连接起来,给目标板上电。

3、安装usb2Demon 驱动,系统会自动安装该驱动(驱动文件已经包含在步骤1中了),如有疑问,可参见USB2DEMON 使用说明。

4、SinoSys-M3 的bootloader.bin(需要烧写的文件)转化为S19格式。

安装完OCD Flash Programmer 后,会同时安装BinToS19 命令行程序,主要作用是将bin文件转化成S19格式文件,命令格式:即:执行BinToS19.exe bootloader.bin 0X30000000 boot.S19(我是将BinToS19.exe以及bootloader.bin拷贝到同一目录下执行的,执行后会在该目录下生成boot.S19)5、打开OCD Commander设置连接参数如图:6、点击status查看状态是否是in DEBUG:如果不是请点击halt,使其进入调试状态,关闭OCD Commander。

BootLoader下位机开发总结

BootLoader下位机开发总结

飞思卡尔HS12 BootLoader开发流程1.设置BootLoader代码装载地址该操作在Prm文件中设置,在Flash分区中加入下列代码:ROM_F000 = READ_ONLY 0xF000 TO 0xFCFF;把所有BootLoader文件存储设置为都保存在ROM_F000中,代码如下:PLACEMENT /* here all predefined and user segments are placed into the SEGMENTS defined above. */ _PRESTART, /* Used in HIWARE format: jump to _Startup at the code start */STARTUP, /* startup data structures */ROM_VAR, /* constant variables */STRINGS, /* string literals */VIRTUAL_TABLE_SEGMENT, /* C++ virtual table segment *///.ostext, /* eventually OSEK code */NON_BANKED, /* runtime routines which must not be banked */DEFAULT_ROM,COPY /* copy down information: how to initialize variables *//* in case you want to use ROM_4000 here as well, make surethat all files (incl. library files) are compiled with theoption: -OnB=b */INTO ROM_F000; //ROM_C000 /*, ROM_4000*/;2.设置进入BootLoadr 模式的flag该操作在start12文件中修改,常见的有I/O检测,延时,通信。

mot文件解析

mot文件解析

mot文件格式2010-12-03 17:05单片机常用输出格式--Motorola S-records(S19文件)Motorola S-records 16进制文件格式是嵌入式中除intel hex之外很常见的格式,下面是它的格式:+-------------------//------------------//-----------------------+| type(hex1) | count(hex 1) | address | data | checksum(从count累加到checksum,总和为0xFF) |+-------------------//------------------//-----------------------+S0 :标识记录,地址域长度为2个字节,并用0000填充,数据区记录了一些模块名称和版本之类的信息S1 :数据记录,地址域长度为2个字节,数据区域为数据内容。

S2 :数据记录,地址域长度为3个字节,数据区域为数据内容。

S3 :数据记录,地址域长度为4个字节,数据区域为数据内容。

S5 :统计记录,地址域长度为2个字节,内容是之前数据记录(S1,S2,S3)的个数,数据区域空。

S7 : 运行记录,地址域长度为4个字节,内容是程序启动的地址,数据域空。

S8 :运行记录,地址域长度为3个字节,内容是程序启动的地址,数据域空。

S9 :运行记录,地址域长度为2个字节,内容是程序启动的地址,数据域空。

下面是一个例子,大家看看:S02B0000433A5C446F63756D656E747320616E642053657474696E67735C7A6F75642E4143434F554E54535C7DS208010000FFFFFFFFFAS30800020000000000F5S5030002FAS9030000FC第一行:没什么,开个头而已。

第二行:地址0x10000有4个0xFF第三行:地址0x20000有3个0x00第四行:标明之前有两条数据记录第五行:程序从0x0000地址开始运行关于checksum的算法和intel hex不太一样,checksum = 0xFF - (从count段开始所有字节的总和)。

一定要知道的BootLoader的基础知识

一定要知道的BootLoader的基础知识

一、BootLoader是怎么下载应用程序的?应用程序的写入可通过S19文件。

S19文件为飞思卡尔推荐使用的标准文件传送格式,是一段直接烧写进芯片的ASCII码格式:记录类型、记录长度、存储地址、代码数据和校验码5个部分组成每一行总是以S开头,后一位跟着的数据表示改行记录的类型。

S0:说明性信息,非程序数据S1:程序数据,且地址为16位S2: 程序数据,且地址为24位S9:整个S19文件的结束行浅谈BootLoader中的Flash与RAM划分:二、为什么要划分出一块RAM区?对P-Flash擦除与写入操作的时候,不允许同时对其进行读取,故此,对Flash的擦除、写入以及CAN终端信号的处理代码,应复制到RAM中运行。

怎么做?(在飞思卡尔XET256中,这一功能可通过关键字RELOCATE_TO实现。

)因此在划分Flash的同时也应对RAM进行划分,以实现这一功能。

(定义RAM的关键字为READ_WRITE)这样做后得到什么样的结果?划分出一个与P-Flash大小相等的一块RAM区三、关于BootLoader中的地址分配问题飞思卡尔16位单片机复位后总是从优先级最高的中断向量地址0xFFFE处取第一条执行指令。

因此,BootLoader 可执行代码的首地址应安排在此处,以保证上电后BootLoader最先执行。

这可以通过在prm文件中定义VECTOT 0 实现,即将VECTOR 0 定义为Bootloader程序的入口地址。

而应用程序也同样希望对VECTOR 0 定义,以实现在单片机上电后直接执行应用程序的目的。

由于存在这一中断资源冲突,因此,BootLoader在刷写时需要对应用程序的中断向量表进行重新分配。

四、通信协议BootLoader的通信协议的目的是什么?实现BootLoader于上位机之间的命令和状态传输怎么做?在标准的CAN协议基础上,定义一套简单的通信协议。

该协议中所使用的命令和状态均以报文ID表示,即每一个ID代表一个特定的命令或状态。

MT80介绍

MT80介绍

高速、低速扇开关参数: KaELCL_T_DIS_LowFanEnable KfELCL_T_DIS_LowFanHyst KaELCL_T_DIS_HighFanEnable KfELCL_T_DIS_HighFanHyst
'CeELCL_DIS_HIGH' -> 3
'CeELCL_DIS_NUMSTAT' -> 4
KfHVAC_t_OffTimeMin KfHVAC_t_EngRunMin
MT80系统
8
2、电子扇控制
MT80系统支持普通双速电子扇,也支持PWM电子扇。 以普通双速电子扇为例: 电子扇状态量:FADACTST:
'CeELCL_DIS_OFF' -> 0
'CeELCL_DIS_LOW' -> 1 'CeELCL_DIS_MEDIUM' -> 2
MT80系统
20
AC_PS_Cramp_ Temporary_Disable
High Vehicle Speed Disable
AC_High_Vehicle_ Speed_Temporary _Disable
High Engine Speed Disable
AC_High_TPS_ Temporary_Disable
开发14。
电脑板黑头子
电脑15。
产品 电脑
MT80系统 13
八、OBD系统诊断
MT80系统
14
1、OBD故障诊断绍
MT80中以 KsDGDM 开头的参 数就是故 障诊断相 关的参数
MT80系统
15
2、失火诊断
–某缸失火会导致发动机曲轴减速。失火模块检测发动机曲轴的加/减速度来 确定是否发生失火。

S19 Format

S19 Format
S0:标识记录,地址域长度为2个字节,并用0000填充,数据区记录了一些模块名称和版本之类的信息
S1:数据记录,地址域长度为2个字节,数据区域为数据内容。
S2:数据记录,地址域长度为3个字节,数据区域为数据内容。
S3:数据记录,地址域长度为4个字节,数据区域为数据内容。
S5:统计记录,地址域长度为2个字节,内容是之前数据记录(S1,S2,S3)的个数,数据区域空。
| type(hex1) | count(hex 1) | address | data | checksum(从count累加到checksum,总和为0xFF) |
+-------------------//------------------//-----------------------+
S12380201F898BF687E6024C9EE706E603EE018A4C20037FAF014BFB9E6B05F78A88AF04BD
S12380409E6B02DD9E6B01D9328088898BADB1974C9EE703ADAA4C9EE7044A260351001832
S1238060AD9E878AAD9A972005AD95F7AF019E6B04F79E6B03F320D5A7068145015094ADB7
单片机常用输出格式--Motorola S-records(S19文件)
Motorola S-records 16进制文件格式是嵌入式中除intel hex之外很常见的格式,下面是它的格式:
+-------------------//------------------//-----------------------+

小技巧之实现IAR下S19、Bin、Hex文件格式转换

小技巧之实现IAR下S19、Bin、Hex文件格式转换

小技巧之实现IAR下S19、Bin、Hex文件格式转换今天有点小激动,搞了大半年的课题终于有点成果了,眼泪哗哗的,太不容易了,哈哈。

所以趁着心情大好手感大好的时候,抓紧更更博客了。

另外从零入手系列好久没更新了,也有博友问我啥时候更新,哎,大家的热情我还是很感激的,最近一直在搞FPGA 这块,Kinetis 那部分放下一段时间了,不过用不了多长时间就会继续更新了。

其实FPGA 搞了一段时间发现还是搞ARM 更顺手些,习惯了C 的顺序编程,FPGA 的并行编程一时之间还真转不过这个弯来,哈哈~本篇内容自己早就想好了,只不过不是被事耽搁就是手感不好就没有写出来,今天就拿出来说说吧,不然再过段时间就被我尘封在大脑皮层的深处了,呵呵。

其实内容很简单,无非就是对IAR 环境的设置(咳咳,可以说一点技术含量都没有),不过本篇博客核心思想是开阔一下大家的思路原来这样就可以。

另外本篇最后给出了用CW 自带的格式转换工具的用法链接,那部分是从飞思卡尔技术社区的安版主写的,有兴趣的可以去看看。

下面进入正题吧:首先说说这三个文件格式的来头。

bin 文件是我们最常见的二进制文件,它是纯数据文件,也即是所见即所得,所以如果我们想看看需要下载到单片机flash 的数据的大小,最简单的方法就是查看我们编译连接后生成的bin 文件大小;hex 文件则是Intel 很早就推出的一种文件格式(Intel 还是一如既往的很牛逼啊有木有),它除了有效数据信息之外还包含了一些多余信息(包括地址信息,校验码之类的等等信息),所以hex 文件是很大的,而最终下到单片机的flash 里的仍是其中的有效数据段,而其他的信息段则是作为flash 编程软件的辅助信息的(包括地址信息)。

因此我们常见的问题就来了,如果烧写或者下载Bin文件时,软件会弹出首地址框输入相应地址信息,而在烧写Hex 文件的时候则。

S19与HEX文件格式解析

S19与HEX文件格式解析

S19格式与HEX格式详解2019.03 S19 与 HEX文件中的所有字节都是可打印的 ASCII 字符,可用任何文本编辑器打开查看S19S-record格式文件是Freescale CodeWarrior编译器生成的后缀名为.S19的程序文件,是一段直接烧写进MCU的ASCII码,英文全称问Motorola format for EEPROM programming。

S19 格式是每一行为一个记录,每个记录由 6 个部分组成,除起始代码外,均用十六进制数大端格式表示:1.起始代码:一个大写字母“S”,表示一个新记录的开始。

2.记录类型:1 个十六进制位,取值 0~9,定义记录块的类型,详见下文。

3.字节数:2 个十六进制位,表示地址、数据、校验和的总字节数。

4.地址:4, 6 或 8 个十六进制位,具体的长度由记录类型决定,表示本条记录在内存中的起始地址。

5.实际数据:2n 个十六进制字符,n 为前面指定的字节数的值减去地址和校验和的长度。

6.校验和:2 个十六进制字符,为字节数、地址和实际数据的所有字节(两个十六进制位)的和对 0xFF 取模,再求反码得到。

一个完整的MOTOROLA S-Record格式数据包含如下区域:<type> <length> <address> <data> <checksum>各字段的意思分别如下:<type>:标示记录的类型,该字段占据1-byte。

它可以有如下数值:“S0”, “S1”, “S2”, “S3”, “S5”, “S7”, “S8” , “S9”“S0” -- 记录描述信息“S1”, “S2”, “S3” -- 记录存储的数据。

这三者的区别在于地址(address)的长度不同,S1为2-byte,S2为3-byte,以及S3为4-byte。

“S5” -- 包含了“S1”, “S2”, “S3”的信息。

s19文件格式说明

s19文件格式说明

S-record格式文件是Freescale CodeWarrior编译器生成的后缀名为.S19的程序文件,是一段直接烧写进MCU的ASCII码,英文全称问Motorola format for EEPROMprogramming。

1、格式定义及含义S-record每行最大是78个字节,156个字符S-record formattypetype(类型):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)。

地址场没有被用,用零置位(0x00)。

数据场中的信息被划分为以下四个子域:name(名称):20个字符,用来编码单元名称ver(版本):2个字符,用来编码版本号rev(修订版本):2个字符,用来编码修订版本号description(描述):0-36个字符,用来编码文本注释此行表示程序的开始,不需烧入memory。

S1 Record:记录类型是“S1” (0x5331)。

s19文件格式详解

s19文件格式详解

s19⽂件格式详解1.概述为了在不同的计算机平台之间传输程序代码和数据,摩托罗拉将程序和数据⽂件以⼀种可打印的格式(ASCII格式)编码成s格式⽂件。

s格式⽂件是Freescale推荐使⽤的标准⽂件传送格式。

编译完成之后,FreescaleCodeWarrior编译器将在bin⽂件夹下⾃动⽣成“*.abs.s19”⽂件,这个⽂件包含最终下载带单⽚机中的所有内容。

2. 格式定义及含义S格式⽂件中的每⼀⾏称为⼀个S记录,每个S记录由记录类型、记录长度、存储地址、代码/数据、校验和5个部分组成。

每字节数据被编码成2个16进制字符,第⼀个字符代表数据的⾼四位,第⼆个字符代表数据的低4位。

5个部分具体内容如下:记录类型记录长度存储地址代码/数据校验和记录类型:2个字符(即1个字节),⽤来描述记录的类型。

记录供定义了8种类型:S0:S格式⽂件的第⼀个记录,表⽰⽂件名(含路径),存储地址部分没有使⽤,以0000置位。

此记录表⽰记录的开始,⽆需下载到MCU。

S1: 地址为2字节(4个字符)的记录。

S2: 地址为3字节的记录。

S3: 地址为4字节的记录。

S5: 标记本⽂件的S1、S2、S3记录的个数(此记录不是⼀个S⽂件所必须的)。

S7: 地为4字节,表⽰程序的开始执⾏地址,代码/数据部分没有被使⽤,此⾏表⽰程序的结束,⽆需下载到MCU。

S8: 地为3字节,表⽰程序的开始执⾏地址,代码/数据部分没有被使⽤,此⾏表⽰程序的结束,⽆需下载到MCU。

S9: 地为2字节,表⽰程序的开始执⾏地址,代码/数据部分没有被使⽤,此⾏表⽰程序的结束,⽆需下载到MCU。

记录长度: 2个字符(即1个字节),显⽰在记录中剩余的字节数。

即记录长度 = 存储地址字节数 + 代码/数据字节数 + 校验和字节数存储地址: 2或3或4个字节(由记录类型决定),⽤来表⽰代码/数据应该装载的起始地址。

代码/数据: 0-64字符(即0-32字节),表⽰需要下载到MCU中的数据。

freescale s19 文件说明文档

freescale s19 文件说明文档

Question.What is the format of an S-Record?Answer.S-RECORD FORMAT DESCRIPTIONThe S-Record format for output modules was devised for the purpose of encoding programs or data files in a printable format for transportation between computer systems.S-RECORD CONTENTWhen viewed by the user, S-Records are essentially character strings made of several fields that identify the record type, record length, memory address, code/data, and checksum. Each byte of binary data is encoded as a 2-character hexadecimal number: the first character represents the high-order 4 bits, and the second represents thelow-order 4 bits of the byte.The 5 fields that comprise an S-Record are shown below:The S-Record fields are composed as follows:Each record may be terminated with a CR/LF/NULL. Additionally, an S-Record may have an initial field to accommodate other data such as line numbers generated by sometime-sharing systems. Accuracy of transmission is ensured by the record length (byte count) and checksum fields.S-RECORD TYPESEight types of S-Records have been defined to accommodate the several needs of the encoding, transportation, and decoding functions. The various Motorola upload, download, and other record transportation control programs, as well as cross assemblers, linkers, and other file-creating or debugging programs, utilize only those S-Records that serve the purpose of the program. For specific information on which S-Records are supported by a particular program, the user manual for that program must be consulted.The important S-record types for 8-bit MCUs are:S0: The header record for each block of S-Records. The code/data field may contain any descriptive information identifying the following block of S-Records. The address field is normally zeroes.S1: A record containing code/data and the 2-byte address at which the code/data is to resideS9: The termination record for a block of S1 records. Address field may optionally contain the 2-byte address of the instruction to which control is to be passed. If not specified, the first entry point specification encountered in the object module input is used. There is no code/data field.Only one termination record is used for each block of S-Records. Normally, only one header record is used, although it is possible for multiple header records to occur.。

s19文件格式说明

s19文件格式说明

S5 Record:记录类型是“S5” (0x5335)。

地址场由2字节的值说明,包含了先前传输的S1、S2、S3记录的计数。

没有数据场。

S7 Record:记录类型是“S7” (0x5337)。

地址场由4字节的地址说明,包含了开始执行地址。

没有数据场。

此行表示程序的结束,不需烧入memory。

S8 Record:记录类型是“S8” (0x5338)。

地址场由3字节的地址说明,包含了开始执行地址。

没有数据场。

此行表示程序的结束,不需烧入memory。

S9 Record:记录类型是“S9” (0x5339)。

地址场由2字节的地址说明,包含了开始执行地址。

没有数据场。

此行表示程序的结束,不需烧入memory。

根据不同的描述信息,在以上三种不同的结束行中选择一种使用。

2、EXAMPLE2.1 example IS19文件首行:S021*********B50524F47202020313143524541544544204259204541535 936384B6D首行翻译信息:S0 0000 6 8 K P R O G 1 1 C R E A T E D B Y E A S Y 6 8 K色块图例:module name version number revision number checksum checksum的算法:0x21+0x00+0x00+0x36+0x38+0x4B+0x50+0x52+0x4F+0x47+0x20+0x20+0x20+0x31+0 x31+0x43+0x52+0x45+0x41+0x54+0x45+0x44+0x20+0x42+0x59+0x20+0x45+0x41+0x53+0x59+0x36+0x38+0x4B=0x792checksum=0xFF-0x92=6D注意:EASy68K总是用S8 record作为结束行。

2.2 example IIS123C000CF1400790011CC09395B105A124A8046304A8000300001C01BC B73140007340027色块图例:type count address data checksum2.3 example IIIS224308000C61E877C1516C6197B151ACE04C07E15187A153EC74A90F9 301D026A01C6017BF0色块图例:type count address data checksum3、另附STM8S207RB 8位单片机的程序S19文件:S013000044656275675C43617244494E2E736D3872S1238080408000005F00010400010500011E00011E00021E00041E00031E00091E000 61EC6S12380A000051E00071E00081E00651E00661E00681E00671E006D1E006A1E00691E 006C36S12380C043000143000043000243000367000044000A44000B44000C44000D4400144 40049S12380E01544001644001744001844001944001A44001B44001C44001D44001E0182D E02B6S123810082DB0382D80482D50582D20682CF0782CC0882C90982C60A82C30B82C0 0C82BDB6S1*******D82BA0E82B70F82B41182B11282AE1382AB1482A81582A51682A218829 F208211S1*******C21829922829623829324829025828D26828A2882872B82842C82812D827 E3443S1238160827B36827837827538827240826F41826C4282694382664482634582604682 5D47S123818047825A54825755825456825160824E61824B6282486382456D824200823F8 98286S12381A03C415423504F330D0A00415423504F320D0A00415423504F310D0A004154 234D9AS12381C0450D0A004154234D440D0A004154234D430D0A004154234D410D0A00415 4234328S12381E04D0D0A00415423434C0D0A00415423434B0D0A00415423434F0D0A00415 4234300............。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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(类型):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)。

数据场中的信息被划分为以下四个子域:
name(名称):20个字符,用来编码单元名称
ver(版本):2个字符,用来编码版本号
rev(修订版本):2个字符,用来编码修订版本号
description(描述):0-36个字符,用来编码文本注释
此行表示程序的开始,不需烧入memory。

S1 Record:记录类型是“S1” (0x5331)。

地址场由2个字节地址来说明。

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

S2 Record:记录类型是“S2” (0x5332)。

地址场由3个字节地址来说明。

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

S3 Record:记录类型是“S3” (0x5333)。

地址场由4个字节地址来说明。

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

S5 Record:记录类型是“S5” (0x5335)。

地址场由2字节的值说明,包含了先前传输的S1、S2、S3记录的计数。

没有数据场。

S7 Record:记录类型是“S7” (0x5337)。

地址场由4字节的地址说明,包含了开始执行地址。

没有数据场。

此行表示程序的结束,不需烧入memory。

S8 Record:记录类型是“S8” (0x5338)。

地址场由3字节的地址说明,包含了开始执行地址。

没有数据场。

此行表示程序的结束,不需烧入memory。

S9 Record:记录类型是“S9” (0x5339)。

地址场由2字节的地址说明,包含了开始执行地址。

没有数据场。

此行表示程序的结束,不需烧入memory。

根据不同的描述信息,在以上三种不同的结束行中选择一种使用
2、EXAMPLE
2.1 example I
S19文件首行:
S021*********B50524F47202020313143524541544544204259204541535936384B6D
首行翻译信息: S0 0000 6 8 K P R O G 1 1 C R E A T E D B Y E A S Y 6 8 K
色块图例:module name version number revision number checksum
checksum的算法:
0x21+0x00+0x00+0x36+0x38+0x4B+0x50+0x52+0x4F+0x47+0x20+0x20+0x20+0x31+0x31+0x43+ 0x52+0x45+0x41+0x54+0x45+0x44
+0x20+0x42+0x59+0x20+0x45+0x41+0x53+0x59+0x36+0x38+0x4B=0x792
checksum=0xFF-0x92=6D
注意:EASy68K总是用S8 record作为结束行。

2.2 example II
S123C000CF1400790011CC09395B105A124A8046304A8000300001C01BCB73140007340027
色块图例:type count address data checksum
2.3 example III
S224308000C61E877C1516C6197B151ACE04C07E15187A153EC74A90F9301D026A01C6017BF0
色块图例:type count address data checksum
3、另附Freescale HCS12DP256B 16位单片机空程序S19文件:
S0520000453A5C576F6F64795C4C6561726E696E675C50726F6772616D6D655C42444DD2FDB5BCB3 CCD0F25C44556D795C447032
35365C62696E5C48435331325F53657269616C5F4D6F6E69746F722E6162735A
S123C000CF1100790011CC09395B105A124A8004304A8000300000C01BC01F00000000001B
S104C020001B
S105FFFEC0003D
S22430800010EF20FEFEC017FDC015270E35ED31EC3169700434FB310326F2FEC019EC31274F
S2113080200BED31180A30700434F920F10AE7
S804000000FB
大家可以尝试理解一下。

相关文档
最新文档