Intel Hex概述

什么是Intel Hex文件


Intel HEX文件时遵循Intel HEX文件格式的ASCII文本文件。在Intel HEX文件的每一行都包含了 一个HEX记录。这些记录是由一些代表机器语言代码和常量的16进制数据组成的。Intel HEX文件常用来传输要存储在ROM 或者 EPROM中的程序和数据。大部分的EPROM编程器能使用Intel HEX文件。



Intel HEX文件组成


Intel HEX由任意数量的十六进制记录组成。每个记录包含5个域,它们按以下格式排列:


Start Code 每个Intel HEX记录都由冒号开头。

Byte count 是数据长度域,它代表记录当中数据字节的数量。

Address 是地址域,它代表记录当中数据的起始地址。

Record type是代表HEX记录类型的域,它可能是以下数据当中的一个:

00-数据记录

01-文件结束记录

02-扩展段地址记录

03-开始段地址记录

04-扩展线性地址记录

05-开始线性地址记录

Data 是数据域,一个记录可以有许多数据字节。记录当中数据字节的数量必须和数据长度域中指定的数字相符。

Checksum是校验和域,它表示这个记录的校验和。校验和的计算是通过将记录当中所有十六进制编码数字对的值相加,以256为模进行以下补足。


完整的hex文件一般有头行,数据行,结束行。

举个例子:

:020000042A00D0
:10000000D1DC4B843410D7730D000000FFFFFFFFDD
:10001000FFFFFFFF500000005000002AD8CB000077

:040000052A000000CD
:00000001FF


第一行(头行):

1) 02代表数据域长度为0x02,即2A 00两个字节都为数据域

2) 0000代表地址,对于扩展线性地址而言,这个值一直为0000

3) 04代表扩展线性地址

4) 2A 00代表基址值为0x2A 00

5) D0代表校验值

当扩展线性地址被读取时,扩展线性地址值将会被保存,并且作用于后面从intel hex文件读取的子记录,同时扩展线性地址将一直发挥作用直到下一次扩展性线性地址读取。


第二行(数据行):

1) 10代表数据域长度为0x10,即D1 DC 4B 84 34 10 D7 73 0D 00 00 00 FF FF FF FF 16个字节都为数据域

2) 0000代表地址偏移为0000

3) 00代表数据域

4) D1 DC 4B 84 34 10 D7 73 0D 00 00 00 FF FF FF FF 代表数据值

5) 77代表校验值

绝对地址记录是扩展线性基址加上地址偏移所决定的,这第二行的数据绝对地址计算如下:

          0000                                                地址偏移

2A00 扩展线性地址

-------------------

2A00 0000 绝对地址


倒数第二行(最后的数据行):

1) 04代表数据域长度为0x04,即2A 00 00 00 4个字节都为数据域

2) 0000代表地址偏移为0000

3) 05代表开始线性地址并且后面才是真正数据记录。而真正的数据记录个人理解为后面读取的mbn数据。

4) 2A 00 00 00 代表真正数据记录的基址

5) CD代表校验值


最后行(结束行):

1) 00代表数据域长度为0

2) 0000代表地址将放入到内存的位置

3) 01代表文件结束

4)FF校验值(01h + NOT(00h + 00h + 00h +01h))




  • 1
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
v0.8.0: 去掉“直接Hex文件编辑”功能的128K字节限制(其他功能仍然有128KB限制) v0.7.0: 一些小的调整 V0.6.1: 调整另存对话框,去掉无效选项 V0.6.0: 加入文件拖放功能。 V0.5.5:修正建立新的配置文件时,保存失败的Bug。 V0.5.4:修正数制计算器中输入A-F时的bug,增加源数据存储类型选择。 0.5.3:修改图标,部分界面。 0.5.2: About 界面修改,添加更新网址。 0.5.1:修正块另存时新建文件保存失败的Bug。 0.5:新增文件内、文件间块移动、复制、交换、另存等功能 0.4:新增转换为二进制后比较功能 本人继MCUTool以后的另外一个单片机开发实用工具软件,用于单片机调试过程中简单的参量修改,省略修改源代码、再编译的过程,直接修改目标文件。尤其是对eeprom数据的修改、调整更为方便实用。 本软件编写的目的是用来编辑存放于单片机 Flash 或 EEPROM 中的数据,支持 Intel Hex 格式以及 Motorola S 格式的数据文件,也可以编辑二进制的内存映射文件。数据的编辑可以通过常量定义的方式,也可以通过内存映射的方式进行。 同时可以在两种16进制格式文件之间相互转换。格式转换以行数据为单位,以确保转换前后数据不会改变。 另外提供十进制、十六进制转换器,转换结果可以作为普通显示或作为内存映射,作内存映射时可以选择多字节数据的存储方式。 二进制比较功能,通过不同工具生成的Hex文件可能因为格式而无法进行文本方式比较,本工具可以首先转换为二进制数据再进行比较,免去自行转换的麻烦。 单文件内/双文件间的块操作,包括复制、移动、交换、另存等等,方便实验数据提取、复制。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值