hex文件格式解析

本文框架

  • 1. hex文件格式
    • 1.1 数据长度
    • 1.2 地址域
    • 1.3 数据类型
    • 1.4 数据域
    • 1.5 CRC校验域

本文对hex文件格式进行解析,介绍各部分组成及其含义,在此mark下,方便后续开发脚本对hex文件进行操作。

1. hex文件格式

Intel HEX文件是由一行行符合Intel HEX文件格式的文本所构成的ASCII文本文件。在Intel HEX文件中,每一行包含一个HEX记录。这些记录由对应机器语言码和/或常量数据的十六进制编码数字组成。Intel HEX文件通常用于传输将被存于ROM或者EPROM中的程序和数据[百度百科]。
在这里插入图片描述
Intel HEX由任意数量的十六进制记录组成。每个记录包含5个域,它们按以下格式排列:
:llaaaatt[dd…]cc
从“:”后依次为数据长度、地址、数据类型、数据内容及CRC校验值信息。

1.1 数据长度

ll 是数据长度域,代表记录当中数据字节(dd)的数量。
在上图红圈②中,即表示有16个Byte的数据长度。

1.2 地址域

aaaa 是地址域,代表记录当中数据的起始地址。
需要注意需要在扩展线性地址基础上偏移后才是最终的地址。

1.3 数据类型

tt 是代表HEX记录类型的域,可能是以下数据当中的一个:

类型含义
00数据记录,即本行携带的有数据信息
01文件结束记录,在hex文件的末尾出现
02扩展段地址记录
04扩展线性地址记录,后续的地址需在此基础上偏移,直到遇到下一个扩展线性地址记录

1.4 数据域

dd 是数据域,它代表一个字节的数据。一个记录可以有许多数据字节.记录当中数据字节的数量必须和数据长度域(ll)中指定的数字相符。

1.5 CRC校验域

cc 是校验和域,表示这个记录的校验和。
校验和的计算是通过将记录当中所有十六进制编码数字对的值相加,以256为模进行以下补足。

计算示例:
在这里插入图片描述
在上图中第二行CRC前所有数据的和:
0x10+0xEF+0x80+0xA5+0xA5+0xA5+0xA5+0x01 = 0x414 = 1044
checksum = 256 - sum_of_hex % 256 = 236 =0xEC

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/744966.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Vue3调用钉钉api,内嵌H5微应用单点登录对接

钉钉内嵌H5微应用单点登录对接 https://open.dingtalk.com/document/isvapp/obtain-the-userid-of-a-user-by-using-the-log-free 前端需要的代码 1、安装 dingtalk-jsapi npm install dingtalk-jsapi2、在所需页面引入 import * as dd from dingtalk-jsapi; // 引入钉钉a…

揭秘阿里巴巴中国站1688商品详情API的奥秘:如何高效获取数据?

阿里巴巴中国站1688并没有公开的商品详情API供普通开发者使用。其API主要服务于官方应用、合作伙伴和内部使用。对于普通的第三方开发者或商家,获取1688的商品详情数据通常需要通过爬虫技术或官方的数据服务接口(如果有的话)。 但请注意&…

使用vscode+clangd+bear+publickeyssh远程开发Linux程序

目录 配置ssh密钥远程登录登录远程Linux主机安装必要软件安装vscode插件1.安装remote-ssh插件2.通过vscode远程连接到linux机器3.在远程安装插件clangd4.关闭C/C Intellense engine 使用vscodeclangdbear1.修改Makefile2.编译内核3.结果 配置ssh密钥远程登录 一定要配置成密钥…

MyBatis 之四:结果映射和关联映射

结果映射 当查询的 SQL 中&#xff0c;出现了表字段名和实体类属性名不一致情况时&#xff0c;需要指定映射关系 常见方式&#xff1a; 使用 SQL 的 AS 别名方式ResultMap 方式 普通属性映射配置 第一步&#xff1a;编写结果映射 <resultMap id"empMap" type&qu…

暗光增强——IAT网络推理测试(详细图文教程)

IAT模型由两个独立的分支组成&#xff0c;局部分支用于像素调整&#xff0c;并输出两个用于加法和乘法的特征图。全局分支用于全局调整并输出颜色矩阵和gamma值&#xff0c;全局分支受DETR启发&#xff0c;网络通过动态查询学习的方式更新颜色矩阵和gamma值。整个模型只有超过9…

Pytorch入门实战 P2-CIFAR10彩色图片识别

目录 一、前期准备 1、数据集CIFAR10 2、判断自己的设备&#xff0c;是否可以使用GPU运行。 3、下载数据集&#xff0c;划分好训练集和测试集 4、加载训练集、测试集 5、取一个批次查看下 6、数据可视化 二、搭建简单的CNN网络模型 三、训练模型 1、设置超参数 2、编…

脚手架原理之webpack处理html文件和模块打包

脚手架原理之webpack处理html文件和模块打包 为了更好的理解项目脚手架的使用&#xff0c;我们来学习一下webpack工具&#xff0c;因为脚手架的底层就是基于webpack工具实现的。 安装 webpack工具是基于nodejs的&#xff0c;所以首先要有nodejs环境&#xff0c;其次需要下载…

