




已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
精品文档 1欢迎下载 IntelIntel HEXHEX 格式说明格式说明 Intel HEX 文件是记录文本行的 ASCII 文本文件 后缀为 hex 在 Intel HEX 文件中 每一行是一个 HEX 记录 它由十六进制数组成的机器码或者数据常量 Intel HEX 文件经常被用于将程序或数据传输存储到 ROM EPROM 大多数编程器和模拟器使用 Intel HEX 文件 1 1 记录详解记录详解 Intel HEX 文件由若干个数据记录组成 每个字符都是 ASCII 字符表示 每一条数据记录 以冒号开始 ASCII 码为 0 x3A 以一个回车和一个换行结束 回车的 ASCII 码为 0 x0d 换行的 ASCII 码为 0 x0a 一个 Intel HEX 文件可以包含任意多的十六进制记录 每一行为一条记录 每条记录有六个 区域 通常记录的格式如下图所示 记录的一般结构 下面是一个记录的格式 llaaaatt dd cc 字符字符 llaaaatt dd cc 英文描述英文描述 RECORDRECORD MARKMARK LOAD RECLEN OFFSETRECTYPINFO or DATA CHKSUM 区域冒号为 起始标志 长度域 length 地址域 address 类型域 type 数据域 data 校验和域 check sum 字节长度 1 byte1 byte2 bytes1 byteN bytes1 byte 每一组字母是独立的一个域 每一个字母是一个十六进制数字 每一域至少由两个十六进制数字 组成 下面是字节的描述 冒号是每一条 Intel HEX 记录开始的标志 ll 是这条记录的长度域 它表示 INFO or DATA 域 dd 的字节 bytes 个数 aaaa 是地址域 它表示数据的起始地址 精品文档 2欢迎下载 tt 表示这条 HEX 记录的类型 有 6 种类型 00 数据记录 Data Record 8 16 or 32 bit formats 01 文件结束记录 End 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 是数据域 表示一个字节的数据 一个记录可能有多个数据字节 长度域 ll 域的数值 大小 说明了数据域字节数 cc 是效验和域 表示记录的效验和 计算方法是将本条记录冒号开始后的所有字母对 不包括本效验字本身和冒号 所表示的十六进制数字都加起来然后模除 256 得到余数 最后求出余数的补码即是本效验字节 cc 必须注意的是 此处的补码是将余数的 8bit 二进制数所有位取反 然后加 1 也就是 最高位不管是 0 还是 1 都要取反 某一条记录的校验和计算过程 第一步 求该行各字节数字的和 不包括冒号 不包括最后一个字节即校验和本身 第二步 模除 256 第三步 各位取反 第四步 加 1 即得到校验和 例如 一条记录为 0300000002005E9D 校验和 cc 0 x01 NOT 0 x03 0 x00 0 x00 0 x00 0 x02 0 x00 0 x5E 0 x100 0 x01 NOT 0 x63 0 x100 0 x01 NOT 0 x63 8 b1 8 b1001 1100 8 b1001 1101 8 h9D 精品文档 3欢迎下载 3 1 3 1 数据记录数据记录 0000 8 8 16 16 oror 32 bit32 bit formats formats 字符字符 llaaaatt dd cc 英文描述英文描述 RECORDRECORD MARKMARK RECLENLOAD OFFSET RECTYP 00 DATACHKSUM 区域冒号为 起始标志 长度域 length 地址域 address 类型域 type 数据域 data 校验和域 check sum ASCII 固定为 00 16 进制 3A3030 字节长度 1 byte1 byte2 bytes1 byteN bytes1 byte RECORD MARK 该区域为 的 ASCII 编码 其 16 进制数为 8 h3A RECLEN 该区域使用 2 个 ASCII 编码的 16 进制数字来表示数据域的字节个数 最大值为 0 xFF 或 H 4646 十进制 255 LOAD OFFSET 该区域使用 4 个 ASCII 编码的 16 进制数字来表示数据域的第一个数据存放的偏移 地址 RECTYP ASCII 编码字符为 00 其 16 进制编码为 H3030 它指示该文件记录类型为数据记 录 CHKSUM 校验和为RECLEN LOAD OFFSET RECTYP 和 DATA 区域以字节为单位 求和 模 除 256 取反 加 1 比如下面的一条数据记录 0C032400787FE4F6D8FD75813402036B8D 0C LOAD RECLEN 是此行记录数据的字节数目 表示记录的数据域有 12 个字节的 INFO 或 者 DATA 最大为 0 xFF 或者 255 0324 是本条记录的数据在内存中的起始地址 OFFSET 只用于数据记录 其他类型的记录中 不使用这个域 应该被编码为 4 个 ASICC 码 0000 或者030303030H 00 是记录类型 00 表示是一个数据记录 787F 到 036B 是数据域 8D 是此条记录的效验和 精品文档 4欢迎下载 校验和计算过程 第一步 求各字节的和 不包括冒号 不包括最后一个字节即校验和本身 0C 03 24 00 78 7F E4 F6 D8 FD 75 81 34 02 03 6B 11 h673 第二步 模除 256 11 h673 mod 9 h100 8 h73 第三步 各位取反 not 8 h73 not 8 b0111 0011 8 h1000 1100 8 h8C 第四步 加 1 即得到校验和 8 h8C 1 8 h8D 3 2 3 2 文件结束记录文件结束记录 01 8 01 8 16 16 oror 32 bit32 bit formats formats 一个 Intel HEX 文件必须有且仅有一条文件结束记录 其类型域必须是 01 没有数据即长度域 为 00 数据域没有 该记录必须是文件的最后一行 每个文件有且仅有一条文件结束记录 通常一条文件结束记录除了类型域 01 校验和域 其他域都为 0 例如 00000001FF 00 是记录中数据字节的数目 0000 这个地址对于 EOF 记录来说无任何意义 01 记录类型是 01 文件结束记录标示 FF 是效验和计算如下 01h NOT 00h 00h 00h 01h mod 100h 字符字符 llaaaattcc 英文描述英文描述 RECORDRECORD MARKMARK RECLEN 00 LOAD OFFSET 0000 RECTYP 01 CHKSUM 区域冒号为 起始标志 长度域 length 地址域 address 类型域 type 校验和域 check sum ASCII 固定为 00固定为 0000 固定为 01 FF 16 进制 3A30303030303030314646 字节长度 1 byte1 byte2 bytes1 byte1 byte RECORD MARK 该区域为 的 ASCII 编码 其 16 进制数为 H3A RECLEN 由于文件结束记录不包含任何 INFO 或 DATA ASCII 编码字符为 00 其 16 进制 编码为 H 3030 精品文档 5欢迎下载 LOAD OFFSET 由于文件结束记录不使用该区域 ASCII 编码字符为 0000 其 16 进制编码为 030303030H RECTYP ASCII 编码字符为 01 其 16 进制编码为 H3031 它指示该文件记录类型为文件结 束记录 CHKSUM 校验和为RECLEN LOAD OFFSET 和 RECTYP 区域以字节为单位 求和 模除 256 取反 加 1 由于文件结束记录各域都是静止不变的 所以 CHKSUM 可以静态计算 出来 为 HFF 3 3 Extended3 3 Extended SegmentSegment AddressAddress Record02Record02 16 16 oror 32 32 bitbit formats formats 字符字符 llaaaatt dd cc 区域冒号为 起始标志 长度域 length 地址域 address 类型域 type 数据域 data 校验和域 check sum ASCII 02000002 16 进制 3A3032303030303032 字节长度 1 byte1 byte2 bytes1 byteN bytes1 byte RECORD MARK 该区域为 的 ASCII 编码 其 16 进制数为 H3A RECLEN 该区域使用 2 个 ASCII 编码的 16 进制数字来表示数据域的字节个数 最大值为 0 xFF 或 4646H 十进制 255 LOAD OFFSET 由于扩展段地址记录不使用该区域 ASCII 编码字符为 0000 其 16 进制编码为 030303030H RECTYP ASCII 编码字符为 02 其 16 进制编码为 H3032 它指示该文件记录类型为扩展段 地址记录 CHKSUM 校验和为RECLEN LOAD OFFSET RECTYP 和 USBA 区域以字节为单位 求和 模 除 256 取反 加 1 精品文档 6欢迎下载 3 4 3 4 扩展线性地址记录扩展线性地址记录 HEX386 04 HEX386 04 扩展线性地址记录也可称为 32 位地址记录 和 HEX386 记录 这个纪录包含高 16 16 31 位 位数据地址 这种扩展的线性记录总是有两个字节数据 像下面这样 02000004FFFFFC 02 是记录的数据字节数目 0000 是地址域这在扩展地址记录中总是 0000 04 是记录类型 04 扩展地址记录 FFFF 是高 16 位地址 FC 是记录效验和 计算方法如下 01h NOT 02h 00h 00h 04h FFh FFh 当一个扩展线性地址记录被读到后 扩展线性地址记录的数据区域将被保存 并应用到后面从 Intel HEX 文件中读出的记录 这个扩展线性记录一直有效 直到读到下一个扩展线性记录 绝对内存地址 数据记录中的地址 移位后的扩展线性地址 下面举例说明这个过程 从数据记录的地址域得到地址 2462 从扩展线性地址记录的地址域得到地址 FFFF 绝对内存地址 FFFF2462 精品文档 7欢迎下载 3 5 3 5 扩展段地址记录扩展段地址记录 HEX86 HEX86 0202 扩展段地址记录也被称为 HEX86 记录 包含 4 19 位的数据地址段 这个扩展段地址记录总是有两字节数据 如下 020000021200EA 02 是 记录中的数据字节数目 0000 是地址域 在扩展段地址记录中 这个域总是 0000 02 是记录类型 02 扩展段地址的标示 1200 是该段的地址 EA 是效验和 计算如下 01h NOT 02h 00h 00h 02h 12h 00h 当扩展段地址记录被读后 扩展段地址将被存储并
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- T/CIE 284-2024民航客运销售富媒体数据及应用规范第1部分:数据定义
- T/CNSS 019-2023食物饱腹感测试规范
- 2025年宣城广德市实验小学教育集团南校区招聘考试参考试题及答案解析
- 2025承德平泉市招聘事业单位55名备考考试题库附答案解析
- 2025东风卓联汽车服务有限公司招聘1人备考考试题库附答案解析
- 工厂安全培训材料课件
- 2025年合肥市建投集团秋季招聘20名笔试模拟试题及答案解析
- 哲思之旅:学界篇
- 幼教课件精良设计
- 《太空一日》课件
- 春考模拟试题及答案广东
- 消防装备技师题库
- 住院精神疾病患者攻击行为预防
- 15 青春之光(公开课一等奖创新教案)
- 城市轨道交通辅助系统的发展城轨车辆电气控制系统课件
- 腹腔镜操作标准化流程指南
- 输液空气的栓塞及预防
- 财务知识及财务分析培训
- 《化工设备设计原理与实例》课件
- 清洁生产简述与实例分析课件
- 大学食品安全主题教育
评论
0/150
提交评论