This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] F29H85X-FPI-EVM SOM:F29 链接器生成并更新空段以进行编译后处理段更新。

Guru**** 2551110 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1539367/f29h85x-som-evm-f29-linker-generate-and-update-empty-sections-for-postbuild-section-update

器件型号:F29H85X-EVM-EVM SOM


工具/软件:

尊敬的专家:

我正在尝试使用设定的地址创建一个空段、可以使用另一个构建工程中的二进制映像来更新该段。 到目前为止、这是我在链接器脚本中指定的内容

SECTIONS
{
    ...
    
    cpu1_app      : {} fill(0) > 0x10018000,  type=COPY, START(app1EntryAddr)
}

它会生成一个具有设置地址的空段:

在 CCS 中的编译后步骤中、我使用 c29objcopy 通过以下方式使用自定义应用程序映像更新该段:

${CG_TOOL_OBJCOPY} --update-section cpu1_app=../../cpu1_firmware.bin ${ProjName}.out ${ProjName}_firmware.out

大部分结果都是我预期的结果(将 CPU1_APP 段替换为具有偏移量和地址的实部)

但是、当我想将.out 映像转换为二进制文件时、每次发生一次失败:

似乎是在抱怨 elf 格式。 这种故障只会随机出现。

(请注意,我没有将任何代码/变量填充到此 CPU1_APP。 当 c29objcopy 更新时,我依靠 fill(0) 绕过该部分中的大小检查)

对于如何解决这个问题、有什么建议吗? 或者、请推荐给我生成和更新空段的最佳方法。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Sen:

    是否仍需要输入相关信息?

    此致、

    Anand