Hex文件介绍及制作

news2024/11/16 23:49:04

Hex文件介绍

  • 一、文件格式介绍
    • 数据格式
    • Hex文件例子
    • 常见类型字段
  • 二、CRC校验计算
    • eg.地址文件CRC计算
      • :020000040127D2
      • :0200000400FFFB
    • eg.数据文件计算
  • 三、生成hex文件
    • 用Excel生成

一、文件格式介绍

Hex文件是一种十六进制文件格式,可由notpad++打开或者HexView app打开进行查看数据,以下以Notpad++打开为例

数据格式

:llaaaatt[dd...dd]cc

其中:

:”:记录开始标志。
ll”:长度字段,表示后面数据字段的长度(以字节为单位)。
aaaa”:地址字段,表示数据在内存中的地址(以字节为单位)。
tt”:类型字段,表示记录的类型。不同的类型对应不同的数据含义。
dd…dd”:数据字段,表示实际的数据,长度由长度字段指定。
cc”:校验和字段,用于检测数据的正确性。

Hex文件例子

在这里插入图片描述
:020000040127D2

长度字段为 02 字节,表示后面的数据长度为2个字节。(即0127 为2个字节)
地址字段为 0000,表示起始地址为0。
类型字段为 04,表示这是扩展线性地址记录。
数据字段为 0127,表示高位地址(扩展线性地址的值)。
校验和字段为 D2

:20FF000000000001010200000025FF000A01C6CDBEFA5C75151A99EF969C96FE0D2CE1D922
长度字段为 20 字节,表示后面的数据长度为32个字节。
地址字段为 FF00,表示起始地址为0xFF00。
类型字段为 00,表示这是数据记录。
数据字段包含32个字节,00000001010200000025FF000A01C6CDBEFA5C75151A99EF969C96FE0D2CE1D9
校验和字段22

如果校验和错误在notpad++里会显示飘红
在这里插入图片描述
:00000001FF

长度字段为 00,表示没有数据字段。
地址字段为 0000,没有实际意义。
类型字段为 01,表示文件结束。
校验和字段为 FF
文件结束这一行字段没有实际意义,但是不可少,目前我见过的Hex文件,文件结束字段都如上

常见类型字段

  • 00(数据记录):包含实际的数据。数据的起始地址由地址字段表示。

例如::10 0000 00 0102030405060708090A0B0C0D0E0F10 62

  • 01(文件结束记录):表示文件的结束。通常出现在文件的最后一条记录。

例如::00 0000 01 FF

  • 02(扩展段地址记录):指定后续数据记录的起始地址的高16位。

例如::02 0000 04 0102 F7

  • 04(扩展线性地址记录):指定后续数据记录的起始地址的高16位。

例如::04 0000 00 0127 D2

  • 05(起始线性地址记录):指定程序的起始执行地址

例如::04 0000 05 0102 0000 F4

二、CRC校验计算

eg.地址文件CRC计算

:020000040127D2

在这里插入图片描述

:020000040127D2
除了CRC校验值,其他数据都要参与计算。如上:通过计算020000040127 得出0xD2值
计算公式:即将每个byte的值相加对0x100求余得X(或者"与0xFF"),0x100减去X得到CRC值
计算方式:
step1:0x02+0x00+0x00+0x04+0x01+0x01+0x27=0x2E
step2:0x2E&0xFF=0x2E(或者0x2E%0x100=2E)
step3:0x100-0x2E=0xD2

:0200000400FFFB

在这里插入图片描述
通过计算0200000400FF 得出0xFB值
step1:0x02+0x00+0x00+0x00+0x04+0x00+0xFF=0x105
step2:0x2E&0xFF=0x5
step3:0x100-0x5=0xFB

eg.数据文件计算

