前言:

为了方便查看博客,特意申请了一个公众号,附上二维码,有兴趣的朋友可以关注,和我一起讨论学习,一起享受技术,一起成长。


1. 引言

今天看串口的 IAP ,平时我们通过 JTAG 等工具下载的都是 HEX 文件,都没有思考一下 HEX 的文件组成。而串口 IAP 下载的是 BIN 文件,刚好在这里区分学习一下。

我们平时烧写 HEX 文件是不需要设置地址信息的,因为已经包含在文件里面,而使用 BIN 烧写,需要在程序中指定地址。

2. 简述

Intel hex 文件是记录文本行的 ASCII 文本文件,在 Intel HEX 文件中,每一行是一个 HEX 记录,由十六进制数组成的机器码或者数据常量。Intel HEX 文件经常被用于将程序或数据传输存储到 ROM、EPROM,大多数编程器和模拟器使用Intel HEX文件。

2.1 HEX文件

HEX 文件是包括地址信息的,而BIN文件格式只包括了数据本身。在烧写或下载HEX文件的时候,一般都不需要用户指定地址,因为HEX文件内部的信息已经包括了地址。而烧写BIN文件的时候,用户是一定需要指定地址信息的。

2.2 BIN文件

对二进制文件而言,其实没有”格式”。文件只是包括了纯粹的二进制数据。

2.3 HEX文件格式

HEX文件都是由记录(RECORD)组成的。在HEX文件里面,每一行代表一个记录。记录的基本格式为:

RECTYP类型:

eg:

第一条:
RECLEN:02;OFFSET:0000;RECTYP:04;INFO or DATA:0000;CHKUSM:FA

第二条:
RECLEN:10;OFFSET:0000;RECTYP:00;INFO or DATA:982100203501000021920000A5920000;CHKUSM:F7

以此类推

最后一条,表示文件末尾::00000001FF

2.4 BIN文件格式

可以看到,BIN文件的数据与 HEX 格式数据的数据段是一一对应的。

2.5 HEX与BIN文件的大小

HEX 文件是用 ASCII 来表示二进制的数值。
例如:一般 8BIT 的二进制数值0x3F,用ASCII来表示就需要分别表示字符’3’ 和字符’F’,每个字符需要一个BYTE,所以HEX文件需要 > 2倍的空间。

对一个BIN文件而言,文件的大小就是文件包括的数据的实际大小。而对HEX文件而言,看到的文件大小并不是实际的数据的大小:一是因为HEX文件是用ASCII来表示数据,二是因为HEX文件本身还包括别的附加信息。

2.6 校验和计算

计算从(0x3a–":")以后的所有各字节的和模256的余。即各字节二进制算术和,不计超过256的溢出值,然后用0x100减去这个算数累加和,得出的值就是此行校验码。

eg:04000005000000C92E
0x100-(04+00+00+05+00+00+00+C9) = 2E


参考:

1.hex和bin文件格式的区别

2.HEX文件和BIN文件格式的区别

