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.

[参考译文] TMS320F2800137:正确生成二进制文件

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1432793/tms320f2800137-properly-generating-a-binary-file

器件型号:TMS320F2800137

工具与软件:

大家好!

我有点困惑。


我在论坛上看到、EABI 编译的项目不支持 tiobj2bin。 但是、在编译为 EABI 的 TMS320F2800137的当前工程中、旧版本的 tiobj2bin.bat 正常工作。 其工作方式是生成一个二进制文件、我可以将其刷写并运行。

现在我将为该项目集成 Bitbucket 管道、以便在 Commit 上自动构建该项目。 该功能效果很好。 现在、我一直使用 CCS 12.8中的 utils、这些并不起作用。 出现错误

‘C:'不被识别为内部或外部命令、可操作程序或批处理文件。

现在、我已经阅读了该论坛、看到有两个选项。

在 CCS 中使用 C2000十六进制实用程序。 这可以与-image mode 和 roms 指令结合使用。 该 ROMS 指令可以通过静态开始和结束来生成、但这些指令不会在每次构建时更改。 但是、在这种情况下、会有很多空穴、因为它会转换整个段。 这可以通过拆分这些段来解决。

或者、在文件夹文件中找到开始和结束位置、但每个构建都有这些更改、因此这似乎无法使用。

那么、什么是正确的方法、它无需大量维护、也不会在图像中产生孔洞?

提前感谢。

编辑;

在此页面上、我了解到一个用户使用了第三方工具。 什么是第三方工具?有人能指导我使用它吗? 我看到我们有同样的问题。 我觉得奇怪的是、这并非完全受支持、而且没有变通办法、可以由开箱即用的 Code Composer Studio ...

e2e.ti.com/.../5195270

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

    您好!

    我已将该主题提请编译器专家进行进一步评论。

    谢谢

    Ki  

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

    请查看闪存的实用程序是否接受二进制文件以外的形式输入。  如果是、改为其他格式可能是最佳解决方案。  本文的其余部分假定您需要创建一个二进制文件。

    有关 此情况的最完整描述(包括权变措施)、请参阅 此论坛帖子。  请注意该权变措施有两种变体。  您可以在开发的早期阶段使用第一种变体。  随着开发接近尾声、您可以更改为第二种变体。

    要了解更多关于...

    ‘C:'不被识别为内部或外部命令、可操作程序或批处理文件。

    请查看 此论坛帖子。  

    我读到一位用户使用了第三方工具。 此第三方工具是什么[/QUOT]

    我不知道。  客户从未说过。  我知道有一个名为 srec_cat 的开源工具、它可以在多种十六进制文件格式之间进行转换。  该区域能够将十六进制转换为二进制。

    谢谢。此致、

    -George.

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

    您好、George:

    感谢您的答复。 我将与我开发固件更新工具的同事核实是否可以使用.hex 以及是否有任何缺点(或优点)。

    只是总结一下这个问题为我自己(和其他人读这个)。

    -没有开箱即用的工具 C2000 EABI .out 文件将其转换为二进制(只有.hex 使用 C2000十六进制实用程序)

    -将.out 文件转换为二进制是可能使用 C2000十六进制实用程序在两种方式,这两种方式都有缺点。 或大型二进制文件、或者必须在每次构建时修改文件。

    - srec_cat 可以使用,但不确定...

    现在我想知道... 在不知道不兼容性的情况下、我已经转换了一个使用旧版本 tiobj2bin 的程序、该程序可以正确转换并在 TMS320F2800137上运行。

    如果 tiobj2bin 似乎转换并正常运行、那么它与 EABI 编译的程序不兼容?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [报价 userid="574834" url="~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1432793/tms320f2800137-properly-generating-a-binary-file/5497237 #5497237"]为什么 tiobj2bin 与 EABI 编译的程序不兼容(如果它似乎转换并正常运行)?[/QUOT]

    此论坛帖子的开头 详细说明了旧版本的条件 tiobj2bin 失败。  发生该故障时、没有任何诊断可用于告知发生了该故障。  当程序无法启动或出现类似情况时、故障会在稍后发现。  在这种情况下、 tiobj2bin 已更新、以检测 EABI 和 C2000的问题组合。  当出现该组合时、将发出诊断、并且不输出二进制文件。   

    如果您使用较旧的版本 tiobj2bin 在没有出现问题的 C2000 EABI 构建上、那么它可能会起作用。  但在旧的缺陷 tiobj2bin 仍然存在、随时可能引发问题。

    谢谢。此致、

    -George.

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

    啊、我刚刚阅读了您对另一篇文章中有关"为什么?"的评论。

    如果系统是为 EABI 构建的 C28x、并且至少有一个段具有不同的加载和运行地址、那么此类段的加载地址可能计算错误、这最终会导致二进制文件错误。  在特定情况下、二进制文件从值为0的大量字节开始。  这只是问题本身可能出现的一种方式。

    我的问题已得到解答。 谢谢!