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.

[参考译文] MSPM0L1306:将现有项目从 GCC 切换到 TI Clang

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1368092/mspm0l1306-switching-an-existing-project-from-gcc-to-ti-clang

器件型号:MSPM0L1306
主题中讨论的其他器件:SysConfig

工具与软件:

我有一个在 CCS Theia 中使用 MSPM0 SDK 和 GCC 的现有项目。 我想将其切换到使用 TI Clang。 但是、在我在"Project General"属性中更改了"Compiler"之后、构建现在失败、并且 SysConfig 会显示一个错误:

[10]****构建用于项目 MotionLogicController 的 Debug-LaunchPad_TICLANG 配置**** 
[11]"C:\\ti\\ccstheia140\\ccs\\utils\\bin\\gmake"-k -j 16所有-O

[12]Building file :"../mspm0l1306_launchpad.syscfg"
[13]调用: SysConfig
[14]"C:/ti/ccstheia140/ccs/utils/sysconfig_1.20.0/sysconfig_cli.bat --script"C:/Users/gordon.tyler/workspace_ccstheia/MotionLogicController/mspm0l1306_launchpad.syscfg -o "syscfg"--编译器 ticlang

[15]使用方法:
[16] CLI [- o <dir>][- s ][-u ][-b ][-d ][-p ][- r ][--治疗 WarningsAsErres][--安静-q]

It looks like the Product Dependencies for the MSPM0 SDK and SysConfig were not added to the new build configuration created when I switch the compiler. However, after re-adding these dependencies, the build still fails at the SysConfig step:

[10]**** Build of configuration Debug-Launchpad__TICLANG for project MotionLogicController ****
[11]"C:\\ti\\ccstheia140\\ccs\\utils\\bin\\gmake" -k -j 16 all -O

[12]Building file: "../mspm0l1306_launchpad.syscfg"
[13]Invoking: SysConfig
[14]"C:/ti/ccstheia140/ccs/utils/sysconfig_1.20.0/sysconfig_cli.bat" --script "C:/Users/gordon.tyler/workspace_ccstheia/MotionLogicController/mspm0l1306_launchpad.syscfg" -o "syscfg" -s "C:/ti/simplelink_msp432e4_sdk_4_20_00_12/.metadata/product.json" --compiler ticlang

[15]Usage:
[16] cli [-o <dir>] [-s ] [-u ] [-b ] [-d ] [-p ] [-r ] [--treatWarningsAsErrors] [--quiet -q]

What adjustments do I need to make to the project configuration to get it working again?

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

    无效参数'--product'错误  消息表示 MSPM0 SDK 的产品依赖关系存在问题。  应 在工程配置中指定正确的产品和版本。   应正确添加产品依赖项并为 TI Clang 构建配置进行配置。

    No such resources:/ti/boards/LP_MSPM0L1306.syscfg.json 错误  表明 SysConfig 工具无法找到所需的板配置文件。 确保LP_MSPM0L1306.syscfg.json项目或 SDK 内的相应目录中存在电路板配置文件。  电路板配置文件LP_MSPM0L1306.syscfg.json 应位于项目或 SDK 内的相应目录中。  

    如果您想获取有关其他 ARM Cortex IC 的建议、可 在此处找到: www.theengineeringprojects.com/.../top-embedded-ics-to-learn-in-2023.html

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

    你好

    感谢您 Zain 的回复、我会将此 E2E 发布到 SDTO 团队。 如果 Gordon 您仍然有关于 GCC 和 TI Clang 的问题,我们的 SDTO 同事将会帮助解决此问题。  

    此致、

    K·扬茨

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

    我通过使用 TI Clang 编译器重新创建配置并在构建前添加必要的产品相关性、解决了- product 错误和"无此类资源"错误。

    但是、它仍然失败了、还出现了其他错误、我最终发现这些错误是由于新构建配置缺少各种编译器 include、链接器包含路径和链接器输入文件造成的。 由于 CCS 在我更改编译器时会自动创建配置、因此我本来希望它能够在原始配置的基础上正确设置这些配置。

    我必须做的更改:

    • 将以下内容添加到编译器中包括:
      ${PROJECT_ROOT}
      ${PROJECT_ROOT}/${ConfigName}
      ${COM_TI_MSPM0_SDK_INSTALL_DIR}/source/third_party/CMSIS/Core/Include
      ${COM_TI_MSPM0_SDK_INSTALL_DIR}/源代码
    • 将以下内容添加到链接器文件输入中:
      device.cmd.genlibs
      libc.a
    • 将以下内容添加到链接器搜索路径:
      ${COM_TI_MSPM0_SDK_INSTALL_DIR}/源代码
      ${PROJECT_ROOT}
      ${PROJECT_BUILD_DIR}/syscfg
      ${CG_TOOL_ROOT}/lib

    我把它从一个 TI Clang 示例项目中仿效。

    如果该工具足够智能、在切换编译器时可以对我进行这些调整、那会很好。 或者、提供了更具指导性的过程、用于添加新的构建配置、该配置使用其他编译器来提供有关要进行哪些修改的建议。

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

    听起来不错! 恭喜!