跳转至内容
  • 版块
  • 最新
  • 标签
  • 热门
折叠
品牌标识

YunTu Forum

YTMicro.com
  1. 主页
  2. Blogs
  3. S19文件和HEX文件解析

S19文件和HEX文件解析

已定时 已固定 已锁定 已移动 Blogs
1 帖子 1 发布者 147 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • xianghanX 离线
    xianghanX 离线
    xianghan YunTu
    编写于 最后由 xianghan 编辑
    #1

    1. S19文件解析:
    S19文件格式与mot文件只是命名方式不同,看数据格式的话,其实是同一种文件,这里以S19文件为例。
    S19文件每一行数据全部由记录类型和十六进制数字组成,包含类型、长度、地址、数据和校验和五个部分。
    3b7067f2-0438-4c9e-946d-f262906bd7b8-image.png
    上面图片中“S3”为类型,“15”为长度,意味着整行记录(除类型和长度)总共有21字节,“00008020”为该记录起始地址,“54455001000000000000000000000000”为数据,共16个字节,“70”是校验和,这一行就是将数据一次刷写到起始地址为“20100060”的连续地址中去,上一行的数据结构也是如此对应的。
    1.1 记录类型
    S19中记录类型包括S0、S1、S2、S3、S5、S7、S8、S9等
    40f6a70c-133d-4e6b-92c1-3d3c63f58fa2-image.png [图片]
    S0,位于文件的第一行,和其他行不同,地址部分没有使用,用“0000”置位,整行表示记录的开始,FC为校验和;
    S1表示地址长度为两字节(4字符)的记录,包含类型、长度、地址、数据和校验和五个部分;
    S2表示地址长度为三字节(6字符)的记录,包含类型、长度、地址、数据和校验和五个部分;
    S3表示地址长度为四字节(8字符)的记录,包含类型、长度、地址、数据和校验和五个部分;
    S5表示文件中含有S1、S2、S3记录的个数,其后不接数据,包含S5的记录并不是每个文件必须的;
    S7表示地址长度为四字节(8字符)的记录,包含类型、长度、地址和校验和四个部分,此行表示程序的结束;
    S8表示地址长度为三字节(6字符)的记录,包含类型、长度、地址和校验和四个部分,此行表示程序的结束;
    S9表示地址长度为两字节(4字符)的记录,包含类型、长度、地址和校验和四个部分,此行表示程序的结束;
    只有S1、S2、S3、S5需要写入Flash中。
    1.2 长度计算
    长度包含一个字节,长度 = 地址字节数 + 数据字节数 + 校验和字节数。
    1.3 地址
    表示该行的起始地址,字节数由类型决定,S1位两个字节,S2为三个字节,S3位四个字节。
    1.4 数据
    包含的要刷写入控制器的数据如:“54455001000000000000000000000000”
    1.5 校验和及计算
    校验和内容为一个字节,计算公式:校验和 = 0XFF - 长度字节 - 地址字节 - 数据字节
    如上图计算为校验和 = 0xFF - (0x15 + 0x20 + 0x10 + 0x00 + 0x60 + 0x54 + 0x45 + 0x50 + 0x01 ... + 0x00 + 0x00 + 0x70) = 0x70
    其中(0x15 + 0x20 + 0x10 + 0x00 + 0x60 + 0x54 + 0x45 + 0x50 + 0x01 ... + 0x00 + 0x00 + 0x70) = 0x18F 取8F。

    2. HEX文件解析
    Hex文件每一行数据全部由十六进制数字组成,包含 :、数据长度、起始地址、记录类型、数据、校验和六个部分。
    d8bbdd03-057b-4ab8-95d2-f4d3423db6d8-image.png
    上图中,每一行记录都以“:”开头,“10”为后面的数据长度,表示该记录有16字节的数据,“01D0”
    为该行记录的起始地址中的低位,后面的“00”为该记录的类型,
    “780A9528444444444444444444444444”,为该记录所包含的全部16字节数据,“B0”为校验和。
    2.1 记录类型
    Hex文件记录类型包括00、01、02、03、04、05等,每一种都包含不同的含义:
    00:数据记录;
    01:文件结束记录;
    02:扩展段地址记录;
    03:开始段地址记录;
    04:扩展线性地址记录;
    05:开始线性地址记录;
    2.2 起始地址
    起始地址一般由高位和低位组成,即04记录中的地址加上00记录中的地址:如以上所说的“20100000”,“20100010”。
    2.3 数据长度
    包含一个字节,即后面数据的字节数的十六进制表示:如上“0x10”表示长度为16个字节。
    2.4 校验和计算
    包含一个字节,校验和=0xFF&(0x100-(长度字节+地址字节+类型字节+数据字节))
    长度字节 + 地址字节 + 类型字节 + 数据字节 = 0x10 + 0x00 + 0x60 + 0x00 + 0x54 + ... + 0x00 + 0x00 = 0x15A
    校验和 = 0xFF&(0x100 - 0x15A) = 0xA6

    1 条回复 最后回复
    0

  • 云途开发生态介绍

    快速上手云途开发生态

  • 云途论坛规则/Yuntu Forum Rules

    发帖前请查看

  • YT CONFIG TOOL调查问卷

    帮助改进和优化YT CONFIG TOOL,有机会抽取YTM32B1ME0 EVB哦...

  • can
    20
    demo
    20
    uds
    13
    lin stack
    11
    md14
    6
    fbl
    5
    yt-link
    5
    adc模块
    4
    Online Users
    northN
    north
    YQHY
    YQH
    jinyiJ
    jinyi
    • 登录

    • 登录或注册以进行搜索。
    • 第一个帖子
      最后一个帖子
    0
    • 版块
    • 最新
    • 标签
    • 热门