HEX文件和BIN文件总结及hex文件流转bin文件流示例代码

本文详细介绍了HEX文件(Intel HEX格式)和BIN文件的区别,并提供了HEX文件转换为BIN文件的示例代码。HEX文件包含地址信息,而BIN文件仅包含数据。HEX文件在存储时占用空间较大,但包含了附加信息,适合于程序烧录。文章通过示例解释了HEX文件记录的结构和转换过程。
摘要由CSDN通过智能技术生成

这几天在写STM32的ISP烧录工具,因此有涉及到输入hex文件或bin文件进行烧录的问题,所以对hex文件和bin文件进行了些总结。

1 hex介绍

Hex 全称 (Intel HEX)文件是由一行行符合Intel HEX文件格式的文本所构成的ASCII文本文件。在Intel HEX文件中,每一行包含一个HEX记录。这些记录由对应机器语言码和/或常量数据的十六进制编码数字组成。Intel HEX文件通常用于传输将被存于ROM或者EPROM中的程序和数据。大多数EPROM编程器或模拟器使用Intel HEX文件。

2 hex与bin的区别

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

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

3  HEX文件格式

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

 +---------------------------------------------------------------+
         |  RECORD  | RECLEN |  LOAD  |RECTYPE | INFO or DATA | CHKSUM |
         |  MARK ':'|        | OFFSET |        |             |       |
        +---------------------------------------------------------------+
         |  1-byte  | 1-byte | 2-byte | 1-byte  |   n-byte    | 1-byte |
        +---------------------------------------------------------------+
 

记录类型包括:
         '00' DataRrecord:用来记录数据,HEX文件的大部分记录都是数据记录
         '01' End of File Record:用来标识文件结束,放在文件的最后,标识HEX文件的结尾
         '02' Extended SegmentAddress Record: 用来标识扩展段地址的记录

         '03' Start Segment Address Record

          '04' Extended Linear AddressRecord: 用来标识扩展线性地址的记录

          '05' Start Linear Address Record
         
        在上面的后2种记录,都是用来提供地址信息的。每次碰到这2个记录的时候,都可以根据记录计算出一个“基”地址。
        对于后面的数据记录,计算地址的时候

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值