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.

[参考译文] MSPM0L1305:在 Linux Ubuntu 和 IAR 构建工具中使用 BX-Docker 构建 MSPM0工程

Guru**** 2587365 points
Other Parts Discussed in Thread: MSPM0L1305, SYSCONFIG

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1409460/mspm0l1305-build-an-mspm0-project-using-bx-docker-in-linux-ubuntu-and-iar-build-tools

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

工具与软件:

工具与软件:

我们还在研究如何使用 BX-Docker 通过命令行构建 TI 工程、并运行以下问题。它使用以下命令 iarbuild c:\projectReset\Project-Reset-4000-Series.ewp -build Debug -parallel 4 -varfile c:\projectReset\Project-Reset-4000-Series.custom_argvars 在窗口中构建。

 这是我在 BX-Docker 中运行以下命令时得到的输出

 docker run --rm -v LMS2:/usr/local/etc/IARSystems -v $PWD:/build iarsystems/bxarm:9.50.2 /opt/iarsystems/bxarm/common/bin/iarbuild Project-Reset-4000-Series.ewp -build Debug -parallel 4 -varfile Project-Reset-4000-Series.custom_argvars

     IAR 命令行构建实用程序 v9.3.2.390

    版权所有2002-2023 IAR Systems AB。

 Project-Reset-4000-Series - Debug

正在读取项目节点...

 变量扩展失败。

 违规文本:"$MSPM0_SDK_INSTALL_DIR$/source/third_party/CMSIS/Core/Include

 部分命令行:"$TOOLKIT_DIR$DIR$TOOLK"""-D""__MSPM0L1305__""-D""Build""Build_NUM_MSB=0""-D""-D""Major_SW_REV_LEVEL=0""-D""Build_NUM_LSB=1" Lib_Config_Normal "-o"/build/Debug/Obj "$ROOT_REL_SDKB_MO""-NO_DEBUG_DI_MO"-"-"-"-INTAB_DIAG_DEBUG_DI_MO"/source/third_party/CMSIS/Core/Include "-"-"-"-NO_DEBUG_DI_MO"-"-"-"-"-"-"-"D-MO"/bin/iccarm /inc/c/DNO_DIAG_DEBUG_DIAG_DIAG_DIAG_DIAG_MO"-"-"-"-"-"-"-"-"-"-"-"-"-"-"-"-"$"/build/EEPROM_EMULATION/eeprom_emulation_type_a.c /source/ti/driverlib /Core/Src /Core/Inc

未能为 C/C++编译器工具和文件生成节点说明:eeprom_emulation_type_a.o

无法生成构建节点说明

读取项目节点失败。

 在以下文件/ti/mspm0_sdk_2_01_00_03/tools/iar 中进行了以下设置:nano MSPM0_SDK.custom_argvars

 

<?xml version="1.0" encoding="iso-8859-1"?>
<iarUserArgVars>
  <group active="true" name="MSPM0_SDK">
    <variable>
      <name>SYSCONFIG_ROOT</name>
      <value>build/ti/sysconfig_1.20.0</value>
    </variable>
    <variable>
      <name>MSPM0_SDK_INSTALL_DIR</name>
      <value>build/ti/mspm0_sdk_2_01_00_03</value>
    </variable>
    <variable>
      <name>MSP_SDK_INSTALL_DIR</name>
      <value>build/ti/mspm0_sdk_2_01_00_03</value>
    </variable>
    <variable>
      <name>EXAMPLE_ROOT</name>
      <value>build/ti/mspm0_sdk_2_01_00_03/tools/iar</value>
    </variable>
  </group>
