【嵌入式烧录刷写文件】-2.3-删除/修改Intel Hex文件中指定地址范围内的数据

news2025/1/21 12:23:47

案例背景(共6页精讲):

有如下一段HEX文件,如何“自动”地完成地址范围0x9110-0x9113数据的删除或修改。

:2091000058595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F70717273747576775F
:2091200078797A7B7C7D7E7F808182838485868788898A8B8C8D8E8F90919293949596973F
:2091400098999A9B9C9D9E9FA0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B71F
:20916000B8B9BABBBCBDBEBFC0C1C2C3C4C5C6C7C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7FF
:20918000D8D9DADBDCDDDEDFE0E1E2E3E4E5E6E7E8E9EAEBECEDEEEFF0F1F2F3F4F5F6F7DF
:2091A000F8F9FAFBFCFDFEFF000102030405060708090A0B0C0D0E0F1011121314151617BF
:2091C00018191A1B1C1D1E1F202122232425262728292A2B2C2D2E2F30313233343536379F
:0891E00038393A3B3C3D3E3FAB
:00000001FF

目录

1 使用Vector HexView工具“删除”HEX文件指定地址范围数据

1.1 “自动”完成删除

1.2 “手动”完成删除

2 使用Vector HexView工具“修改” HEX文件指定地址范围数据

2.1 “自动”完成修改

2.2 “手动”完成修改

3 Command line命令行说明

结尾


优质博文推荐阅读(单击下方链接,即可跳转):

点击返回「《Autosar从入门到精通-实战篇》总目录」

点击返回「《Autosar_BSW高阶配置》总目录」

点击返回《嵌入式硬件/软件开发刷写/烧录文件》专栏

1 使用Vector HexView工具“删除”HEX文件指定地址范围数据

1.1 “自动”完成删除

基于批处理Bat(如下图中的Modification_HEX_File.bat)调用HexView工具提供的Command line,通过该脚本来实现HEX文件(Application.Hex)的指定地址范围数据的删除。将该脚本集成开发环境IDE(CodeWarrior,S32K DS,Davinci,EB Tresos,ETAS…)中,即可自动实现。见图1-1。

图1-1

Modification_HEX_File.bat摘录:

@echo off

Rem Path to the executable exe of the Vector HexView tool on your PC
set "HexViewPath=D:\Modification_Hex\HexView\hexview.exe"

Rem Modified source file Input_Hex_File
set "Input_Hex_File=D:\Modification_Hex\Application.hex"

Rem  Delete Output_Hex_File files in a specific address range
set "Output_Hex_1_File=D:\Modification_Hex\Application_1_Copy.hex"

Rem  Modify Output_Hex_File files in a specific address range
set "Output_Hex_2_File=D:\Modification_Hex\Application_2_Copy.hex"

Rem Call the command line provided by the HexView tool to get the new Output_Hex_1_File file.
%HexViewPath% %Input_Hex_File% /CR:0x9110-0x9113 /XI:32 /s -o %Output_Hex_1_File%

 

运行该批处理Modification_HEX_File.bat,即可得到删除指定地址范围数据后的Application_1_Copy文件。

:1091000058595A5B5C5D5E5F606162636465666767
:209114006C6D6E6F707172737475767778797A7B7C7D7E7F808182838485868788898A8BCB
:209134008C8D8E8F909192939495969798999A9B9C9D9E9FA0A1A2A3A4A5A6A7A8A9AAABAB
:20915400ACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBFC0C1C2C3C4C5C6C7C8C9CACB8B
:20917400CCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDFE0E1E2E3E4E5E6E7E8E9EAEB6B
:20919400ECEDEEEFF0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF000102030405060708090A0B4B
:2091B4000C0D0E0F101112131415161718191A1B1C1D1E1F202122232425262728292A2B2B
:1491D4002C2D2E2F303132333435363738393A3B3C3D3E3F59
:00000001FF

 

1.2 “手动”完成删除

