【车载开发系列】HexView文件合并

【车载开发系列】HexView文件合并

【车载开发系列】HexView文件合并

  • 【车载开发系列】HexView文件合并
    • 一. 合并文件目的
    • 二. 地址范围说明
      • 1)Bootloader地址范围
      • 2)应用程序地址范围
      • 3)其它数据的地址范围
    • 三. 批处理合并
      • 1)/S 命令
      • 2)/MT:file1[;offset][:range1][+file2][;offset][:range1]命令
      • 3)/XS[:reclinelen[:rectype]]命令
      • 3)/FA 命令
      • 4)/Af:xx: 命令

一. 合并文件目的

我们经常需要将Bootloader程序和Application应用程序合并到同一个S19文件中,这样可以简化整个软件/固件的刷写/升级过程。
Bootloader是一个特殊的程序,其主要功能是用来引导应用程序的运行。在实际的应用中,我们经常需要对应用程序进行刷写/升级,而刷写/升级过程需要将新的应用程序下载到设备中。如果应用程序和Bootloader分别存储在不同的文件中,那么在刷写/升级过程中就需要分别下载这两个文件,并且还需要确保这两个文件的版本是兼容的,否则可能会导致设备无法正常工作。
因此,将Bootloader和应用程序合并到同一个文件中可以简化软件/固件刷写/升级的过程,减少用户的操作复杂度。在刷写/升级过程中,我们只需要下载一个文件,就可以完成整个软件/固件的刷写/升级。另外,在合并的过程中,我们可以使用一些特殊的技术,比如加密、校验和等,来保证软件/固件的安全性。

二. 地址范围说明

当将Bootloader和应用程序合并到同一个文件时,需要确定它们在文件中的地址范围。一般来说,Bootloader和应用程序需要存储在不同的地址范围内,以便在固件启动时正确加载它们。

1)Bootloader地址范围

Bootloader一般存储在起始地址处,通常是0x00000000开始的连续地址范围。举个例子,Bootloader地址范围可以是:0x00000000 - 0x00007FFF。这样BOOT程序的大小可以是32KB。

2)应用程序地址范围

应用程序一般存储在Bootloader之后的地址范围内,通常是0x00008000开始的连续地址范围。它占用的地址范围可以是0x00008000 - 0x0003FFFF,这样应用程序的大小为192KB。

3)其它数据的地址范围

一般其他数据地址范围在0x00040000 - 0x0007FFFF之间。在Flash中,我们通常会保留一部分地址范围用于存储其它数据,比如配置信息、用户数据等等。在本示例中,我们保留了32KB的地址范围,用于存储其它数据。
正确的确定Bootloader和应用程序的地址范围是软件/固件设计中非常重要的一部分,它不仅关系到固件的安全性和可靠性,还关系到固件的性能和扩展性。

三. 批处理合并

对两个S19文件特定地址范围进行合并
如何你想对两个S19文件特定地址范围进行合并,可将批处理最后一段改写如下。
基于批处理Bat调用HexView工具提供的Command line,通过该脚本来实现两个S19文件的合并。将该脚本集成开发环境IDE(CodeWarrior,S32K DS,Davinci,EB Tresos,ETAS…)中,即可自动实现S19文件的合并。

%HexViewPath% /S /MT:%Input_S19_File1%;0x0:0x9000-0x90E8+%Input_S19_File2%;0x0:0x9100-0x91E7 /XS:32 -o %Output_S19_File%

1)/S 命令

该选项用于抑制对GUI的任何输出,在无声模式下运行HexView。在执行了命令行选项中给出的所有命令后,HexView将被关闭。

2)/MT:file1[;offset][:range1][+file2][;offset][:range1]命令

一个或多个文件以透明模式合并到memory中(现有数据不被覆盖)。可选的offset将应用于被合并的文件的所有地址。

3)/XS[:reclinelen[:rectype]]命令

以Motorola S-Record格式导出。Reclinelen表示Data段的长度。

3)/FA 命令

创建一个单一的区域文件(填写所有)。这个选项可以用来创建一个单块文件。在这种情况下,HexView将使用第一个区块的起始地址和最后一个区块的结束地址。

4)/Af:xx: 命令

指定填充字符,但xx可以指定为十进制(无后缀)、十六进制值(0x-后缀)或二进制(b-后缀)。

你可能感兴趣的:(车载开发,软件工程,系统架构,网络)