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.

[参考译文] TMS320F280037C:使用编译后命令生成 bin 文件时出错

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1330701/tms320f280037c-error-while-generating-bin-file-using-post-build-command

器件型号:TMS320F280037C
主题中讨论的其他器件:UNIFLASH

我尝试使用以下 postbuild 命令生成 bin 文件:

"${CCE_INSTALL_ROOT}/utils/tiobj2bin/tiobj2bin.bat "${BuildArtifactFileName}""${BuildArtifactFileBaseName}.bin""${CG_TOOL_ROOT}/bin/ofd2000.exe "${CG_TOOL_ROOT}/bin/hex2000.exe "${CCE_INSTALL_ROOT}/utils/tiobj2bin/mkhex4bin.exe "

这会导致错误:

"C:" obc_ti_poc.out""obc_ti_poc.bin" C:/ti/ccs1220/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/bin/ofd2000.exe "C:/ti/ccs1220/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/bin/hex2000.exe "C:/ti/ccs1220/ccs/utils/tiobj2bin/mkhex4bin.exe ""C:/ti/ccs1220/ccs/utils/tiobj2bin/tiobj2bin.bat "
Makefile:180:目标"编译后"的食谱失败
'C:'不被识别为内部或外部命令、
可操作的程序或批处理文件。
gmake[2]:[post-build]错误255 (已忽略)

您能帮我找到问题所在并解决这个问题吗?

注意:我对 C2000ware_5_00_00_00使用 eabi 输出格式

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

    尊敬的 Ashwini:

    此问题的相应专家不在办公室、请预计星期二前回复。

    谢谢!

    卢克

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

    尊敬的 Ashwini:

    此问题对于此主题似乎非常简单: https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1197688/tms320f280039c-post-build-failed-in-ccs12-2

    您能否看看此图、以了解您已解决的位置是否正确?

    此致!

    马瑞安

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

    您好、Ryan、

    我已经尝试了主题 https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1197688/tms320f280039c-post-build-failed-in-ccs12-2的最后一个回复中的建议步骤

    即使生成了 bin 文件、控制台中仍然存在错误。

    生成的 bin 文件与使用 TI Uniflash 工具下载的所需文件不匹配。  

    谢谢。

    阿什维尼

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

    尊敬的 Ashwini:

    我将联系一名团队成员、他们可能会提供有关如何解决此问题的更多详细信息。

    此致!

    马瑞安

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我尝试过主题的最后一个回复中的建议步骤

    我不知道您做了什么。  如果您有 tiobj2bin.bat 为了工作,它会发出诊断...

    C28x files built with --abi=eabi are not supported

    ...而不生成二进制文件。   

    若要将 C28x EABI 可执行文件转换为二进制文件、请使用 此论坛帖子中所述的权变措施

    谢谢。此致、

    -乔治

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

    您好、George、

    感谢您仔细阅读我的问题。 您是正确的当前 tiobj2bin.bat 剂量不产生 bin 文件。

    错误:由于生成了哪个 bin 文件、因此启用了十六进制实用程序。

     

    谢谢。  

    阿什维尼

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

    您好、George、

    我已尝试在项目链接器命令文件中添加 ROMS 部分、如下所示:  

    ROM
    {
    allmem:origin:0x106004、length = 0x19FFC

    以及通过构建设置启用的十六进制实用程序:  

    使用以下 post-build 命令:  

    "${CCE_INSTALL_ROOT}/utils/tiobj2bin/tiobj2bin "${BuildArtifactFileName}""${BuildArtifactFileBaseName}.bin""${CG_TOOL_ROOT}/bin/ofd2000 "${CG_TOOL_ROOT}/bin/hex2000 "${CCE_INSTALL_ROOT}/utils/tiobj2bin/mkhex4bin "roms_DION.txt"

    但会出现以下错误:

    如何解决这些错误? 附加所使用的链接器命令文件。

    e2e.ti.com/.../28003x_5F00_app_5F00_generic_5F00_flash_5F00_lnk.zip

    谢谢。  

    阿什维尼

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

    删除 post-build 命令。  十六进制实用程序会创建二进制文件。

    请勿将 ROM 添加了此符号引用。  该命令文件属于单独的命令文件、是十六进制实用程序的输入。  要了解如何配置 CCS 以使十六进   制实用程序获取该单独的命令文件、请在 CCS 中搜索文章 Hex 实用程序、查找标题为"传递十六进制命令文件"的部分。  

    在十六进制实用程序的配置中、删除十六进制实用程序的 -- memwidth --从宽度 。  取决于默认设置。

    谢谢。此致、

    -乔治

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

    您好、George、

    1.删除了构建后命令。

    2.从链接器文件中删除了 ROMS 指令。

    e2e.ti.com/.../1854.28003x_5F00_app_5F00_generic_5F00_flash_5F00_lnk.zip

    3.删除选项  -- memwidth  和  --从宽度

    4.按如下方式传递命令文件:

    5. hex 命令文件是:

     e2e.ti.com/.../hex.zip

    我在控制台中遇到以下错误:

    查询:

    1.如何解决上述错误?

    2.十六进制命令文件是否正确? 如果没有、您能举几个例子来说明应该如何编写。

    请告诉我您需要任何其他详细信息。

    谢谢。

    阿什维尼

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

    十六进制命令文件的内容 hex.cmd 应该是这些行...

    ROMS
    {
    allmem:origin:0x106004、length = 0x19FFC
    }

    没有其他的。

    谢谢。此致、

    -乔治

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

    另一个细节...使用 Hex2000 选项 -图像

    谢谢。此致、

    -乔治

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

    您好、George、

    我已经在十六进制实用程序中启用了映像模式、并按照您的建议编辑了 hex.cmd 文件。

    它提供以下错误:

    谢谢。

    阿什维尼

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

    我很有信心,但不能确定出了什么问题以及如何解决它。  我认为您忽略了 CCS 中十六进制实用程序一文末尾所述的细节

    注意:如果工程目录中有一个扩展名为.cmd 的文件(例如 hex.cmd)、或工程目录中的任何子目录、链接器会认为这是一个链接器命令文件并尝试在链接期间使用它。 这并不是必需的、因为此命令行仅适用于十六进制实用程序。 为避免出现这种情况、请执行以下任一操作:

    • 右键点击相应面板中的 hex.cmd  项目资源管理器  查看和选择  从编译中排除
    • 以不同的扩展名命名文件、并相应地更改上述命令行模式。

    如果这样不能解决问题、则需要从"Console"视图中查看构建日志。   请重新编译整个项目。  一种方法是右键单击项目名称、然后选择 重建项目 。  然后将"Console"(不是"Problems")视图的内容保存到文本文件。  使用名为的图标 复制构建日志 (较早版本的 CCS)或 将构建日志保存到文件 (CCS 的更新版本)。  当您为日志文件命名时、请确保使用文件扩展名 .txt 。  请 在下一篇文章中附加该文本文件。

    谢谢。此致、

    -乔治

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

    您好、George、

    1.除了 hex.cmd 文件外、还有特定于芯片的命令链接器文件。

    当我从工程中排除这个"28003x_app_generic_flash_lnk.cmd 文件并重新编译工程时、收到以下错误消息:

    附加控制台构建日志:  

    e2e.ti.com/.../7245.build_5F00_log.txt

    谢谢。

    阿什维尼

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    当我从项目中排除此"28003x_app_generic_flash_lnk.cmd 文件时

    正确  将这个文件从构建中排除。  而应排除 hex.cmd

    谢谢。此致、

    -乔治

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

    您好、George、

    生成中现在没有错误。 生成的 bin 文件也能正常工作。  

    谢谢!