Linux学习-shell

目录 Shell: 3.Shell命令: command [-options] arg1 arg2 .. 1.Shell基本命令: 2.文件查看命令: 3.文件查找命令: 通配符: 7.压缩解压命令: 8.让虚拟机上网: 9.apt-get工具集: Shell: 1.保护Linux内核(用户和Linux内核不直接操作,通过操作Shell,Shell和内核交互) 2.命令…

【CSP试题回顾】201709-3-JSON查询

CSP-201709-3-JSON查询 解题思路 1. 初始化数据结构 map<string, string> strContent: 存储字符串类型属性的内容。键是属性名&#xff08;可能包含通过点.连接的多级属性名&#xff09;&#xff0c;值是属性的字符串值。vector<string> keyVec: 存储当前正在处…

Java基础知识总结(1)

Java概况 JavaSE是java分类中的标准版&#xff0c;是刚接触java要学习的基础知识。 JavaEE是java分类中的企业版&#xff0c;是java中的高级&#xff0c;涉及到的知识广泛。 JavaME中M是Micro的缩写&#xff0c;用在嵌入式等电子设备中。 Java软件工程师&#xff1a;通过Ja…

TongWeb+springboot部署war包失败问题

1.版本问题 关于 springboot2x 以上版本要用Tongweb6.1.7.5 以上版本 否则启动会各种报错 2.JPA冲突 TongWeb自带JPA&#xff0c;所以如果项目用的是hibernate的JPA 如:Spring Data JPA 那么就会冲突 解决方案: 找到 /TongWeb安装目录/bin 下面有个external.vimoptions文件…

Java必须掌握的遍历字符串和个数(含面试大厂题含源码)

在Java编程中&#xff0c;遍历字符串和统计字符个数是非常基础且常用的技能。下面我将介绍一些必须掌握的相关知识点和示例代码&#xff1a; 1. 字符串遍历 遍历字符串意味着逐个访问字符串中的每个字符。在Java中&#xff0c;可以使用for循环或charAt方法来实现。 使用for循…

【DAY11 软考中级备考笔记】数据结构 排序操作系统

数据结构 排序&&操作系统 3月14日 – 天气&#xff1a;晴 今天天气非常热&#xff0c;已经到20度了&#xff0c;春天已经来了。 1. 堆排序 堆排序的思想是首先建立一个堆&#xff0c;然后弹出堆顶元素&#xff0c;剩下的元素再形成一个堆&#xff0c;然后继续弹出元素&…

为什么要用scrapy爬虫库?而不是纯python进行爬虫?

为什么要用scrapy爬虫库&#xff1f;而不是纯python进行爬虫&#xff1f; Scrapy的优点Scrapy节省的工作使用纯Python编写爬虫的不足 Scrapy是一个使用Python编写的开源和协作的web爬虫框架&#xff0c;它被设计用于爬取网页数据并从中提取结构化数据。Scrapy的强大之处在于其广…

js进阶-函数参数-展开预算符-解构

一.函数参数 动态参数 剩余参数 1.1 动态参数 arguments是函数内部内置的伪数组变量&#xff0c;它包含了调用函数时传入的所有实参 function getSum() {// arguments 动态参数 只存在于 函数里面// 是伪数组 里面存储的是传递过来的实参console.log(arguments) // Argument…

自注意力机制函数(SelfAttention)python实现

Self-Attention。和Attention类似都是一种注意力机制。不同的是Attention是source对target&#xff0c;输入的source和输出的target内容不同。例如英译中&#xff0c;输入英文&#xff0c;输出中文。而Self-Attention是source对source&#xff0c;是source内部元素之间或者targ…

工科硕士研究生毕业论文撰写总结

工科硕士研究生毕业论文撰写总结 最近一段看了十几篇研究生毕业论文&#xff0c;发现不少问题。结合最近几年当评委及审论文的经验来总结下工科硕士研究生毕业论文撰写毕业论文问题与经验。 一&#xff0e;科技论文的总要求 论文是写给同行看的&#xff0c;注意读者对象。&a…

页面侧边栏顶部固定和底部固定方法

顶部固定用于侧边栏低于屏幕高度----左侧边栏 底部固定用于侧边栏高于屏幕高度----右侧边栏 vue页面方法 页面布局 页面样式&#xff0c;因为内容比较多&#xff0c; 只展示主要代码 * {margin: 0;padding: 0;text-align: center; } .head {width: 100%;height: 88px;back…

在notion里面实现四象限清单

四象限清单是一种时间管理工具&#xff0c;旨在帮助人们根据任务的重要性和紧急性来优先排序他们的工作。这个概念最早由德怀特艾森豪威尔提出&#xff0c;后来又被史蒂芬柯维在他的著作《高效能人士的七个习惯》中进一步普及。四象限清单将任务分为四个类别&#xff1a; 第一…

VueX详解

Vuex 主要应用于Vue.js中管理数据状态的一个库通过创建一个集中的数据存储&#xff0c;供程序中所有组件访问 使用场景 涉及到非父子关系的组件&#xff0c;例如兄弟关系、祖孙关系&#xff0c;甚至更远的关系组件之间的联系中大型单页应用&#xff0c;考虑如何更好地在组件外部…