




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Intel HEX格式说明Intel HEX文件是记录文本行的ASCII文本文件。后缀为.hex在Intel HEX文件中,每一行是一个HEX记录,它由十六进制数组成的机器码或者数据常量。Intel HEX文件经常被用于将程序或数据传输存储到ROM,EPROM。大多数编程器和模拟器使用Intel HEX文件。1.记录详解Intel HEX文件由若干个数据记录组成,每个字符都是ASCII字符表示。每一条数据记录以冒号开始,ASCII码为0x3A,以一个回车和一个换行结束,回车的ASCII码为0x0d,换行的ASCII码为0x0a 。一个Intel HEX文件可以包含任意多的十六进制记录,每一行为
2、一条记录。每条记录有六个区域。通常记录的格式如下图所示:记录的一般结构下面是一个记录的格式。:llaaaattdd.cc字符:llaaaattddcc英文描述RECORDMARKLOADRECLENOFFSETRECTYPINFOorDATACHKSUM区域冒号为起始标志长度域length地址域address类型域type数据域data校验和域check sum字节长度1 byte1 byte2 bytes1 byteN bytes1 byte每一组字母是独立的一个域,每一个字母是一个十六进制数字,每一域至少由两个十六进制数字组成,下面是字节的描述:Ø :
3、 冒号是每一条Intel HEX记录开始的标志Ø ll 是这条记录的长度域,它表示INFO or DATA域dd的字节bytes个数Ø aaaa 是地址域,它表示数据的起始地址<如果是数据记录,这表示将要烧录的这条记录中的数据在EPROM中的偏移地址,对于不支持扩展段地址和扩展线性地址的,如89C51,这就是此条记录的起始地址>Ø tt 表示这条HEX记录的类型,有6种类型00 -数据记录 Data Record (8-, 16-, or 32-bit formats)01 -文件结束记录 End
4、of File Record(8-, 16-, or 32-bit formats)02 -扩展段地址记录 Extended Segment Address Record(16- or 32-bit formats)03-起始段地址记录 Start Segment Address Record(16- or 32-bit formats)04-扩展线性地址记录 Extended Linear Address Record(32-bit format only)05-起始线性地址记录 Start Linear Address Record(32-bit format only)Ø dd
5、 是数据域,表示一个字节的数据,一个记录可能有多个数据字节,长度域ll域的数值大小说明了数据域字节数。Ø cc 是效验和域,表示记录的效验和。计算方法是将本条记录冒号开始后的所有字母对(不包括本效验字本身和冒号)所表示的十六进制数字<一对字母表示一个十六进制数以字节为单位>都加起来然后模除256得到余数,最后求出余数的补码即是本效验字节cc.必须注意的是,此处的补码是将余数的8bit二进制数所有位取反,然后加1。也就是最高位不管是0还是1,都要取反。某一条记录的校验和计算过程:第一步,求该行各字节数字的和(不包括冒号,不包括最后一个字节即校验和
6、本身)第二步,模除256第三步,各位取反第四步,加1即得到校验和<例如: 一条记录为 :0300000002005E9D校验和cc=0x01+NOT(0x03+0x00+0x00+0x00+0x02+0x00+0x5E) % 0x100)=0x01+NOT(0x63 % 0x100)=0x01+NOT(0x63)=8b1+8b1001_1100=8b1001_1101=8h9D3.1.数据记录00 (8-, 16-, or 32-bit formats)字符:llaaaattddcc英文描述RECORDMARKRECLENLOADOFFSETRECTYP00DATACHKSUM区域冒号为
7、起始标志长度域length地址域address类型域type数据域data校验和域check sumASCII:固定为0016进制3A3030字节长度1 byte1 byte2 bytes1 byteN bytes1 byteRECORD MARK该区域为:的ASCII编码,其16进制数为8h3A。RECLEN该区域使用2个ASCII编码的16进制数字来表示数据域的字节个数。最大值为0xFF或 H 4646 (十进制255)。LOAD OFFSET该区域使用4个ASCII编码的16进制数字来表示数据域的第一个数据存放的偏移地址。RECTYPASCII编码字符为00,其16进制编码为H3030,
8、它指示该文件记录类型为数据记录。CHKSUM 校验和为RECLEN, LOAD OFFSET, RECTYP, 和 DATA 区域以字节为单位,求和,模除256,取反,加1。比如下面的一条数据记录:0C032400787FE4F6D8FD75813402036B8D0C LOAD RECLEN是此行记录数据的字节数目,表示记录的数据域有12个字节的INFO或者DATA。最大为0xFF或者2550324 是本条记录的数据在内存<将要烧写的eprom地址>中的起始地址. OFFSET只用于数据记录。其他类型的记录中,不使用这个域,应该被编码为4个ASICC码
9、0000或者030303030H。00 是记录类型,00表示是一个数据记录787F 到 036B 是数据域8D 是此条记录的效验和校验和计算过程:第一步,求各字节的和(不包括冒号,不包括最后一个字节即校验和本身) 0C+03+24+00+78+7F+E4+F6+D8+FD+75+81+34+02+03+6B = 11h673第二步,模除256 11h673 mod 9h100 = 8h73第三步,各位取反 not (8h73) = not(8b0111_0011) = 8h1000_1100 = 8h8C第四步,加1即得到校验和 8h8C + 1 =
10、8h8D3.2.文件结束记录01(8-, 16-, or 32-bit formats)一个Intel HEX文件必须有且仅有一条文件结束记录,其类型域必须是01。没有数据即长度域为00,数据域没有。该记录必须是文件的最后一行,每个文件有且仅有一条文件结束记录。通常一条文件结束记录除了类型域(01),校验和域,其他域都为0,例如 :00000001FF00是记录中数据字节的数目0000这个地址对于EOF记录来说无任何意义01记录类型是01(文件结束记录标示)FF是效验和计算如下01h + NOT( (00h + 00h + 00h + 01h) mod 100h).字符:llaaaattcc英
11、文描述RECORDMARKRECLEN00LOADOFFSET0000RECTYP01CHKSUM区域冒号为起始标志长度域length地址域address类型域type校验和域check sumASCII:固定为00固定为0000固定为01FF16进制3A30303030303030314646字节长度1 byte1 byte2 bytes1 byte1 byteRECORD MARK该区域为:的ASCII编码,其16进制数为H3A。RECLEN由于文件结束记录不包含任何INFO或DATA,ASCII编码字符为00,其16进制编码为H 3030。LOAD OFFSET由于文件结束记录不使用该区
12、域,ASCII编码字符为0000,其16进制编码为030303030HRECTYPASCII编码字符为01,其16进制编码为H3031,它指示该文件记录类型为文件结束记录。CHKSUM校验和为RECLEN, LOAD OFFSET, 和 RECTYP 区域以字节为单位,求和,模除256,取反,加1。由于文件结束记录各域都是静止不变的,所以CHKSUM可以静态计算出来,为HFF。3.3.Extended Segment Address Record02 (16- or 32-bit formats)字符:llaaaattddcc区域冒号为起始标志长度域length地址域address类型域typ
13、e数据域data校验和域check sumASCII:0200000216进制3A3032303030303032字节长度1 byte1 byte2 bytes1 byteN bytes1 byteRECORD MARK该区域为:的ASCII编码,其16进制数为H3A。RECLEN该区域使用2个ASCII编码的16进制数字来表示数据域的字节个数。最大值为0xFF或 4646H (十进制255)。LOAD OFFSET由于扩展段地址记录不使用该区域,ASCII编码字符为0000,其16进制编码为030303030HRECTYPASCII编码字符为02,其16进制编码为H3032,它指示该文件记录
14、类型为扩展段地址记录。CHKSUM 校验和为RECLEN, LOAD OFFSET, RECTYP, 和USBA区域以字节为单位,求和,模除256,取反,加1。3.4.扩展线性地址记录(HEX386)04扩展线性地址记录也可称为 32位地址记录 和 HEX386记录,这个纪录包含高16(16-31位)位数据地址,这种扩展的线性记录总是有两个字节数据,像下面这样:02000004FFFFFC02 是记录的数据字节数目0000 是地址域这在扩展地址记录中总是000004 是记录类型04(扩展地址记录)FFFF
15、160; 是高16位地址FC 是记录效验和,计算方法如下: 01h + NOT(02h + 00h + 00h + 04h + FFh + FFh)当一个扩展线性地址记录被读到后,扩展线性地址记录的数据区域将被保存并应用到后面从Intel HEX文件中读出的记录,这个扩展线性记录一直有效,直到读到下一个扩展线性记录.绝对内存地址 = 数据记录中的地址 + 移位后的扩展线性地址下面举例说明这个过程从数据记录的地址域得到地址 2462从扩展线性地址
16、记录的地址域得到地址 FFFF绝对内存地址 FFFF24623.5.扩展段地址记录 (HEX86) 02扩展段地址记录也被称为 HEX86记录, 包含 4-19位的数据地址段,这个扩展段地址记录总是有两字节数据,如下:020000021200EA02 是 记录中的数据字节数目0000
17、; 是地址域,在扩展段地址记录中,这个域总是000002 是记录类型02(扩展段地址的标示)1200 是该段的地址EA 是效验和计算如下:01h + NOT(02h + 00h + 00h + 02h + 12h + 00h).当扩展段地址记录被读后,扩展段地址将被存储并应用到以后从Intel HEX文件读出的记录,这个段地址一直有效直到读到下一个扩展段地址记录绝对内存地址 = 数据记录中的地址 + 移位后的扩展段地址数据记录中的地址域 移位后扩展段
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 仪器设备合同采购合同范例
- 农机转让合同范例
- tc租船合同范例
- 关于股转让合同范例
- 企业关联合同范例
- 公章使用合同范例
- 云南隔音房购买合同范例
- 供水过户合同范例
- 保健老师聘用合同范例
- 催乳师合同范例
- 第16课《经济危机与资本主义国家的应对》中职高一下学期高教版(2023)世界历史全一册
- 猎聘测评题库
- 全国巾帼家政服务职业技能大赛(家务服务员)理论考试题库(含答案)
- 女性生殖系统炎症护理
- 管道、阀门安装方案
- 2025届新课标全国卷高考数学押题试卷含解析
- 四年级语文下册 第19课《小英雄雨来》同步训练题(含答案)(部编版)
- 读书分享读书交流会《你当像鸟飞往你的山》课件
- 高中英语:倒装句专项练习(附答案)
- 基于双向长短期记忆神经网络的三维地应力场模拟
- 移动机器人技术-课件 项目一:移动机器人概述、系统构成
评论
0/150
提交评论