案例背景(共5页精讲):
有如下两个文本文件(*.txt,*.ini,*.asc…)转换为Intel hex文件。常用于Key密钥,signature签名…的导入,或对一段数据计算出hex记录的最后一个字节的校验值,接着与对应的Hex文件合并。
注意:该/IA命令行会提取文本文件中,0~F(十六进制)的ASCII字符(并过滤其它特殊字符)进行拼接。
目录
1 使用Vector HexView工具将文本文件“转换”为Hex文件
优质博文推荐阅读(单击下方链接,即可跳转):
1 使用Vector HexView工具将文本文件“转换”为Hex文件
1.1 “自动”完成移动
基于批处理Bat(如下图中的Import_data.bat)调用HexView工具提供的Command line,通过该脚本来实现文本文件(*.txt,*.ini,*.asc…)文件转换为Hex文件。将该脚本集成开发环境IDE(CodeWarrior,S32K DS,Davinci,EB Tresos,ETAS…)中,即可自动实现。见图1-1。
图1-1
Import_Decimal_data.txt文件内容摘录:
23456789
Import_HEX_ASCII_data.txt文件内容摘录:
0x12, 0x23, 0x34
Import_data.bat摘录:
@echo off
Rem Path to the executable exe of the Vector HexView tool on your PC
set "HexViewPath=D:\Import_HEX_ASCII_data\HexView\hexview.exe"
Rem Input HEX-ASCII data file Input_Text_File path
set "Input_Text_Decimal_File=D:\Import_HEX_ASCII_data\Import_Decimal_data.txt"
set "Input_Text_HEX_ASCII_File=D:\Import_HEX_ASCII_data\Import_HEX_ASCII_data.txt"
Rem Output HEX-ASCII data corresponding to the Hex file Output_Hex_File
set "Output_Hex_1_File=D:\Import_HEX_ASCII_data\Output_Decimal_Hex.hex"
set "Output_Hex_2_File=D:\Import_HEX_ASCII_data\Output_HEX_ASCII_Hex.hex"
Rem Define the starting address of HEX-ASCII data
Rem Note that Set cannot use double quotes here
Set Start_Address=0x9000
Rem Call the command line provided by the HexView tool to convert HEX-ASCII data files to Hex files
%HexViewPath% /S /IA:%Input_Text_Decimal_File%;%Start_Address% /XI:32:0 -o %Output_Hex_1_File%
%HexViewPath% /S /IA:%Input_Text_HEX_ASCII_File%;%Start_Address% /XI:32:0 -o %Output_Hex_2_File%
运行该批处理Import_data.bat,即可得到转换后的Output_Decimal_Hex.hex和Output_HEX_ASCII_ Hex. hex文件。
1.2 “手动”完成移动
打开Vector Hexview工具,在菜单栏中依次选择File -- > Import -- > Import Hex-ASCII;
在弹出的Select file for HEX-ASCII import对话框,找到对应路径下的文本文件,并打开;
此时您会看到这个文件的起始地址是0;
参考博文“【嵌入式烧录/刷写文件】-2.4-移动Intel hex中指定地址范围内的数据https://blog.csdn.net/qfmzhu/article/details/130764554”,将起始地址移动至0x9000;
接着菜单栏中依次选择File -- > Export -- > Export as S-Record,在弹出的Setup SREC-Export对话框,输入hex文件类型,记录的长度,以及输出文件的路径和名称;
1.3 Command line命令行说明
/IA=filename[;startAddress] 从文件中读取Hex数据。Startaddress指定块的地址。不能在文件内组合。
该选项用于指示 Hexview 将 HEX-ASCII 数据值读入内部数据存储器。由于不能自动检测到 HEX-ASCII 文件,所以不能作为正常的输入文件读入。然而,如果你想使用这个选项,就不能在读入普通的HEX文件的同时也想读入HEX-ASCII数据。
命令行摘自“ReferenceManual_HexView.pdf”文件。
结尾
获取更多“汽车电子资讯”和“工具链使用”,
请关注CSDN博客“汽车电子助手”,做您的好助手。