• Srecord & 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

     

     

  • 相关阅读:
    使用pymouse模块时候报错No module named 'windows'
    解决PIL透明的图片放在新图片上报错
    解决PIL切圆形图片存在锯齿
    常见金融术语-帮助更好的理解金融业务需求
    FastJson序列化时过滤字段(属性)的方法总结
    数据库事务4种隔离级别及7种传播行为
    硬件网络接口规范
    「题解」P5906 【模板】回滚莫队&不删除莫队
    「学习笔记」优美的暴力——莫队
    2017 NOIp提高组 DAY2 试做
  • 原文地址:https://www.cnblogs.com/openix/p/2436471.html
Copyright © 2020-2023  润新知