hex文件解读(HEX文件格式介绍)

在单片机编译中,我们经常使用hex文件进行烧录,那么hex文件到底是一个怎样的文件呢?我们简单的介绍一下:

先上图:这是我用Notepad++ 直接打开的一个32bit的单片机编译器编译的一个hex文件的部分,

ASCII显示

十六进制显示

不难发现:HEX格式文件以行为单位,每行由“:”(16进制为:0x3a)开始,以回车键结束(16进制为:0x0d,0x0a)。行内的数据都是由两个字符表示一个16进制字节,比如”08”就表示数0x08;”0a”,就表示0x0a。对于16位的地址,则高位在前低位在后,比如地址0x010a,在HEX格式文件中就表示为字符串”010a”。

我们把每一行称之为一个Recor【我.爱.线.报.网.】d。通常一个Record的格式如下:

RECORD MARK (第1个字符)

为1个byte,为ASCII的“:”,十六进制为“0x3A”。

如:

LOAD RECLEN (“:” 后的2个字符)

1个byte,表示本行包含的数据的长度。如:

0x08 :表示本行有8byte的数据。

OFFSET(LOAD RECLEN后的4个字符)

2个byte,表示数据存储的起始地址,如:

这里表示从0x0000地址开始存储8个数据,其中高位地址在前,低位地址在后。

RECTYP(OFFSET后2个字符)

1个byte,表示数据的类型。该类型总共有以下几种:

00 —-数据记录

01 —-文件结束记录

02 —-扩展段地【我.爱.线.报.网.】址记录

04 —-扩展线性地址记录

如:

这里就是0x00即为数据记录。

INFO or DATA(RECTYP后的4个字符)

2个byte,表示本行包含的数据。如:

该处有16个字符,每2个字符表示一个byte,故此行有8个byte数据,这和前面的LOAD RECLEN所定义的数据长度是统一的。

CHKSUM(INFO or DATA后的2个字符)

1个byte,为校验码。如:

校验和的算法为:计算0x8D前所有16进制码的累加和(不计进位),检验和 = 0x100 – 累加和

即:checksum = 0x100 – (0x08+0x01+0x5A+0x10) = 0x8D。

每个HEX格式的最后一行都是固【我.爱.线.报.网.】定为:(hex文件的末尾一行)

:00000001FF

01表示文件结束记录,FF为校验。

推荐阅读

给力项目线报网会员可免费下载 加入会员
友情提醒: 请尽量登录购买,防止付款了不发货!
QQ交流群:226333560 站长微信:qgzmt2
温馨提示:本站提供的一切软件、教程和内容信息都来自网络收集整理,仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负,版权争议与本站无关。用户必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。如果您喜欢该程序和内容,请支持正版,购买注册,得到更好的正版服务。我们非常重视版权问题,如有侵权请邮件与我们联系处理。敬请谅解!

给TA打赏
共{{data.count}}人
人已打赏
行业资讯

流感导致的白肺是什么意思(流感硬扛10天,双肺全白!这些症状拖不得→)

2024-7-19 18:46:35

行业资讯

山东京博公司(山东省诚信企业、省优秀诚信企业家,京博控股集团获两项诚信大奖)

2024-7-19 19:07:04

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索