目录

一、S19文件解析:

1、记录类型

2、长度计算

3、地址

4、数据

5、校验和及计算

二、HEX文件解析

1、记录类型

2、起始地址

3、数据长度

4、校验和


一、S19文件解析:

S19文件格式与mot文件只是命名方式不同,看数据格式的话,其实是同一种文件,这里以S19文件为例。

S19文件每一行数据全部由记录类型和十六进制数字组成,包含类型、长度、地址、数据和校验和五个部分。

上面图片中“S3”为类型,“15”为长度,意味着整行记录(除类型和长度)总共有21字节,“00008020”为该记录起始地址,“54455001000000000000000000000000”为数据,共16个字节,“70”是校验和,这一行就是将数据一次刷写到起始地址为“20100060”的连续地址中去,上一行的数据结构也是如此对应的。

1、记录类型

S19中记录类型包括S0、S1、S2、S3、S5、S7、S8、S9等

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中。

2、长度计算

长度包含一个字节,长度 = 地址字节数 + 数据字节数 + 校验和字节数。

3、地址

表示该行的起始地址,字节数由类型决定,S1位两个字节,S2为三个字节,S3位四个字节。

4、数据

包含的要刷写入控制器的数据如:“54455001000000000000000000000000”

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。

二、HEX文件解析

Hex文件每一行数据全部由十六进制数字组成,包含 :、数据长度、起始地址、记录类型、数据、校验和六个部分。

上图中,每一行记录都以“:”开头,“10”为后面的数据长度,表示该记录有16字节的数据,“01D0”

为该行记录的起始地址中的低位,后面的“00”为该记录的类型,

“780A9528444444444444444444444444”,为该记录所包含的全部16字节数据,“B0”为校验和。

1、记录类型

Hex文件记录类型包括00、01、02、03、04、05等,每一种都包含不同的含义:

00:数据记录;

01:文件结束记录;

02:扩展段地址记录;

03:开始段地址记录;

04:扩展线性地址记录;

05:开始线性地址记录;

上图中截取了三种记录类型04、00和01

第一行中数据长度为02,表示两字节的数据“2010”,04位扩展线性数据记录,扩展地址就是04记录中的数据位“2010”,

该地址就作为一下每行的起始地址中的高位,第二行记录中的地址“0000”为低位,那么第二行记录的起始地址就是“20100000”,

第三行记录的起始地址就是“20100010”,“2010”会一直作为高位,直到下一个扩展线性记录的出现,

最后一行为文件记录的结束。

2、起始地址

起始地址一般由高位和低位组成,即04记录中的地址加上00记录中的地址:如以上所说的“20100000”,“20100010”。

3、数据长度

包含一个字节,即后面数据的字节数的十六进制表示:如上“0x10”表示长度为16个字节。

4、校验和计算

包含一个字节,校验和=0xFF&(0x100-(长度字节+地址字节+类型字节+数据字节))

长度字节 + 地址字节 + 类型字节 + 数据字节 = 0x10 + 0x00 + 0x60 + 0x00 + 0x54 + ... + 0x00 + 0x00 = 0x15A

校验和 = 0xFF&(0x100 - 0x15A) = 0xA6

