【嵌入式烧录/刷写文件】-2.4-移动Intel Hex中指定地址范围内的数据

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

有如下一段Hex文件,将源地址范围0x9100-0x9104中数据,移动至一个“空的未填充的目标地址范围0xA000-0xA004。

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

注意如果目标地址存在数据,此法不适用。

目录

1 使用Vector HexView工具“移动”Hex文件指定地址范围数据

1.1 “自动”完成移动

1.2 “手动”完成移动

2 Command line命令行说明

结尾


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

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

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

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

1 使用Vector HexView工具“移动”Hex文件指定地址范围数据

1.1 “自动”完成移动

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

图1-1

Remap_Hex_File.bat摘录:

@echo off

Rem Path to the executable exe of the Vector HexView tool on your PC

set "HexViewPath=D:\Remap_Hex\HexView\hexview.exe"

Rem Input_Hex_File is a source file

set "Input_Hex_File=D:\Remap_Hex\Application.hex"

Rem Output_Hex_File is an output file

set "Output_Hex_File=D:\Remap_Hex\Output.hex"

Rem Move the data in the source address range to an "empty, unpopulated" destination address range

%HexViewPath% /S %Input_Hex_File% /remap:0x9100-0x9104,0xA000,0x5,0x10000 /XI:32 -o %Output_Hex_File%

运行该批处理Remap_Hex_File.bat,即可得到移动指定地址范围数据后的Output.hex文件。

:209105005D5E5F606162636465666768696A6B6C6D6E6F707172737475767778797A7B7CBA
:209125007D7E7F808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9A
:209145009D9E9FA0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBC7A
:20916500BDBEBFC0C1C2C3C4C5C6C7C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDC5A
:20918500DDDEDFE0E1E2E3E4E5E6E7E8E9EAEBECEDEEEFF0F1F2F3F4F5F6F7F8F9FAFBFC3A
:2091A500FDFEFF000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1A
:2091C5001D1E1F202122232425262728292A2B2C2D2E2F303132333435363738393A3B3CFA
:0391E5003D3E3FCD
:05A0000058595A5B5C99
:00000001FF

1.2 “手动”完成移动

打开Vector Hexview工具打开Hex文件,在菜单栏中依次选择Edit -- > General ramapping

在弹出的Remap address rangs对话框中:

Address range where bank remapping shall be applied to:表示目标地址范围;

Single bank size:表示源地址范围内,需要移动的长度;

Offset between banks:默认0x10000;

Linear base address:目标地址的起始地址。

移动后的效果,见下图。

2 Command line命令行说明

/remap:BankStartAddress-BankEndAddress,LinearBaseAddress,BankSize,BankIncrement

这个选项的目的是用于使用内存库寻址方案的控制器。该选项从物理库的寻址计算到线性寻址方案。

BankStartAddress:表示源地址范围的起始地址;

BankEndAddress:表示源地址范围的起始地址;

LinearBaseAddress:表示目标地址范围的起始地址;

BankSize:表示源地址范围内,需要移动的长度;

BankIncrement:BankIncrement是两个bank之间的地址差,例如,1号bank的BankStartAddress和2号bank的BankStartAddress之间的差异。暂默认0x10000

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

结尾

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

汽车电子助手

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

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

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

打赏作者

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

抵扣说明:

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

余额充值