我的嵌入式项目有一个后处理步骤,用闪存的(某些部分)的CRC替换可执行文件中的值。这一步只能在链接之后完成,因为这是CRC映像的第一次机会。在过去,文件格式是COFF,并且我创建了一个自定义工具来完成修补。简单修改elf文件的工具?
开发工具已经切换到ELF,所以我需要重新实现CRC修补程序。在我做之前,我想我会寻找一个现有的工具来做到这一点。编译器基于gcc,但我看不到可以完成这项工作的任何组合ld
和nm
和readelf
。谷歌搜索尚未取得丰硕成果。
我现在的工具使用nm
找到要打补丁的地址,并用地址,期望值(以防止覆盖错误的数据)和新的CRC值调用修补程序。 CRC是根据可执行文件的“十六进制”格式计算的(我也打补丁),幸运的是我不必重做那部分。
我可以实现这与libelf
和自定义代码再次,但在我之前,它已经存在?
有没有更好的方法来完成我的目标,即将可执行文件的CRC放入可执行文件中,以便可用于应用程序?
这是一个很棒的建议,+1。我会试一试。 – 2010-10-02 01:15:52