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.

[参考译文] 为 CC2340R5生成 bin 文件时出错?

Guru**** 2532810 points


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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1178674/a-bug-in-generating-bin-file-for-cc2340r5

在 CCS 的"编译后处理步骤"中、我输入以下命令来为固件和 CCFG 生成十六进制文件和 bin 文件。

  ${CG_TOOL_HEX}-order MS --memwidth=8 --romwidth=8 --Intel -o ${ProjName}.hex ${ProjName}.out
  ${CG_TOOL_HEX}-二进制-o ${ProjName}.bin ${ProjName}.out
  ${CG_TOOL_HEX}-exclude .Vecresets --exclude .text --exclude .args --exclude .rodata --exclude .cinit --binary -o ${ProjName}.cfg ${ProjName}.out

当.text 和.rodate 段之间存在差距时、生成的固件 bin 文件(.bin)不正确。 间隙应使用0x00或0xFF 填充、但生成器会将两个段合并在一起、而不会有间隙。 它会导致.text 之后的所有段具有错误的位置。

我认为这是一个错误。 是否有任何其他实用程序可以正确生成.bin 文件?

注意:我 上传.out/.hex/.map/.bin 示例文件失败、这将有助于您快速 重现问题。  请告诉我如何上传文件(超过600KB 的多个文件)。

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

    您好!

    感谢您联系并报告此问题。 我将确保让我们的编译器/工具链专家参与其中。

    同时、我是否可以询问在使用最新版本的工具链时问题是否可重现? 可在以下网址找到: https://www.ti.com/tool/download/ARM-CGT-CLANG

    除此之外、我还想向您介绍该工具的文档、以防您找到我尚未注意到的解决方法: https://software-dl.ti.com/codegen/docs/tiarmclang/compiler_tools_user_guide/compiler_manual/hex_utility_description/index.html

    此致、

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

    我使用 的是 ti-cgt-armllvm_2.1.2.LTS。 我还在 ti-cgt-arm_20.2.7.LTS 中尝试了 armhex.exe、但问题相同。

    作为临时解决方案、我实施了一个 HEX2BIN 实用程序来从 hex 生成 bin 文件。

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

    更好的解决方案是使用 tiarmobjcopy。  将编译后处理步骤更改为...

    "${CG_TOOL_ROOT}/bin/tiarmobjcopy -输出目标二进制文件"${BuildArtiftFileName}""${BuildArtiftFileBaseName}.bin"

    谢谢、此致、

    乔治

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

    使用 tiarmobjcopy 会发生什么情况?

    谢谢、此致、

    乔治

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

    它生成了一个超大的 bin 文件。 但无论如何、谢谢。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="531413" URL"~/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1178674/a-bug-in-generating-bin-file-for-cc2340r5/4439280 #4439280"]它生成了一个超大的 bin 文件。

     这在二进制文件简介一文中进行了解释

    谢谢、此致、

    乔治