【嵌入式烧录/刷写文件】-2.7-将一个文本文件转换为Intel hex文件

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

有如下两个文本文件*.txt*.ini*.asc…)转换为Intel hex文件。常用于Key密钥signature签名…的导入,或对一段数据计算出hex记录的最后一个字节的校验值,接着与对应的Hex文件合并

注意:该/IA命令行会提取文本文件中,0~F(十六进制)的ASCII字符(并过滤其它特殊字符)进行拼接

目录

1 使用Vector HexView工具将文本文件“转换”为Hex文件

1.1 “自动”完成移动

1.2 “手动”完成移动

1.3 Command line命令行说明

结尾


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

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

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

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

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.hexOutput_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博客“汽车电子助手”,做您的好助手。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
此为V0.5.3版,修改部分界面。 0.5.3:修改图标,部分界面。 0.5.2: About 界面修改,添加更新网址。 0.5.1:修正块另存时新建文件保存失败的Bug。 0.5:新增文件内、文件间块移动、复制、交换、另存等功能 0.4:新增转换为二进制后比较功能 本人继MCUTool以后的另外一个单片机开发实用工具软件,用于单片机调试过程中简单的参量修改,省略修改源代码、再编译的过程,直接修改目标文件。尤其是对eeprom数据的修改、调整更为方便实用。 本软件编写的目的是用来编辑存放于单片机 Flash 或 EEPROM 中的数据,支持 Intel Hex 格式以及 Motorola S 格式的数据文件,也可以编辑二进制的内存映射文件。数据的编辑可以通过常量定义的方式,也可以通过内存映射的方式进行。 同时可以在两种16进制格式文件之间相互转换。格式转换以行数据为单位,以确保转换前后数据不会改变。 另外提供十进制、十六进制转换器,转换结果可以作为普通显示或作为内存映射,作内存映射时可以选择多字节数据的存储方式。 二进制比较功能,通过不同工具生成的Hex文件可能因为格式而无法进行文本方式比较,本工具可以首先转换为二进制数据再进行比较,免去自行转换的麻烦。 单文件内/双文件间的块操作,包括复制、移动、交换、另存等等,方便实验数据提取、复制。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

汽车电子助手

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

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

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

打赏作者

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

抵扣说明:

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

余额充值