intel hex文件是由一行行符合intel hex文件格式的文本所构成的ascii文本文件。在intel hex文件中,每一行包含一个hex记录。这些记录由对应机器语言码和/或常量数据的十六进制编码数字组成。intel hex文件通常用于传输将被存于rom或者eprom中的程序和数据。大多数eprom编程器或模拟器使用intel hex文件。
#hex记录格式
intel hex由任意数量的十六进制记录组成。每个记录包含5个域, 它们按以下格式排列[:llaaaatt[dd…]cc]。每一组字母对应一个不同的域, 每一个字母对应一个十六进制编码的数字。每一个域由至少两个十六进制编码数字组成, 它们构成一个字节。
详细解释如下:
:每个intel hex记录都由冒号开头。
ll是数据长度域,它代表记录当中数据字节(dd)的数量。
aaaa是地址域,它代表记录当中数据的起始地址。
tt是代表hex记录类型的域,它可能是以下数据当中的一个:
00 – 数据记录
01 – 文件结束记录
02 – 扩展段地址记录
04 – 扩展线性地址记录
dd 是数据域,它代表一个字节的数据。一个记录可以有许多数据字节,记录当中数据字节的数量必须和数据长度域ll中指定的数字相符。
cc是校验和域,它表示这个记录的校验和。校验和的计算是通过将记录当中所有十六进制编码数字对的值相加,以256为模进行以下补足。也就是说llaaaatt[dd…]cc一共的校验和永远为0。
#数据记录格式
intel hex文件由任意数量以回车换行符结束的数据记录组成.
数据记录外观如下:
[:10246200464c5549442050524f46494c4500464c33]
其中:
10是这个记录当中数据字节的数量。
2462 是数据将被下载到存储器当中的地址。
00是记录类型(数据记录)。
464c…464c是数据。
33 是这个记录的校验和的补足码。
#扩展线性地址记录(hex386)格式
扩展线性地址记录也叫作32位地址记录或hex386记录。这些记录包含数据地址的高16位。扩展线性地址记录总是有两个数据字节。
外观如下:
[:02000004fffffc]
其中:
02是这个记录当中数据字节的数量。
0000是地址域,对于扩展线性地址记录,这个域总是0000。
04是记录类型 04(扩展线性地址记录)。
ffff是地址的高16位。
fc是这个记录的校验和的补足码。
当一个扩展线性地址记录被读取,存储于数据域的扩展线性地址被保存,它被应用于从intel hex文件读取来的随后的记录。线性地址保持有效,直到它被另外一个扩展地址记录所改变。
通过把记录当中的地址域与被移位(16位)的来自扩展线性地址记录的地址数据相加获得数据记录的绝对存储器地址。以下的例子演示了这个过程:
来自数据记录地址域的地址 2462 扩展线性地址记录的数据域*10000h + ffff0000 --------------------- 绝对存储器地址 ffff2462
#扩展段地址记录(hex86)
扩展段地址记录也叫hex86记录,它包括4-19位数据地址段。扩展段地址记录总是有两个数据字节。
外观如下:
[:020000021200ea]
其中:
02 是记录当中数据字节的数量。
0000是地址域,对于扩展段地址记录,这个域总是0000。
02是记录类型 02(扩展段地址记录)。
1200是地址段。
ea是这个记录的校验和的补足码。
当一个扩展段地址记录被读取,存储于数据域的扩展段地址被保存,它被应用于从intel hex文件读取来的随后的记录。段地址保持有效,直到它被另外一个扩展地址记录所改变。
通过把记录当中的地址域与被移位(4位)的来自扩展段地址记录的地址数据相加获得数据记录的绝对存储器地址。以下的例子演示了这个过程:来自数据记录地址域的地址 2462
扩展段地址记录数据域*10h + 12000 ----------------- 绝对存储器地址 00014462
#文件结束(eof)记录。
intel hex文件必须以文件结束(eof)记录结束。这个记录的记录类型域的值必须是01。eof记录外观总是如下
[:00000001ff]
其中:
00是记录当中数据字节的数量。
0000是数据被下载到存储器当中的地址。在文件结束记录当中地址是没有意义被忽略的。0000h是典型的地址。
01是记录类型01(文件结束记录)。
ff是这个记录的校验和的补足码。
#intel hex文件例子
下面是一个完整的intel hex文件的例子:
:10001300ac12ad13ae10af1112002f8e0e8f0f2244:10000300e50b250df509e50a350cf5081200132259:03000000020023d8:0c002300787fe4f6d8fd7581130200031d:10002f00eff88df0a4ffedc5f0cea42efeec88f016:04003f00a42efe22cb:00000001ff
看了这个例子,我自己也打开了之前写的51单片机的hex文件:
:2000000002000e75210675225b75230200267b007c00900090758140758901758cf1758a45:2000200028d28c75a882758cf1758a280bbbfa157b00ec75f00a8485f020f5210cbc64027a:200040007c00120051c0e0c0d0120051d0d0d0e032e52193f580d2a2c2a27580fed2a3c29c:20006000a3120087e52093f580d2a2c2a27580fdd2a3c2a3120087227d327e287ff81151aa:1a008000dffedef8ddf4227e047ff8dffedefa223f065b4f666d7d077f6fbc:00000001ff
#英文原文
MAX14979E 宽带、具有±15kV ESD保护的LVD
基于GAL芯片实现VME总线接口电路的设计流程概述
科森科技智能穿戴及通讯终端精密电子项目开工建设
国产操作系统AWorks LP — 科技自立自强的排头兵
最新小米9Pro 5G到货,eWiseTech又添新5G设备参数
Hex文件内容详细解析
Android O的新特性,原来魅族Flyme6早已实现
睿创微纳车载红外获吉利定点助力安全智驾
PLC模拟量的计算
cl21可以用cbb22代替么
基于FPGA研究设计平台不断推动创新网络发展的步伐
安科瑞企业能源管控平台的设计和应用
Speos新型计算方法:使用GPU提升计算速率
蓝牙发表新音讯技术,可以一部装置连接多副耳机
CD4013介绍_CD4013分频电路工作原理解析
路特斯智能驾驶信息安全实践
LG HU710PW投影仪:LG首款采用混合光源系统的投影机
高性能的双通道无源混频器运用于MIMO接收器
华为AI盘古大模型与chatgpt,Mate 60 Pro接入盘古人工智能大模型
诺基亚重返智能手机市场 首款产品或者面向对象为中老年群体