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

案例背景(共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博客“汽车电子助手”,做您的好助手。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

一觉醒来Chat gpt就被淘汰了

目录 什么是Auto GPT? 与其他语言生成模型相比,Auto GPT具有以下优点 Auto GPT的能力 Auto GPT的能力非常强大,它可以应用于各种文本生成场景,包括但不限于以下几个方面 Auto GPT的历史 马斯克说:“ChatGPT 好得吓…

记csdn打不开或打开缓慢后的修复--如何查找dns并修改hosts文件

记csdn打开缓慢后的修复–如何查找dns并修改hosts文件 问题: CSDN文章打开的十分缓慢,经常出现无法打开页面的错误提示 (以前用的好好的,现在不知道公司局域网改了什么东西,导致我的电脑打开CSDN经常缓慢好久&#x…

Lesson14 高级IO

前言 IO 等待 数据拷贝,比如read/recv,write/send只要在单位事件里,让等的比重减低,IO的效率就越高 五种IO模型 钓鱼小案例 阻塞式 阻塞式: 张三拿着一根鱼竿,一直在岸边钓鱼,期间一直盯着鱼竿,等待鱼上钩 非阻塞式轮询式 非阻塞式轮询式: 李四拿着一根鱼竿,在岸边钓鱼,期…

Linux共享库、动态库详解

目录 一.静态库 二.动态库 三.静态库的制作与使用 四.动态库的制作与使用 在日常编程中我们不想让别人看到我们写的源码,但还需要发给对方使用,在这种情况下我们引入了静态库动态库,让对方用调库的方式也可以实现我们写的代码的功能&…

Android电源管理介绍

一、电源管理基础知识 1.1电源管理的几种状态 Android kernel源码中,定义了三种电源状态,在kernel/power/suspend.c中: 对应的宏定义/include/linux/suspend.h 1.2 电源管理状态的介绍: PM_SUSPEND_ON 设备处于正常工作状态 …

vue2 框架运行原理剖析系列(一)之 new Vue()实例化过程到底做了什么!!!

一、vue 基础用法 1.1 引入vue 1.2 使用vue语法编写ui 1.3 实现数据绑定 示例代码如下 <div id"app">{{ message }} </div> <script> var app new Vue({el: #app,data: {message: Hello Vue!} }) </script>1.4 代码效果&#xff1a;使用浏…

Nessus 10.5 Auto Install for macOS Ventura(自动化安装 Nessus 试用版)

发布 Nessus 试用版自动化安装程序&#xff0c;支持 macOS Ventura、RHEL 9 和 Ubuntu 22.04 请访问原文链接&#xff1a;https://sysin.org/blog/nessus-auto-install-for-macos/&#xff0c;查看最新版。原创作品&#xff0c;转载请保留出处。 作者主页&#xff1a;sysin.o…

js实现产品页点击小图在大图区显示

企业网站产品图片可能会比较多&#xff0c;需要在产品页面多放几张展示图片&#xff0c;我们可以使用一张大图几张小图的形式排列&#xff0c;并使用js代码实现点击小图显示大图。效果如下所示 html代码部分&#xff1a; <div class"img_bd"> <img src"…

linux0.12-8-7-signal.c

[334页] (-:这一小节很难理解。但我基本都理解了&#xff0c;哈哈。 1、为什么signal不可靠&#xff0c;而sigaction可靠&#xff1b; 2、 为什么系统调用会被打断&#xff1f; 3、 sys_signal&#xff0c;sys_sigaction&#xff0c;函数作用&#xff1f; 4、 do_signal&#x…

IDEA中java文件出现黄色的J文件同时maven项目导入了依赖但是idea依赖加不进去的问题记录

IDEA导入项目后依赖jar包没有显示 报错提示尝试的解决方法检查对应的sdkmodule等配置信息开始尝试是不是版本问题&#xff0c;因为对上述maven报错进行查询&#xff0c;好像是因为版本太高导致的&#xff0c;开始下一个低版本进行尝试切换版本即可解决 总结后续出现的BUG 此次环…

【C++的类与对象(下)】

目录 一、细说构造函数1.1初始化列表的引入1.2初始化列表1.2关键字explicit 二、static成员2.1static成员的特性2.2题目&#xff1a;实现一个类&#xff0c;计算程序中创建出了多少个类对象2.3题目&#xff1a;设计一个类 只能再栈上或者堆上创建 一、细说构造函数 1.1初始化列…

buuctf8

目录 crypto 摩丝 password 变异凯撒 Quoted-printable Rabbit web [护网杯 2018]easy_tornado [HCTF 2018]admin misc 被劫持的神秘礼物​编辑 crypto 摩丝 下载文件&#xff0c;得到一串摩斯密码 在线解码 password 下载文件 张三英文zs&#xff0c;加上生日&a…

【语义分割】标注工具ISAT with segment anything介绍

every blog every motto: You can do more than you think. https://blog.csdn.net/weixin_39190382?typeblog 0. 前言 极速分割标注工具 1. 正文 1.1 安装 创建虚拟环境 conda create -n ISAT_with_segment_anything python3.8 conda activate ISAT_with_segment_anyt…

前端011_标签模块_列表功能

标签模块_列表功能 1、需求分析2、Mock添加数据列表模拟接口3、Api调用接口4、列表模版5、分页查询实现1、需求分析 标签模块主要文章标签进行管理,类别和标签的关系是一对多,一个类别下面存在多个标签。 首先开发模块中的列表功能,包含数据列表、分页。 2、Mock添加数据…

记录--前端实现点击选词功能

这里给大家分享我在网上总结出来的一些知识&#xff0c;希望对大家有所帮助 今天有一个需求&#xff0c;点击选中某个英文单词&#xff0c;然后对这个单词做一些处理&#xff0c;例如高亮背景、查看一些详细信息等等&#xff0c;今天简单实现了一下&#xff0c;效果如下&#x…

性能测试的核心原理

性能测试的核心原理 1 基于协议&#xff0c;前后端交互机制&#xff0c;性能核心。基于界面决定和前端用户交互&#xff0c;基于代码决定了后端。 1 网络分布式架构。 2 单机应用&#xff0c;比如安安兔&#xff0c;鲁大师。主要判断io读写&#xff0c;以及对资源的消耗。 2 多…

搭建本地仓库源

一、如何搭建仓库源 之前讲了定制ISO的方法&#xff1a;使用chroot定制系统&#xff0c;但有时候我们想自定义的安装包不在上游的仓库源中&#xff0c;在我们本地应该怎么办呢&#xff1f;如果我们将deb包拷贝到iso目录再安装有点过于麻烦了&#xff0c;而且还可能需要手动处理…

GPT-4的免费使用方法分享

目录 方法1&#xff1a;使用Ora.sh的LLM应用 方法2&#xff1a;使用https://steamship.com 方法3&#xff1a;使用https://nat.dev 方法4&#xff1a;http://tdchat.vip 方法5&#xff1a;使用Poe网站或App 方法6&#xff1a;使用 Opencat App 方法7:使用https://Huggin…

基于git的开发规范总结

文章目录 各分支命名规范gitee基本开发流程及定义gitflow工作流gitflow工作流常用分支主要工作流程命名规则gitflow工作流程图 Git分支开发管理策略主分支Master开发分支DevelopGit创建Develop分支的命令&#xff1a;将Develop分支发布到Master分支的命令&#xff1a; 临时性分…

潍坊这一城市商业综合体有奖征名

云创金谷项目商业购物中心名称及IP形象征集开始啦&#xff01;&#xff01;你有什么好想法&#xff1f;快来参与吧&#xff01;&#xff01; 云创金谷&#xff0c;是奎文区重点打造的城市更新代表力作&#xff0c;位于文化路以东、新华路以西&#xff0c;北宫街以北、卧龙东街以…