打开Vector Hexview工具,在菜单栏中依次选择Edit -- > Delete;

在弹出的Delete data block or range对话框中,填入删除的地址范围,并单击OK;

删除后的效果,见下图。

2 使用Vector HexView工具“修改” HEX文件指定地址范围数据

2.1 “自动”完成修改

基于批处理Bat(如下图中的Modification_HEX_File.bat)调用HexView工具提供的Command line,通过该脚本来实现HEX文件(Application.Hex)的指定地址范围数据的修改。将该脚本集成开发环境IDE(CodeWarrior,S32K DS,Davinci,EB Tresos,ETAS…)中,即可自动实现。见图2-1。

图2-1

Modification_HEX_File.bat摘录:

@echo off

Rem Path to the executable exe of the Vector HexView tool on your PC
set "HexViewPath=D:\Modification_Hex\HexView\hexview.exe"

Rem Modified source file Input_Hex_File
set "Input_Hex_File=D:\Modification_Hex\Application.hex"

Rem  Delete Output_Hex_File files in a specific address range
set "Output_Hex_1_File=D:\Modification_Hex\Application_1_Copy.hex"

Rem  Modify Output_Hex_File files in a specific address range
set "Output_Hex_2_File=D:\Modification_Hex\Application_2_Copy.hex"

Rem Call the command line provided by the HexView tool to get the new Output_Hex_1_File file.
%HexViewPath% %Input_Hex_File% /CR:0x9110-0x9113 /XI:32 /s -o %Output_Hex_1_File%

Rem Call the command line provided by the HexView tool to get the new Output_Hex_2_File file.
%HexViewPath% %Output_Hex_1_File% /FR:0x9110-0x9113 /FP:0xAA,0xBB,0xCC,0xDD /XI:32 /s -o %Output_Hex_2_File%

 

运行该批处理Modification_HEX_File.bat,即可得到修改指定地址范围数据后的Application_2_Copy文件。

:2091000058595A5B5C5D5E5F6061626364656667AABBCCDD6C6D6E6F7071727374757677F7
:2091200078797A7B7C7D7E7F808182838485868788898A8B8C8D8E8F90919293949596973F
:2091400098999A9B9C9D9E9FA0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B71F
:20916000B8B9BABBBCBDBEBFC0C1C2C3C4C5C6C7C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7FF
:20918000D8D9DADBDCDDDEDFE0E1E2E3E4E5E6E7E8E9EAEBECEDEEEFF0F1F2F3F4F5F6F7DF
:2091A000F8F9FAFBFCFDFEFF000102030405060708090A0B0C0D0E0F1011121314151617BF
:2091C00018191A1B1C1D1E1F202122232425262728292A2B2C2D2E2F30313233343536379F
:0891E00038393A3B3C3D3E3FAB
:00000001FF

 

2.2 “手动”完成修改

打开Vector Hexview工具,找到需要修改的地址所在行,并鼠标双击;

在弹出的Edit record data对话框中,修改指定地址范围内的数据,并单击OK;

修改后的效果,见下图。

3 Command line命令行说明

/CR:’range1’:’range2’:… 从加载的文件中,删除数据范围

参数选项/CR是用来从加载的数据文件中删除一个范围。它删除指定范围内的任何数据。可以指定一个以上的范围。每个范围必须用冒号':'分开。

例如:

/CR:0x1000,0x200

如果0x1000-0x11FF范围内的数据段存在,该数据将被从文件中删除。所有连续的操作将对不包括这部分的数据进行操作。所有其他部分保持不变。如果这部分位于一个段或块内,它将被分成两部分。

/CR:0x7000-0x7FFF

如果存在的话,这将删除从0x7000到0x7FFF的数据。

/FR:’range1’:’range2’:… 1         填充区域

该选项用于创建和填充内存区域。如果没有提供/FP参数,HexView将创建随机数据来填充块或区域。否则,将重复使用/FP参数所给的值。填充操作不涉及现有数据。因此,它甚至可以用来填充段之间的数据。范围可以由它的开始和长度指定,用逗号隔开,或者由开始和结束地址指定,用减号隔开(例如:/FR:0x1000,0x200:0x2000-0x2FFF)。