STM32学习笔记一一HEX文件和BIN文件格式相关推荐

  1. STM32学习笔记一一触摸屏

    前言: 为了方便查看博客,特意申请了一个公众号,附上二维码,有兴趣的朋友可以关注,和我一起讨论学习,一起享受技术,一起成长. 1. 简介 1.1 电阻式触摸屏 电阻式触摸屏利用压力感应进行触点检测控制 ...

  2. STM32学习笔记一一ADC

    前言: 为了方便查看博客,特意申请了一个公众号,附上二维码,有兴趣的朋友可以关注,和我一起讨论学习,一起享受技术,一起成长. github:my github 注:博客所涉及的关于 stm32 的代码 ...

  3. STM32学习笔记一一UCOSII(1)

    前言: 为了方便查看博客,特意申请了一个公众号,附上二维码,有兴趣的朋友可以关注,和我一起讨论学习,一起享受技术,一起成长. 1. 简介 UCOSII 是一个可以基于 ROM 运行的.可裁减的.抢占式 ...

  4. STM32学习笔记一一TFTLCD 显示

    前言: 为了方便查看博客,特意申请了一个公众号,附上二维码,有兴趣的朋友可以关注,和我一起讨论学习,一起享受技术,一起成长. 1.TFTLCD 简介 TFT-LCD 即薄膜晶体管液晶显示器.TFT-L ...

  5. C# 学习笔记(12)hex文件转bin文件小工具

    C# 学习笔记(12)hex文件转bin文件小工具 hex文件格式 hex文件格式网上有很多 我这里参考HEX文件格式详解https://blog.csdn.net/weixin_39752827/a ...

  6. 《STM32学习笔记》2——开发环境的建立

    接上文,文中的图片知识,大多数来自视频的截图(来自洋桃电子). 欢迎大家批评指正! STM32学习笔记-专栏 文章目录 一.接口定义 1 芯片引脚整体简介 2 各部分引脚介绍 二.开发板简介 三.IS ...

  7. hex文件和bin文件区别

    HEX文件和BIN文件是我们经常碰到的2种文件格式.因为自己也是新手,所以一直对这两个文件懵懵懂懂,不甚了解,最近在做STM32单片机的IAP更新,其中要考虑HEX文件和BIN文件,所以需要学习下这两 ...

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

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

  9. STM32学习笔记(15)——SPI协议

    STM32学习笔记(15)--SPI协议 一.SPI协议简介 1. 物理层 2. 协议层 (1) 通讯的开始与停止 (2)时钟极性CPOL.时钟相位CPHA 二.STM32的SPI外设 1. 通讯引脚 ...

  10. stm32单片机c语言入门 pdf,STM32学习笔记(初学者快速入门).pdf

    STM32 学习笔记 从51 开始,单片机玩了很长时间了,有51,PIC,AVR 等等,早就想跟潮 流玩玩ARM ,但一直没有开始,原因不知道玩了ARM 可以做什么(对我自 己而言).如果为学习而学习 ...

最新文章

  1. 30天提升技术人的写作力-第二天
  2. JavaScript停止冒泡和阻止浏览器默认行为
  3. SQL注入漏洞的检测与防范技术
  4. vuex 存储刷新_vuex 存储数据 页面刷新不缓存
  5. mysql创建表时遇到的问题_MySQL语言创建表时遇到了问题,请问我错在哪里了?...
  6. 2020年第十一届蓝桥杯 - 省赛 - Java研究生组+Java大学B组+Python大学组 - E.排序
  7. linux上svn的使用教程,Linux上SVN的搭建使用
  8. 盒子背景颜色(HTML、CSS)
  9. rails使用html form,Rails 页面多选下拉框, form_for, form_tag 使用技巧及 select2 使用
  10. Nginx集群之基于Redis的WebApi身份验证
  11. VBlog项目代码理解之后端
  12. JavaScript中的事件
  13. Python3编写炸金花游戏--超详细的讲解!!
  14. DEV编写C语言方法简介
  15. UG三轴产品编程3D图档-刀路图档550例
  16. 系动词分类【大学英语笔记】
  17. tensorflow 学习笔记使用CNN做英文文本分类任务
  18. android 皮肤包换肤之Resources加载(一)
  19. Python-爬虫请求~requsts~get
  20. 长沙举办智慧城市供应链沙龙

热门文章

  1. IT 运营管理 (ITOM)解决方案-OpManager Plus
  2. 修改Foxmail日历,让星期一为每周第一天
  3. RoboWare studio学习笔记
  4. WNM6002 N通道增强功能MOS场效应晶体管
  5. 常用激活函数(激励函数)理解与总结
  6. 中国象棋详细设计分析
  7. LinuxCentOS 7镜像下载
  8. 后端开发技术栈(含视频、书籍推荐)
  9. Git客户端Tower for Mac 8.2
  10. mysql 笛卡尔积