【嵌入式烧录/刷写文件】-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博客“汽车电子助手”,做您的好助手。

  • 5
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

汽车电子助手

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值