案例背景(共5页精讲):
有如下一段S19文件,将源地址范围0x9100-0x9104中数据,移动至一个“空的,未填充的”目标地址范围0xA000-0xA004。
S0110000486578766965772056312E30352EA6
S123910058595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F70717273747576775B
S123912078797A7B7C7D7E7F808182838485868788898A8B8C8D8E8F90919293949596973B
S123914098999A9B9C9D9E9FA0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B71B
S1239160B8B9BABBBCBDBEBFC0C1C2C3C4C5C6C7C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7FB
S1239180D8D9DADBDCDDDEDFE0E1E2E3E4E5E6E7E8E9EAEBECEDEEEFF0F1F2F3F4F5F6F7DB
S12391A0F8F9FAFBFCFDFEFF000102030405060708090A0B0C0D0E0F1011121314151617BB
S12391C018191A1B1C1D1E1F202122232425262728292A2B2C2D2E2F30313233343536379B
S10B91E038393A3B3C3D3E3FA7
S9030000FC
目录
1 使用Vector HexView工具“移动”S19文件指定地址范围数据
优质博文推荐阅读(单击下方链接,即可跳转):
1 使用Vector HexView工具“移动”S19文件指定地址范围数据
1.1 “自动”完成移动
基于批处理Bat(如下图中的Remap_S19_File.bat)调用HexView工具提供的Command line,通过该脚本来实现S19文件(Application.s19)的移动指定地址范围内的数据。将该脚本集成开发环境IDE(CodeWarrior,S32K DS,Davinci,EB Tresos,ETAS…)中,即可自动实现。见图1-1。
图1-1
Remap_S19_File.bat摘录:
@echo off
Rem Path to the executable exe of the Vector HexView tool on your PC
set "HexViewPath=D:\Remap_S19\HexView\hexview.exe"
Rem Input_S19_File is a source file
set "Input_S19_File=D:\Remap_S19\Application.s19"
Rem Output_S19_File is an output file
set "Output_S19_File=D:\Remap_S19\Output.s19"
Rem Move the data in the source address range to an "empty, unpopulated" destination address range
%HexViewPath% /S %Input_S19_File% /remap:0x9100-0x9104,0xA000,0x5,0x10000 /XS:32 -o %Output_S19_File%
运行该批处理Remap_S19_File.bat,即可得到移动指定地址范围数据后的Output.hex文件。
S12391055D5E5F606162636465666768696A6B6C6D6E6F707172737475767778797A7B7CB6
S12391257D7E7F808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C96
S12391459D9E9FA0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBC76
S1239165BDBEBFC0C1C2C3C4C5C6C7C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDC56
S1239185DDDEDFE0E1E2E3E4E5E6E7E8E9EAEBECEDEEEFF0F1F2F3F4F5F6F7F8F9FAFBFC36
S12391A5FDFEFF000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C16
S12391C51D1E1F202122232425262728292A2B2C2D2E2F303132333435363738393A3B3CF6
S10691E53D3E3FC9
S108A00058595A5B5C95
S9030000FC
1.2 “手动”完成移动
打开Vector Hexview工具打开S19文件,在菜单栏中依次选择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博客“汽车电子助手”,做您的好助手。