HEX文件格式说明
ztj100 2024-11-24 01:32 20 浏览 0 评论
1 什么是HEX文件
HEX文件是由一行行符合 HEX文件格式的文本所构成的ASCII文本文件。在HEX文件中,每一行包含一个HEX记录。这些记录由对应机器语言码和/或常量数据的十六进制编码数字组成。HEX文件通常用于传输将被存于ROM或者EPROM中的程序和数据。
2 HEX文件格式
一般Hex文件通过记事本就可以打开。可以发现一般Hex文件的记录格式如下:
HEX文件由任意数量的十六进制记录组成。每个记录包含5个域,它们按以下格式排列:
每一组字母对应一个不同的域,每一个字母对应一个十六进制编码的数字。每一个域由至少两个十六进制编码数字组成,它们构成一个字节,就像以下描述的那样:
:(冒号)每个HEX记录都由冒号开头 ;
LL 是数据长度域, 它代表记录当中数据字节(dd)的数量;
aaaa 是地址域, 它代表记录当中数据的起始地址;
TT是代表HEX记录类型的域,它可能是以下数据当中的一个:
00 – 数据记录(Data Record)
01 – 文件结束记录(End of FileRecord)
02 – 扩展段地址记录(ExtendedSegment Address Record)
03 – 开始段地址记录(Start Segment Address Record)
04 – 扩展线性地址记录(Extended Linear Address Record)
05 – 开始线性地址记录(Extended Segment Address Record)
dd 是数据域 , 它代表一个字节的数据. 一个记录可以有许多数据字节.记录当中数据字节的数量必须和数据长度域(ll)中指定的数字相符.
cc 是校验和域 , 它表示这个记录的校验和.校验和的计算是通过将记录当中所有十六进制编码数字对的值相加, 以256为模进行以下补足.
表示为:“:[1字节长度][2字节地址][1字节记录类型][n字节数据段][1字节校验和] ”
具体事例
具体根据记录类型分析如下:
(1)数据记录”00”:10246200464C5549442050524F46494C4500464C33
其中:10是这个记录当中数据字节的数量.即0x10 ;
2462 是数据将被下载到存储器当中的地址.即0x2462 ;
00 是记录类型( 数 据 记录).即0x00 ;
464C…464C是 数据.分别代表0x46,0x4C... ;
33是这个记录的校 验和即0x33;计算方法如下:256D-(10H+24H+62H+00H+46H+4CH+55H+49H+44H+20H+50H+52H+4FH+46H+49H+4CH+45H+00H+46H+4CH)/100H=33H;
(2)文件结束(EOF)”01”:00000001FF
其中:00 是记录当中数据字节的数量.
0000 是数据被下载到存储器当中的地址. 在文件结束记录当中地址是没有意义,被忽略的.0000h 是典型的地址;
01 是记录类型 01( 文件 结 束 记录)
FF 是 这个记录 的校 验 和, 计算方法如下: 256D-(00H+00H+00H+01H)=FFH;
(3)扩展线性地址记录(HEX386) ”04”:02000004FFFFFC
其中:02 是这个记录当中 数 据字 节 的 数量.
0000 是地址域, 对于 扩 展 线 性地址 记录 , 这个 域 总是0000.
04 是记录类型 04( 扩 展 线 性地址 记录)
FFFF 是地址的高16 位.
FC 是这个记录的校 验 和, 计算如下: 256D-(02H+00H+00H+04H+FFH+FFH)/100H=FFH;
当一个扩展线性地址记录被读取, 存储于数据域的扩展线性地址被保存,它被应于
从 HEX 文件读取来的随后的记录 . 线性地址保持有效, 到它被另外一个扩址录所改变。
通过把记录当中的地址域与被移位的来自扩展线性地址记录的地址数据相加获得 数据记录的绝对存储器地址。
以下的例子演示了这个过 程:
:0200000480007A //数据记录的绝对存储器地址高16位为0x8000
:100000001D000A00000000000000000000000000C9
:100010000000000085F170706F0104005D00BD00FC
第一行,是Extended Linear Address Record,里面的数据,也就是基地址是0x8000,第二行是DataRecord,里面的地址值是0x0000。那么数据1D000A00000000000000000000000000(共16个字节)要写入FLASH中的地址为 (0x8000<< 16)| 0x0000,也就是写入FLASH的0x80000000这个地址;第三行的数据写入地址为0x80000010.当一个HEX文件的数据超过64k的时候,文件中就会出现多个Extended Linear Address Record。
(4)扩展段地址记录(HEX86)“02“:020000021200EA
其中:02 是记录当中数据字节的数量;
0000 是地址域. 对于扩展段地址记录 ,这个域总是0000;
02 是记录类型 02( 扩展段地址记录);
1200 是地址段;
EA 是这个记录的校 验 和;
当一个扩展段地址记录被读取, 存储于数据域的扩展段地址被保存, 它被应用于从HEX文件读取来的随后的记录 .段地址保持有效, 直到它被另外一个扩展地址记录所改变。
通过把记录当中的地址域与被移位的来自扩展段地址记录的地址数据相加获得数 据记录的绝对存储器地址。
相关推荐
- 30天学会Python编程:16. Python常用标准库使用教程
-
16.1collections模块16.1.1高级数据结构16.1.2示例...
- 强烈推荐!Python 这个宝藏库 re 正则匹配
-
Python的re模块(RegularExpression正则表达式)提供各种正则表达式的匹配操作。...
- Python爬虫中正则表达式的用法,只讲如何应用,不讲原理
-
Python爬虫:正则的用法(非原理)。大家好,这节课给大家讲正则的实际用法,不讲原理,通俗易懂的讲如何用正则抓取内容。·导入re库,这里是需要从html这段字符串中提取出中间的那几个文字。实例一个对...
- Python数据分析实战-正则提取文本的URL网址和邮箱(源码和效果)
-
实现功能:Python数据分析实战-利用正则表达式提取文本中的URL网址和邮箱...
- python爬虫教程之爬取当当网 Top 500 本五星好评书籍
-
我们使用requests和re来写一个爬虫作为一个爱看书的你(说的跟真的似的)怎么能发现好书呢?所以我们爬取当当网的前500本好五星评书籍怎么样?ok接下来就是学习python的正确姿...
- 深入理解re模块:Python中的正则表达式神器解析
-
在Python中,"re"是一个强大的模块,用于处理正则表达式(regularexpressions)。正则表达式是一种强大的文本模式匹配工具,用于在字符串中查找、替换或提取特定模式...
- 如何使用正则表达式和 Python 匹配不以模式开头的字符串
-
需要在Python中使用正则表达式来匹配不以给定模式开头的字符串吗?如果是这样,你可以使用下面的语法来查找所有的字符串,除了那些不以https开始的字符串。r"^(?!https).*&...
- 先Mark后用!8分钟读懂 Python 性能优化
-
从本文总结了Python开发时,遇到的性能优化问题的定位和解决。概述:性能优化的原则——优化需要优化的部分。性能优化的一般步骤:首先,让你的程序跑起来结果一切正常。然后,运行这个结果正常的代码,看看它...
- Python“三步”即可爬取,毋庸置疑
-
声明:本实例仅供学习,切忌遵守robots协议,请不要使用多线程等方式频繁访问网站。#第一步导入模块importreimportrequests#第二步获取你想爬取的网页地址,发送请求,获取网页内...
- 简单学Python——re库(正则表达式)2(split、findall、和sub)
-
1、split():分割字符串,返回列表语法:re.split('分隔符','目标字符串')例如:importrere.split(',','...
- Lavazza拉瓦萨再度牵手上海大师赛
-
阅读此文前,麻烦您点击一下“关注”,方便您进行讨论和分享。Lavazza拉瓦萨再度牵手上海大师赛标题:2024上海大师赛:网球与咖啡的浪漫邂逅在2024年的上海劳力士大师赛上,拉瓦萨咖啡再次成为官...
- ArkUI-X构建Android平台AAR及使用
-
本教程主要讲述如何利用ArkUI-XSDK完成AndroidAAR开发,实现基于ArkTS的声明式开发范式在android平台显示。包括:1.跨平台Library工程开发介绍...
- Deepseek写歌详细教程(怎样用deepseek写歌功能)
-
以下为结合DeepSeek及相关工具实现AI写歌的详细教程,涵盖作词、作曲、演唱全流程:一、核心流程三步法1.AI生成歌词-打开DeepSeek(网页/APP/API),使用结构化提示词生成歌词:...
- “AI说唱解说影视”走红,“零基础入行”靠谱吗?本报记者实测
-
“手里翻找冻鱼,精心的布局;老漠却不言语,脸上带笑意……”《狂飙》剧情被写成歌词,再配上“科目三”背景音乐的演唱,这段1分钟30秒的视频受到了无数网友的点赞。最近一段时间随着AI技术的发展,说唱解说影...
- AI音乐制作神器揭秘!3款工具让你秒变高手
-
在音乐创作的领域里,每个人都有一颗想要成为大师的心。但是面对复杂的乐理知识和繁复的制作过程,许多人的热情被一点点消磨。...
你 发表评论:
欢迎- 一周热门
- 最近发表
-
- 30天学会Python编程:16. Python常用标准库使用教程
- 强烈推荐!Python 这个宝藏库 re 正则匹配
- Python爬虫中正则表达式的用法,只讲如何应用,不讲原理
- Python数据分析实战-正则提取文本的URL网址和邮箱(源码和效果)
- python爬虫教程之爬取当当网 Top 500 本五星好评书籍
- 深入理解re模块:Python中的正则表达式神器解析
- 如何使用正则表达式和 Python 匹配不以模式开头的字符串
- 先Mark后用!8分钟读懂 Python 性能优化
- Python“三步”即可爬取,毋庸置疑
- 简单学Python——re库(正则表达式)2(split、findall、和sub)
- 标签列表
-
- idea eval reset (50)
- vue dispatch (70)
- update canceled (42)
- order by asc (53)
- spring gateway (67)
- 简单代码编程 贪吃蛇 (40)
- transforms.resize (33)
- redisson trylock (35)
- 卸载node (35)
- np.reshape (33)
- torch.arange (34)
- npm 源 (35)
- vue3 deep (35)
- win10 ssh (35)
- vue foreach (34)
- idea设置编码为utf8 (35)
- vue 数组添加元素 (34)
- std find (34)
- tablefield注解用途 (35)
- python str转json (34)
- java websocket客户端 (34)
- tensor.view (34)
- java jackson (34)
- vmware17pro最新密钥 (34)
- mysql单表最大数据量 (35)