/FP:11223344   以十六进制为单位的填充模式。由/FR参数使用。

这个选项可以用来指定一个被用于填充区域的填充模式。这个选项只在与/FR参数结合时有用。/FP的参数是一个列表(见/FR选项)。该参数将作为十六进制格式的数据流被踩踏。

命令行摘自“ReferenceManual_HexView.pdf”文件。

结尾

获取更多“汽车电子资讯”和“工具链使用”,

请关注CSDN博客“汽车电子助手”,做您的好助手。

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

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

相关文章

C++ STL之 list 基础

文章目录 前言STL之list基础知识1. list的介绍2. list的使用2.1 list的构造2.2 list iterator的使用2.3 空间相关2.4 元素访问2.5 相关函数2.6 list的迭代器失效 3. list与vector的对比 后记 前言 本篇将学习 list 的基础知识 🕺作者: 迷茫的启明星 专栏…

网络安全从业人员职业发展和规划

1、为什么做这次分享? 2、人生周期三模型 3、职业生涯阶段划分 4、通用职业发展路径 5、当前安全行业前景如何? 6、安全就业行情如何? 7、安全行业就业市场岗位划分 8、什么是相对比较好的履历? 9、选择甲方还是选择乙方&#xf…

Prompt learning 教学[技巧篇]:通过增加示例、引导词、特殊符号指令等方式让chatgpt输出更好的答案

Prompt learning 教学[技巧篇]:通过增加示例、引导词、特殊符号指令等方式让chatgpt输出更好的答案 技巧1:To Do and Not To Do 在问答场景里,为了让 AI 回答更加准确,一般会在问题里加条件。比如让 AI 推荐一部电影给你 Recomme…

【高数+复变函数】傅里叶变换

文章目录 【高数复变函数】傅里叶变换3 傅里叶变换3.1 基本概念3.2 单位脉冲函数及其傅里叶变换3.3 非周期函数的频谱 上一节 【高数复变函数】傅里叶积分 【高数复变函数】傅里叶变换 3 傅里叶变换 3.1 基本概念 回顾:上一节中的Fourier积分公式 f ( t ) 1 2…

前端二进制流的关系