</iarUserArgVars>

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

    尊敬的 Richard:

    请参阅 此帖子。

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

    Denis、您好。感谢您的响应、您将能够为我提供一种在安装了 SysConfig 和 SDK 的 Linux 主机上构建此项目的方法。 然后、我可以使用它在 Docker 中构建项目。 由于两者都有 Linux 版本、因此我认为此功能可用。  

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

    尊敬的 Richard:

    我来咨询一下我们的软件工具团队。

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

    尊敬的 Richard:

    我正在扩大搜索可能知道的人,但从我目前所问的人,这是他们的回应。

    如果相同的命令在 Windows 中可以工作、但在 Linux 中失败、并且他们使用的是相同的工具、那么他们的 Linux 设置似乎有问题。 但我们不支持仅通过 IAR IDE 使用 IAR 构建工具。 我们也不知道他们正在使用的 Docker 的相关信息。

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

    Denis、您好、如果 Linux 安装程序出现问题、我们可以获得有关如何正确设置 Linux 环境的信息、Linux 安装程序中涉及的内容、它不需要在 Docker 中、我们可以看到它是如何在命令行上构建的。

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

    您好、Denis、您是否获得有关此问题的更多更新?

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

    尊敬的 Richard:

    是的、我非常抱歉耽误了时间。  我确实得到了一位熟悉 Linux 的工具专家 IAR 的回复。  以下是他的回应:

    首先、他们必须知道我们仅在 Windows 中支持 IAR、因此任何调试建议都纯粹是理论。

    话虽如此、从其说明来看、IAR 编译器显然无法正确评估我们的自定义参数变量(即$MSPM0_SDK_INSTALL_DIR$)。  请参见屏幕截图

    现在忽略 Linux 和 Docker 作为潜在变量、出现此问题的最明显原因是未导入我们的自定义变量文件(MSPM0_SDK.custom_argvar)。

    那么、下面是几个调试建议:

    1. 他们应验证是否将自定义变量文件传递给 IAR 编译器调用(通过-varfile 选项)。
      1. 这是必需的、因为 IAR 不会自动为每个项目查找自定义变量。 必须在调用期间指定它。
    2. 如果确认#1、则仍会看到相同的错误。 他们可以尝试使用硬编码路径(相对于其构建环境)手动替换项目.ipcf 文件中的所有自定义变量路径。 这只是一个测试、但应该会消除对任何自定义变量的需求、从而消除直接的问题。
      1. 如果构建成功、那么我们已经确认了自定义变量的导入方式存在一些问题。
      2. 如果此操作仍然失败、则可能是 Linux 和/或 Docker 导致问题的特定原因。

     

    如果这些建议不起作用、那么在 Linux 和/或 Docker 中运行 IAR 时可能需要一些我们不知道的额外注意事项。 在这种情况下、他们联系 IAR 以帮助在 Linux 中运行工具可能会更有帮助。

     

    这有什么帮助吗?

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

    您好、Denis、感谢您的反馈、我将尝试您的工具专家所说的内容、看看我如何开始。

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

    尊敬的 Richard:

    是的、请执行。  如果你找到一个适合你的解决方案,这将有助于那些跟随你的脚步的人;)

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

    尊敬的 Denis:

    我已在交互模式下在 Docker 容器中运行以下命令并获得以下响应您是否确认我的命令与调用 MSPM0_SDK.custom_argvars 文件的方式正确。

     

     

    root@6f4cdf336b59:~#/opt/iarsystems/bxarm/common/bin/iarbuild Project-Reset-4000-Series.ewp -build Debug -parallel 4 -varfile Project-Reset-4000-Series.custom_argvars -varfile ../ti/mspm0_sdk_2_01_00_03/tools/iar/MSPM0_SDK.custom_argvars

     

        IAR 命令行构建实用程序 v9.3.2.390

        版权所有2002-2023 IAR Systems AB。

     

     

    Project-Reset-4000-Series - Debug

    正在读取项目节点...

     

    变量扩展失败。

     违规文本:"$MSPM0_SDK_INSTALL_DIR$/source/third_party/CMSIS/Core/Include

     部分命令行:"$TOOLKIT_DIR$DIR$TOOLK"""-D""__MSPM0L1305__""-D""Build""Build_NUM_MSB=0""-D""-D""Major_SW_REV_LEVEL=0""-D""Build_NUM_LSB=1" Lib_Config_Normal "-o"/build/Debug/Obj "$ROOT_REL_SDKB_MO""-NO_DEBUG_DI_MO"-"-"-"-INTAB_DIAG_DEBUG_DI_MO"/source/third_party/CMSIS/Core/Include "-"-"-"-NO_DEBUG_DI_MO"-"-"-"-"-"-"-"D-MO"/bin/iccarm /inc/c/DNO_DIAG_DEBUG_DIAG_DIAG_DIAG_DIAG_MO"-"-"-"-"-"-"-"-"-"-"-"-"-"-"-"-"$"/build/EEPROM_EMULATION/eeprom_emulation_type_a.c /source/ti/driverlib /Core/Src /Core/Inc

    未能为 C/C++编译器工具和文件生成节点说明:eeprom_emulation_type_a.o

    无法生成构建节点说明

    读取项目节点失败。

     

     

     

    我已尝试创建 custom.args 文件 、如下所示:

    root@9aa3132da5ef:~# cat Project-Reset-4000-Series.custom_argvars
    <?xml version="1.0" encoding="UTF-8"?>
    <iarUserArgVars>
        <group name="MSPM0_SDK" active="true">
            <variable>
                <name>SYSCONFIG_ROOT</name>
                <value>/ti/sysconfig_1.20.0</value>
            </variable>
            <variable>
                <name>MSPM0_SDK_INSTALL_DIR</name>
                <value>/ti/mspm0_sdk_2_01_00_03</value>
            </variable>
            <variable>
                <name>MSP_SDK_INSTALL_DIR</name>
                <value>/ti/mspm0_sdk_2_01_00_03</value>
            </variable>
            <variable>
                <name>EXAMPLE_ROOT</name>
                <value>/ti/mspm0_sdk_2_01_00_03/tools/iar</value>
            </variable>
        </group>
    </iarUserArgVars>
    
    

    我得到以下输出:

    root@9aa3132da5ef:~#/opt/iarsystems/bxarm/common/bin/iarbuild Project-Reset-4000-Series.ewp -build Debug -parallel 4 -varfile Project-Reset-4000-Series.custom_argvars

     IAR 命令行构建实用程序 v9.3.2.390

     版权所有2002-2023 IAR Systems AB。

     Project-Reset-4000-Series - Debug

    正在读取项目节点...

     正在清洁... 0个文件。

    Sys Config_Generated_Files.ipcf

    ebuilding 'build_ide.ninja':由于先前的错误、无法取得进展

    失败:/build/SysConfig_Generated_Files.ipcf

    cd /build &&/ti/sysconfig_1.20.0/sysconfig_cli.bat -o /build -s "/ti/mspm0_sdk_2_01_00_03/.metadata/product.json --compiler IAR /build/Project-Reset-4000-Series.syscfg

    /bin/sh:1:未找到/ti/sysconfig_1.20.0/sysconfig_cli.bat

     错误总数: 2.

    警告总数:0

    生成失败

     

     

     

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

    尊敬的 Richard:

    您是否通过偶然机会与 IAR 进行了接洽。  我很好奇、他们可能会给出什么建议。

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

    Denis、 您好、让您知道这是可以构建的、我必须添加一个特定的 custom_argvars 文件、该文件具有 Linux 系统的正确路径、还必须使用 python 包装程序 scxript 更改.ewp 文件以指向 bash 脚本 而不是 windows。