S19文件和HEX文件解析相关推荐

  1. BIN文件和HEX文件互转合并

    因需要使用阿莫脱机下载器制作STM32脱机下载文件,而配置文件部分只有bin格式的,整合不了,所以需要把bin文件转化为hex文件. 参考了:BIN 文件转换为 HEX 文件 - 何亚斌的博客 (go ...

  2. axf文件、hex文件、bin文件区别

    axf文件.hex文件与bin文件都可以运行在stm32,都存储了源代码通过编译器生成的机器码. axf文件:编译默认生成的文件,包含代码数据和调试信息,在MDK里进行debug调试用的文件. hex ...

  3. bin文件和hex文件互转

    对于嵌入式而言,hex文件可能大家再熟悉不过了,对,我们大学时学习的51单片机编写的代码在keil上编译后就生成了hex文件.那bin文件又是什么意思呢,它又和hex文件的区别在哪?这也不是本文的重点 ...

  4. BIN文件与HEX文件比较

    BIN文件与HEX文件比较 其实本质上这两种文件时一样的,都是供CPU执行的,但是HEX文件有一定的格式(如图所示). 这时最根本的差别,还有就是BIN文件的68(图片箭头所指处)是16进制表示的,但 ...

  5. jflash合并stm32f103之bin文件及hex文件

    合并bin格式文件: 1.file-> open data file, 选择boot文件, 地址从8000000开始. 2.file-> merge data file, 选择app文件, ...

  6. 使用hex6x.exe将out文件生成hex文件方法

    首先你要有*.cmd文件和hex6x.exe和*.out文件. 其中out文件是上面一篇中提到的,在CCS里面编译成功的输出文件*.out. *.cmd文件,里面的内容是这样的: debug\SEED ...

  7. STM32-MDK V5 生成bin文件和hex文件

    .axf文件 MDK 下默认生成的烧录文件为.axf文件,文件路径: D:\COINV_STM32\HJJC\STM\MDK-ARM\STM .bin文件 生成方法,如下图所示: 1.打开 Optio ...

  8. Bin文件和Hex文件相互转换

    bin to hex: #!/usr/bin/python # -*- coding: UTF-8 -*- # 文件名:server.pyimport sys import os import pyp ...

  9. hex文件格式解析_玩转Hex文件

    00 关于Hex Hex文件格式(本文讲的是Intel Hex)是好多好多年以前定义的格式,解析这文件的工具网上搜出来的也是一大摞一大摞的.记住,我们就别瞎折腾自己写一个了哦.我们要学会站在巨人的肩膀 ...

最新文章

  1. linux统计文件的个数
  2. 2018年创业最火热点的是什么?看到这个你可能就知道哪方面发展最热了
  3. 成功解决ModuleNotFoundError: No module named 'torchvision.ops'
  4. 理解SQLNET.AUTHENTICATION_SERVICES参数|转|
  5. C#——《C#语言程序设计》实验报告——面向对象程序设计——自动出题判分小程序
  6. (JAVA)File类2
  7. 【文末有福利】艺术创造规则,而不是规则创造艺术
  8. mysql更改安装路径6_关于mysql安装后更改数据库路径方法-Centos6环境
  9. Java枚举(Enum)类型使用的正确姿势
  10. 基于特征的对抗迁移学习论文_[综述]基于对抗学习的图像间转换问题-1
  11. Https如何做到通信安全
  12. mysql数据迁移数据一致性检教6_数据迁移后的一致性校验
  13. scum服务器里找不到车,人渣SCUM车辆机制介绍 人渣SCUM车辆为什么消失
  14. 计算机专业实训指导老师评语,计算机教师指导评语
  15. C++解决程序一闪而退及清屏函数
  16. python中scale什么意思啊_python数字图像处理(7):图像的形变与缩放
  17. 按键手机怎么装java_怎样把USB键盘接到Android手机上
  18. 几种绳子打结的方法 - T爸写给小T的书
  19. Scrapy分布式爬虫打造搜索引擎 - (三)知乎网问题和答案爬取
  20. mysql同步软件_Mssql、Mysql数据同步软件:SyncNavigato数据库同步

热门文章

  1. ExpandableListView实现可展开的ListView
  2. 网安学习-内网渗透3
  3. 可以媲美TortoiseSVN的LINUX版SVN客户端软件RabbitVCS(下载地址)
  4. Firefox 110, Chrome 110, Chromium 110 官网离线下载 (macOS, Linux, Windows)
  5. 系统集成项目管理工程师2020年下半年下午案例分析题及答案
  6. 图片服务器项目编写设计
  7. CSDN文章发布以后显示待审核
  8. eBoostr v4.0 Build 544b中文特别版
  9. Onedrive for Business迁移方案 | 分享一
  10. OpenGL的矩阵变换详解——有图有真相