在这里插入图片描述
step1:0x20+0x00+0x20+0x00+0x5E+0xED+0x45+0xEC+0x01+0xAA+0xFF+0xFF+0x01+0x02+0x00+0x20+0x00+0x25+0xFF+0xE0+0x01+0x27+0xF8+0xC0+0xFF+0xFF+0xFF+0xFF+0xFF+0xFF+0xFF+0xFF+0xFF+0xFF+0xFF+0xFF=0x1560(我用ChatGPT3.5给我算,气死我了,一直算不对,还是得用计算器算,可以用电脑自带的计算器程序员模式计算)
step2:0x1560&0xFF=0x60
step3:0x100-0x60=0xA0

三、生成hex文件

用Excel生成

在这里插入图片描述

C列和D列输入对应数据,F列计算出CRC值,将完成数据计算结果写入E列中
在这里插入图片描述

有飘红的行,将CRC值手动填充成2位,第一位添0
在这里插入图片描述

ps:用excel表格处理少量数据还行,大量数据就不太方便了。使用excel这个需要手动处理的部分太多了(小尝分享~)

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

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

相关文章

【Hive_05】企业调优1(资源配置、explain、join优化)

1、 计算资源配置1.1 Yarn资源配置1.2 MapReduce资源配置 2、 Explain查看执行计划(重点)2.1 Explain执行计划概述2.2 基本语法2.3 案例实操 3、分组聚合优化3.1 优化说明(1)map-side 聚合相关的参数 3.2 优化案例 4、join优化4.1…

vivado 快速到慢速时钟之间的多循环

快速到慢速时钟之间的多循环 在下面的场景中,启动时钟CLK1是快速时钟,捕获时钟CLK2是慢时钟。如下图所示。 在下一示例中,启动时钟CLK1是快速时钟。捕获时钟CLK2较慢时钟假设CLK1是CLK2的频率的三(3)倍。如下图所示。…

docker小白第七天

docker小白第七天 tomcat安装 docker hub上面查找tomcat镜像 点进tomcat,可以看到下载镜像的命令。但是因为文件太大,并且是国外下载镜像很慢,所以我们从前期配置好的阿里云镜像仓库下载。 docker search tomcat docker pull tomcatdocker…

后端主流框架-SpringMvc-day2

Java中的文件下载 2 文件下载 文件下载:就是将服务器(表现在浏览器中)中的资源下载(复制)到本地磁盘; 2.1 前台代码 前台使用超链接,超链接转到后台控制器,在控制器通过流的方式…

Intel FPGA 技术开放日

概要 时间:2023.11.14 全天 ( 9:00 - 16: 20) 地点:北京望京. 凯悦酒店 主题内容:分享交流了Intel FPGA 产品技术优势和落地实践方案。 会议的议程 开场致词: FPGA业务,是几年前intel收购而…

虚拟环境和Pycharm中均有transforms仍报ModuleNotFoundError:No module named ‘transformers‘

问题:运行新模型,配置了新环境,下载了包后,仍然报ModuleNotFoundError:No module named transformers 错误。 查看Pycharm解释器: 没问题!!!? 命令行查看虚…

Flink Job 执行流程

Flink On Yarn 模式 ​ 基于Yarn层面的架构类似 Spark on Yarn模式,都是由Client提交App到RM上面去运行,然后 RM分配第一个container去运行AM,然后由AM去负责资源的监督和管理。需要说明的是,Flink的Yarn模式更加类似Spark on Ya…

Hive安装笔记——备赛笔记——2024全国职业院校技能大赛“大数据应用开发”赛项——任务2:离线数据处理

将下发的ds_db01.sql数据库文件放置mysql中 12、编写Scala代码,使用Spark将MySQL的ds_db01库中表user_info的全量数据抽取到Hive的ods库中表user_info。字段名称、类型不变,同时添加静态分区,分区字段为etl_date,类型为String&am…

【电商项目实战】基于SpringBoot完成首页搭建

🎉🎉欢迎来到我的CSDN主页!🎉🎉 🏅我是Java方文山,一个在CSDN分享笔记的博主。📚📚 🌟推荐给大家我的专栏《电商项目实战》。🎯🎯 &am…

