首页 > 其他分享 >HEX文件格式相关

HEX文件格式相关

时间:2024-04-27 21:56:51浏览次数:19  
标签:0x28 记录 0x00 HEX Record 地址 文件格式 相关

Hex文件是可以烧录到MCU中,被MCU执行的一种文件格式。如果用记事本打开可发现,整个文件以行为单位,每行以冒号开头,内容全部为16进制码(以ASCII码形式显示)。Hex文件可以按照如下的方式进行拆分来分析其中的内容:

例如 “:1000080080318B1E0828092820280B1D0C280D2854”可以被看作“0x10 0x00 0x08 0x00 0x80 0x31 0x8B 0x1E 0x08 0x28 0x09 0x28 0x20 0x28 0x0B 0x1D 0x0C 0x28 0x0D 0x28 0x54”
第一个字节 0x10表示本行数据的长度;
第二、三字节 0x00 0x08表示本行数据的起始地址;
第四字节 0x00表示数据类型,数据类型有:0x00、0x01、0x02、0x03、0x04、0x05。
‘00’ Data Rrecord:用来记录数据,HEX文件的大部分记录都是数据记录
‘01’ End of File Record: 用来标识文件结束,放在文件的最后,标识HEX文件的结尾
‘02’ Extended Segment Address Record: 用来标识扩展段地址的记录
‘03’ Start Segment Address Record:开始段地址记录
‘04’ Extended Linear Address Record: 用来标识扩展线性地址的记录
‘05’ Start Linear Address Record:开始线性地址记录
然后是数据,最后一个字节 0x54为校验和。
校验和的算法为:计算0x54前所有16进制码的累加和(不计进位),检验和 = 0x100 - 累加和
在上面的后2种记录,都是用来提供地址信息的。每次碰到这2个记录的时候,都可以根据记录计算出一个“基”地址。对于后面的数据记录,计算地址的时候,都是以这些“基”地址为基础的。
HEX文件都是由记录(RECORD)组成的。在HEX文件里面,每一行代表一个记录。记录的基本格式为:
Record mark ‘:’ 1 byte
Length 1 byte
Load offset 2 bytes
Record type 1 byte
INFO or DATA n bytes
CHKSUM 1byte
代码实现
————————————————

                            版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
                        
原文链接:https://blog.csdn.net/qq_45714830/article/details/124323594

标签:0x28,记录,0x00,HEX,Record,地址,文件格式,相关
From: https://www.cnblogs.com/icaowu/p/18162615

相关文章

  • docker部署SonarQube流程及相关问题汇总
    环境说明:sonarqube版本:10.4.1-communityPostgreSql版本:14.1系统环境:centos7.6(x86_64)部署流程1、PostgreSql的安装部署在docker中拉取最新版本镜像,命令如下:dockerpullpostgres 镜像拉取成功后执行如下命令创建PostgreSql容器:dockerrun--namepostgres-ePOST......
  • 24/04/27 图论及 dfs 序相关
    \(\color{green}(1)\)CF721CJourney给定一张\(n\)个点\(m\)条边的有向无环图,边有边权。构造一条\(1\ton\)的路径使得其边权和\(\lek\)且经过的点数最多。\(n,m\le5\times10^3\),\(k\le10^9\)。最简单的想法是设状态\(f_{i,j}\)表示\(1\toi\)的边权......
  • 大小写相关API(tolower, toupper, islower, isupper)
    1.定义位于头文件中1.1tolowertolower函数用于将字符转换为小写形式,如果参数ch是大写字母,则返回对应的小写字母;否则返回原始字符。inttolower(intch);1.2touppertoupper函数用于将字符转换为大写形式,如果参数ch是小写字母,则返回对应的大写字母;否则返回原始......
  • ROS学习--添加依赖相关问题
    在自定义话题接口时,步骤如下:新建msg文件夹,并在文件夹下新建xxx.msg在xxx.msg下编写消息内容并保存在CmakeLists.txt添加依赖和msg文件目录在package.xml中添加xxx.msg所需的依赖编译功能包即可生成python与c++头文件其中在CmakeLists.txt中添加依赖和msg文件目录时需要将......
  • JS相关技巧
    随意修改网页js代码document.body.contentEditable="true"document.designMode="on"或javascript:document.body.contentEditable='true';document.designMode='on';void0(浏览器输入框执行,chrome需要粘贴后,需要在前面手打javascript:因为粘贴的会自动过滤)复......
  • 周末玩一下云技术,kvm 相关笔记
    由于需要将企业的很贵的显卡和主机装在一个虚拟主机,用来跑 ue5和sd3 用来给用户临时使用,但是怎么将主机虚拟出来成多个主机呢,自己没有有钱请不起人,只能自己学一下虚拟化技术,第一步主机开启硬件支持,grep-E'vmx|svm'/proc/cpuinfo命令的功能是在/proc/cpuinfo文件中搜索......
  • 数据库——一些复健(主要是约束和索引相关练习)
    重要的是练习,写作业时写的絮絮叨叨就忽略吧。  强化学习2                    【练习9.1】在stusys数据库中创建course1表,以列级完整性约束方式定义主键。  【练习9.2】在stusys数据库中创建course2表,以表级完整性约束方式定义主键。  ......
  • 清除SSL缓存的主要目的是确保系统使用最新的SSL证书信息,并解决与SSL证书相关的问题。
    通过以下方式实现:powershellCopyCode#清除SSL证书缓存Invoke-Expression-Command"certutil-urlcache*delete"这条命令将执行certutil-urlcache*delete命令,清除系统中的SSL证书缓存。请注意,您需要以管理员身份运行PowerShell才能执行此操作。命令行(CMD)批处......
  • Android显示子系统相关基础概念
    1.fence概念:acquireFence、releaseFence、retireFence每一个layer都有一个acquireFence和releaseFence,每一个系列layes都有一个retirefence,注意这边的是layers!多个layer。acquireFence用于生产者通知消费者生产已完成,releaseFence用于消费者通知生产者消费已完成。acquireFence:......
  • 功率分析仪中关于IEC标准中Flicker的使用方法及相关参数意义
     电力系统中的闪变(Flicker)是由于电压波动或电流波动引起的视觉不稳定现象,它主要影响灯光的亮度变化,导致不适感或视觉干扰。在工业应用中,特别是对于连接到电网的设备,重要的是要监测并控制闪变,以确保符合国际电工委员会(IEC)的标准。IEC标准中关于闪变的最关键部分是IEC 61000-4-......