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.

[参考译文] CODECOMPOSER:变量扩展中的路径分隔符

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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/1362347/codecomposer-path-delimiters-in-variable-expansion

器件型号:CODECOMPOSER

我有 POST 构建步骤来创建一个一直在工作的二进制文件、直到我将工作区更新为 CCS12.7.1。
我注意到、执行 post-build 步骤时、扩展后的路径使用 Linux 样式定界符、而不是 Windows。
查看路径变量 CCS_INSTALL_ROOT 和 CG_TOOL_ROOT、这两个变量看起来都像 Windows 格式、但当它在命令中扩展后、它会扩展为 Linux 格式、因此编译后步骤会失败。
我可以对路径进行硬编码、这样就可以正常工作、但我更愿意使用路径变量、以便将来能够继续更新。
如何解决此问题?

以下是编译后处理步骤:
${CCS_INSTALL_ROOT}\UTILS\tiobj2bin\tiobj2binfill ${BuildArtFileName}${BuildArtistactFileName}.bin ${CG_TOOL_ROOT}\bin\ofd2000 ${CG_TOOL_ROOT}\bin\hex2000 ${CCS_INSTALL_ROOT}\utils\tiobj2bin;

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

    您好!

    我认为您遇到的问题与下面的主题中提到的相同:

    https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1197688/tms320f280039c-post-build-failed-in-ccs12-2

    谢谢

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

    Ki:

    感谢链接。
    我应该已经添加了有关对路径进行硬编码的详细信息。
    这是我得到的错误,它与你所链接的文章中的什么,除了我使用的 C 驱动器.

    我的构建后步骤
    ${CCS_INSTALL_ROOT}\UTILS\tiobj2bin\tiobj2binfill ${BuildArtFileName}${BuildArtistactFileName}.bin ${CG_TOOL_ROOT}\bin\ofd2000 ${CG_TOOL_ROOT}\bin\hex2000 ${CCS_INSTALL_ROOT}\utils\tiobj2bin;

    控制台中的结果
    C:/ti/ccs1271/ccs utils\tiobj2bin\tiobj2binfill MbcDualCoreCpu2.out MbcDualCoreCpu2.bin C:/ti/ti-cgt-c2000_18.12.8.LTS \bin\ofd2000 C:/ti/ti-cgt-c2000_18.12.8.LTS bin\hex2000 C:/ti/ccs1271/ccs tiobj2bin\mkhex4bin
    'C:'不被识别为内部或外部命令、
    可操作的程序或批处理文件。

    请注意、路径变量已使用 Linux/Mac 样式定界符进行扩展。

    如果我在命令行上运行同样的操作、则会得到:

    C:/ti/ccs1271/ccs utils\tiobj2bin\tiobj2binfill MbcDualCoreCpu2.out MbcDualCoreCpu2.bin C:/ti/ti-cgt-c2000_18.12.8.LTS \bin\ofd2000 C:/ti/ti-cgt-c2000_18.12.8.LTS bin\hex2000 C:/ti/ccs1271/ccs tiobj2bin\mkhex4bin
    'C:'不被识别为内部或外部命令、
    可操作的程序或批处理文件。

    如果我运行带有中纠正的路径分隔符的命令成功:

    C:\ti\ccs1271\ccs\utils\tiobj2bin\tiobj2binfill MbcDualCoreCpu2.out MbcDualCoreCpu2.bin C:\ti\ti\ct-c2000_18.12.8.Ts\bin\ofd2000 C:\ti\ti\ct-C2000_18.12.8.Ts\bin\hex2000 C:\ti\ccxexbin\cc2bin\ccs\chexbin\chexbin\ccs\hexbin\ccs1271\chexbin\ccs6\fd2000 C:

    此外、如果我将编译后处理步骤替换为:

    C:\ti\ccs1271\ccs\utils\tiobj2bin\tiobj2binfill MbcDualCoreCpu2.out MbcDualCoreCpu2.bin C:\ti\ti\ct-c2000_18.12.8.Ts\bin\ofd2000 C:\ti\ti\ct-C2000_18.12.8.Ts\bin\hex2000 C:\ti\cc2000_18.j2bin\chexbin\ccs1271;

    它将成功并正确创建二进制文件。

    我认为我的问题与批处理文件无关、我认为这与 CCS 错误地扩展路径变量有关。

    谢谢 John

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

    在这篇文章中、Mark 提到的批处理文件中包含了正确的修复方法:

    https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1197688/tms320f280039c-post-build-failed-in-ccs12-2/4549961#4549961

    当我按照 Mark 的建议在 bat 文件的109中拆分这一行时、它就像预期的那样工作。