【PyQt学习篇 · ⑭】:QTableView的使用

文章目录 QTableView的使用示例 QTableView的使用 QTableView 是 PyQt 中用于显示表格数据的窗口部件,它提供了一个灵活的方式来显示和编辑数据。下面是一些关于 QTableView 的使用的具体信息: 创建 QTableView 对象: from PyQt5.QtWidgets …

计算机网络基础:OSI参考模型是什么?

一、概述 OSI (Open Systems Interconnection Model,开放式系统互联模型),由ISO ( International Organization for Standardization,国际标准化组织 ) 收录在ISO 7489标准中并于1984年发布。 意义: 在OSI没有出来之前我们的网络有如下问题…

Linux Debian12使用podman安装upload-labs靶场环境

一、upload-labs简介 PHP语言编写,持续收集渗透测试和CTF中针对文件上传漏洞的靶场,总共21关,每一关都包含着不同的上传绕过方式。 二、安装podman环境 Linux Debian系统如果没有安装podman容器环境,可以参考这篇文章先安装pod…

如何在vscode当中预览html文件运行结果

如何在vscode当中预览html文件运行结果 下载拓展内容打开拓展界面下载拓展 运行html文件参考内容 上一篇文章当中讲了如何实现在网页上对html文件的预览,但是这样子其实在运行代码的过程当中效果比较差,那么还需要可以实时预览运行的结果 下载拓展内容 打开拓展界面 下载拓展 …

微信小程序发放红包封面及领取

微信小程序发放红包封面及领取 一、微信红包封面开放平台配置发放的红包封面二、小程序后管平台设置配置录入红包封面奖品信息三、微信小程序调用接口效果 一、微信红包封面开放平台配置发放的红包封面 微信红包封面开放平台 红包封面的发放方式有:领取二维码、领…

unity 保存和加载窗口布局

这么简单的事网上一堆废话文章 右上角,Layout点开后有保存和删除 要切换布局点红框里的已经保存的布局

Linux下MQTT环境的简单应用及搭建——之Mosquitto

文章目录 前言一、ubuntu搭建mqtt服务器 | 概要二、整体架构流程 | 技术实现细节1、下载源码2、安装Mosquitto3、解压并修改配置文件4、关于Mosquitto常见的一些操作指令5、启动mosquitto6、测试mosquitto测试1:Linux多终端交互测试测试2:Linux与Windows…

2023安洵杯-秦岭防御军wp

reverse 感觉有点点简单## import base64 def ba64_decode(str1_1):mapp "4KBbSzwWClkZ2gsr1qAQu0FtxOm6/iVcJHPY9GNp7EaRoDf8UvIjnL5MydTX3eh"data_1 [0] * 4flag_1 [0] * 3for i in range(32, 127):for y in range(32, 127):for k in range(32, 127):flag_1[0]…

MIT线性代数笔记-第30讲-奇异值分解

目录 30.奇异值分解打赏 30.奇异值分解 奇异值分解(简称 S V D SVD SVD分解)可以将一个比较复杂的矩阵用更小更简单的几个子矩阵相乘来表示,这些小矩阵描述的都是矩阵的重要的特性。奇异值分解在图形降噪、推荐系统中都有很重要的应用。 对…

最优化考试之牛顿法

最优化考试之牛顿法 一、牛顿法1.问题条件2.求解过程3.例子 PS 一、牛顿法 1.问题条件 目标函数 f ( x ) f(x) f(x),求极小值初始点 x 0 x_0 x0​精度要求e(没有提就是近似0) 2.求解过程 求解一阶雅克比矩阵 ∇ f ( x ) ∇f(x) ∇f(x)和二…

分享11 种有用的 JavaScript 技巧

今天这篇文章,我想与你分享 11个有用的JavaScript实用小技巧,它们将极大地提高你的工作效率。 1.生成随机颜色的两种方式 1).生成RandomHexColor const generateRandomHexColor () > {return #${Math.floor(Math.random() * 0xffffff)…