S-record & Intel hex

s-record  文件格式

+------------------//-------------------//-----------------------+

        | type | count | address  |    data  | checksum        

+------------------//-------------------//-----------------------+

其中type指明记录类型

head record:S00x5330data recordS10X5331S20X5332S30X5333count record:S50X5335termination record:S70X5337S80X5338S90X5339),type为两字符宽度;count记录数据个数,两个字符组成一组,并被认为是16进制(例如3538当以ASCII字符显示时为5858被当成十六进制,来记录该记录中还有多少个字符对);address是地址,同count一样,每两个字符组成一组,并被认为是16进制(addressdata中以ASCII字符显示出来时的相应16进制数的载入内存地址,比如我们需要的地址——16进制——是4位,那么我们就需要8ASCII字符来显示该地址);data是个数据信息,我们以ASCII字符新式显示出来,以type做出相应的解释及操作。checksum校验,2字符宽度,仍被解释成相应的十六进制数。每一个记录以换行结束。

 

以下均以ASCII字符显示(可以用hexdump查看文件中的真是数据)

count均以两个字符ASCII显示出来,check有从count开始的相应的hex相加取最低字节的补码而得。

S0  记录头  type S0,  address 0000mame 20字符:模块名,ver 2字符:版本名 rev 2字符:修订号,descrption 描述头

S1 记录数据  type S14个字符描述address(真实地址一共两字节),data转换成相应的hex需载入内存。

S2 S16个字符描述address(真实地址一共3字节)

S3 S18个字符描述address(真实地址一共4字节)

 

S5 记录个数,4个字符描述address,其address统计其前的data count共有几个

S7 记录终止,8个字符描述address(真实地址一共4字节),address说明程序执行在内存中的起始地址。

S8 S76个字符描述address

S9 S74个字符描述address

 

 

Intel-HEX格式

 

 

byte countdata bytes的长度,address of first data是数据的起始地址。record type是该记录的类型:00data record; 01 end-of-file record; 02 extended segment address record; 04 extended liner address record; 05适用于MDK-ARMstart liner address record。从冒号开始的(不包括冒号)所有字母对所表示的十六进制数都加起来,然后模除256,在求相应的补码即可。

Data Records

 

 

End-of_File

 

扩展线性地址记录

 

扩展段地址记录

 

MDK—ARM only

 

 

posted on 2012-04-07 20:47  阿加  阅读(949)  评论(0编辑  收藏  举报

导航