如何在后编译脚本中将数据注入.bin文件中?

问题描述

目的

我希望我的构建系统生成一个包含以下内容的二进制文件

  • 引导程序
  • 应用程序二进制文件
  • 应用程序标头(用于引导加载程序)

这里是内存布局的一小部分概述(这里没有什么异常之处)

The wanted memory organization

构建系统已经在后编译脚本中连接了引导程序和应用程序。
换句话说,仅缺少标题

问题

在内存中生成并注入应用程序标头的最佳方法是什么?

可能的解决方

  • 仅为标题创建一个.bin文件,然后使用cat将其注入到我的最终二进制文件
  • 使用链接文件对头进行硬编码(可能吗?)
  • 使用脚本读取最终的二进制文件并对标题进行硬编码
  • 其他?

在后编译脚本中将数据注入内存中的最佳解决方案是什么?

解决方法

SRecord是一款出色的工具,可以对用于嵌入式代码图像的二进制文件和其他文件类型进行各种处理。

在这种情况下,给定一个二进制bootheader.bin以在image.bin中的偏移量0x8000处插入:

srec_cat bootheader.bin −binary −offset 0x8000 −o image.bin

该工具有些不可思议,但是documentaton包括许多examples,涵盖了各种常见任务。