Blob 全称:binary large object,二进制大对象,是一个js对象,可以用来存储大量二进制编码格式的数据,Blob对象是不可修改的,读取内容的唯一方法是FileReader。 创建一个Blob对象: new Blob(ar…

SSM(Vue3+ElementPlus+Axios+SSM前后端分离)--后端实现

目录 SSM(Vue3ElementPlusAxiosSSM前后端分离)--后端实现 技术栈 实现功能04-添加家居信息 需求分析/图解 思路分析 代码实现 创建\service\FurnService.java 和\service\FurnServiceImpl.java, 增加添加方法 修改Furn.java , 当创建Furn 对象imgPath 为null 时, imgPa…

Java14-常用类:字符串,日期类,比较器

一:字符串:String 1.概述: String:字符串,使用一对""引起来表示。 1.String 声明 为final的,不可被继承 2.String 实现了Serializable接口:表示字符串是支持序列化的。 实现了Co…

多线程相关高频面试题

一、线程的基础知识 1、线程和进程的区别? 进程是正在运行程序的实例,进程中包含了线程,每个线程执行不同的任务。不同的进程使用不同的内存空间,在当前进程下的所有线程可以共享内存空间。线程更轻量,线程上下文切换…

GPIO口输出与输入模式的理解

问题?看GPIO的结构图,发现: 上拉输入电流是从引脚流入外部 下来输入电流是从引脚流进芯片内部 推挽输出推模式电流是从引脚流入外部 推挽输出挽模式电流是从外部流入内部 输入输出模式都有电流流入流出,为什么还要分为输入输出模…

K8s排错之浏览器打不开K8s Dashboard

一、问题 10.0.0.10 通常会使用加密技术来保护您的信息。Chrome 此次尝试连接到 10.0.0.10 时,该网站发回了异常的错误凭据。这可能是因为有攻击者在试图冒充 10.0.0.10,或者 Wi-Fi 登录屏幕中断了此次连接。请放心,您的信息仍然是安全的&am…

【饿了么UI】elementUI密码框图标实现睁眼和闭眼效果(阿里巴巴iconfront图标库vue项目本地引用)

elementUI中输入框的密码框属性, 默认是一个始终睁眼的图标,测试今天提bug要有闭眼效果(无大语)… 因为elementUI中的icon没有闭眼的,所以还要去iconfront下载引入 效果图: 点击后 一、下载图标 http…

【LeetCode】138. 复制带随机指针的链表

题目链接:https://leetcode.cn/problems/copy-list-with-random-pointer/description/ 📕题目要求: 给你一个长度为 n 的链表,每个节点包含一个额外增加的随机指针 random ,该指针可以指向链表中的任何节点或空节点。…

基于springboot+mybatis-puls+mysql+html实现大学生创新创业管理系统

基于springbootmybatis-pulsmysqlhtml实现大学生创新创业管理系统 一、系统介绍1、系统主要功能:2.涉及技术框架:3.本项目所用环境: 二、功能展示三、其它系统四、获取源码 一、系统介绍 1、系统主要功能: 学生:申报…

自更新参数web接口预热工具

痛点 日常上线流程中经常需要对接口进行预热,因为服务器每次启动后都有一定次数访问失败,如果不处理将此请求直接抛出,会降低用户体验。当服务器数量较少时,我们可以在发布机器后,待机器启动使用本地hosts更改IP&…

20230510MTCNN3

MTCNN数据制作 - 1 多任务 分类任务 回归任务 模型增加任务,其实就是增加输出 级联即减少了 数据量,又增加了 模型的精度 级联可以让网络变得越快 越好 单独来看这三个网络,它们的效果不会好,因为网络太浅了 但,当…

【嵌入式烧录刷写文件】-1.3-删除/修改Motorola S-record(S19/SREC/mot/SX)文件中指定地址范围内的数据

案例背景(共6页精讲): 有如下一段S19文件,如何“自动”地完成地址范围0x9110-0x9113数据的删除或修改。 S0110000486578766965772056312E30352EA6 S123910058595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F70717273747576775B…

t检验前世今生

1、背景 t检验是科研中非常常用的一种方法和手段,但是理解到位的人并不多,虽然这也不影响其使用。本文主要目的在于将与t检验有关的前前后后都讲明白。 2、补充知识 理解t检验,我们需要补充一些统计学有关的先验知识。 2.1 正态分布 概率…

【文本三剑客】SED

SED 一、sed编辑器1.2sed简介1.3sed工作流程1.4sed命令格式1.5常用选项1.6常用操作 二、sed实验2.1打印内容2.2删除行2.3替换2.4插入 一、sed编辑器 1.2sed简介 sed是一种流编辑器,流编辑器会在编辑器处理数据之前基于预先提供的一组规则来编辑数据流。sed编辑器可…

链表详解 - C语言描述

目录 认识链表 链表的分类 链表的实现 单链表的增删查改 增操作 删操作 查操作 改操作 带头双向循环链表 认识链表 链表是一种物理存储上非连续,数据元素的逻辑顺序通过链表中的指针链接次序,实现的一种线性存储结构。链表由一系列节点(结点)组…

最火爆ChatGPT知识星球分享,开启与GPT的神奇之旅

今天给大家介绍的是一个讲解ChatGPt的知识星球,这个星球是专门为ChatGPT爱好者和AI绘画感兴趣的朋友们打造的。这个知识星球主题是关于ChatGPT的,旨在提供一个交流、学习和探索GPT的平台。 这里有一个强大的阵容,汇集了许多对人工智能和自然…