• Intel-Hex , Motorola S-Record 格式详细解析


    在这里插入图片描述

    目录

    总览

    Intel-HEX:CountAddressTypeDataCheckSum
    Description行起始Byte1 本行数据长度Byte2
    Byte3
    本行数据的起始地址
    00 记录数据,hex文件的大部分记录都是数据记录
    01 标识文件结束,放在文件最后,表示Hex文件的结尾
    02 标识扩展段地址的记录
    03 开始段地址记录
    04 标识拓展线性地址的记录
    05 开始线性地址记录
    数据0x100-累加和
    Example:1byte2bytes1bytesn bytes1 byte
    :0200000400C337
    :20002000FAC3…CB
    :00000001FF
    Motorola S-RecordTypeCountAddressDataCheckSum
    DescriptionS0 地址场没有被用,用零置位(0x0000)
    S1 地址为2字节的记录
    S2 地址为3字节的记录
    S3 地址为4字节的记录
    S5 标记本文件的S1,S2,S3的个数
    S7 地址为4字节,表示程序的开始执行地址,数据部分未被使用,此行表示程序的结束,无需下载到MCU
    S8 地址为3字节,表示程序的开始执行地址,数据部分未被使用,此行表示程序的结束,无需下载到MCU
    S9 地址为2字节,表示程序的开始执行地址,数据部分未被使用,此行表示程序的结束,无需下载到MCU
    记录长度=存储地址字节数+数据字节数+校验和字节数
    s19是所有除了S0-9的长度
    存储地址,字节数由Type决定,表示数据应装载的起始地址数据0x100-累加和
    ExampleS321(33)0000001C(4Byte)007D00…(33-4-1byte)E6(1Byte)
    S70500000000FA

    S19

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

    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)。数据场中的信息被划分为以下四个子域:
    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文件首行: S021000036384B50524F47202020313143524541544544204259204541535936384B6D

    首行翻译信息: 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文件:

    S0520000453A5C576F6F64795C4C6561726E696E675C50726F6772616D6D655C42444DD2FDB5BCB3CCD0F25C44556D795C447032 35365C62696E5C48435331325F53657269616C5F4D6F6E69746F722E6162735A
    S123C000CF1100790011CC09395B105A124A8004304A8000300000C01BC01F00000000001B
    S104C020001B
    S105FFFEC0003D
    S22430800010EF20FEFEC017FDC015270E35ED31EC3169700434FB310326F2FEC019EC31274F
    S2113080200BED31180A30700434F920F10AE7
    S804000000FB

    大家可以尝试理解一下。

  • 相关阅读:
    java计算机毕业设计国漫论坛网站源码+mysql数据库+系统+lw文档+部署
    就业形势严峻 求职者如何破解提高竞争力
    Requests之不同类型的参数,发送请求接口!
    【好玩的开源项目】Docker部署cook菜谱工具
    提升写作效率:ChatGPT助力学术论文撰写
    Flink系列之Flink中RestartStrategy重启策略和FailoverStrategy故障转移策略
    Fabric.js 喷雾笔刷 从入门到放肆
    element-ui 表单校验・大全
    python基础知识(1)
    ★「C++游戏」BattleOfPhantom:大乱斗游戏升级版
  • 原文地址:https://blog.csdn.net/qq_33704787/article/details/125504239