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.

[参考译文] AM4372:TI SDK 9.01 meta-toolchain-arago-tisdk 缺失 arm-none-linux-gnueabihf-gcc

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1334013/am4372-ti-sdk-9-01-meta-toolchain-arago-tisdk-missing-arm-none-linux-gnueabihf-gcc

器件型号:AM4372

你好  

我编译了 meta-toolchain-arago-tisdk、我使用新的 TI SDK 9.01。

当我在 Linux PC 上安装生成的工具链时、我发现它没有"arm-none-linux-gnueabihf-gcc"编译器。  经过进一步分析、它似乎包含 ARM-OE-Linux 外部工具链、而不是 ARM-none-linux-gnueabihf

您能向我指出可在何处指定正确工具链的层/配置吗?  我想这一点很明显、迁移到9.01的每个人都应该有这个问题

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

    好的、我想我可能会提供更多有关放入上下文的信息、我将从先前的 TI SDK 8.x 版本迁移到9.01、在8.x 上我们使用 arm-none-linux-gnueabihf 工具链来构建我们的器件目标映像和 meta-toolchain-arago-tisdk 封装。  然后、我们将元工具链发送给我们的开发人员、让他们安装在他们的 Linux PC/VM 上、这样、他们就可以创建二进制文件、将其移动到器件并运行/测试它们。 它在8.x 上非常有效

    我们试图在这里使用9.x 来执行同样的操作、 我们使用  arm-none-linux-gnueabihf 工具链构建了器件目标图像、目标器件运行良好、但在开发人员一方、当他们尝试使用我们提供的 meta-toolchain-arago-tisdk 工具编译任何应用(即使是简单的 hello world)时、 其生成的二进制文件不在目标器件上运行、这是因为 meta-toolchain-arago-tisdk 不包含用于生成器件映像的相同工具链(met-toolchain-arago-tisdk 包含 arm-oe-linux-gnueabi)

    有人能为我提供任何指导吗?  我们应该抛弃 arm-none-linux-gnueabihf 并使用 arm-oe-linux-gnueabi 来生成目标映像和开发人员 meta-toolchain-arago-tisdk?  或者、我们应该篡改 meta-arago-toolchain-tisdk 的环境设置、以支持 arm-none-linux-gnueabihf。   

    我注意到、生成 meta-toolchain-arago-tisdk 的指令在9.x 文档中没有、有任何特殊的原因? 它是我们不应该自己建设的东西吗?


    有点令人困惑

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

    AM437x SDK 9.1软件包的工具链位于$(TI_SDK_PATH)/external-toolchain-dir"下
    www.ti.com/.../09.01.00.001
    您可以参考 SDK 安装文件夹下的"Rules.make"。
    导出 cross_compile=$(TI_SDK_PATH)/external-toolchain-dir/arm-gnu-toolchain-11.3.rel1-x86_64-arm-none-linux-gnueabihf/bin/arm-none-linux-gnueabihf-

    让我在我的同事中循环对"meta-toolchain-arago-tisdk"中的工具链进行评论

    此致!
    -洪

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

    好的、我找到了解决我的问题的方法。  我们似乎整个过程都遵循的是正确的、但生成/生成的 meta-toolchain-arago-tisdk 有一个问题:环境设置脚本具有错误的 LDFLAGS 设置、导致适用于通用 Linux 的 elf/二进制编译器不适用于硬件浮点处理器。

    我通过手动编辑"Environmental setup"字段中的这一行来修复

    export LDFLAGS="—sysroot=$SDK_PATH_TARGET"

    更改为

    export LDFLAGS="-march=armv7-a -mthumb -mfpu=neon -mfloat-abi=hard --sysroot=$sdk_path_target"

    如果我能找出生成这一行的脚本、我将进行修改、而不是让我的开发人员手动修改这一行。   

    我仍然有问题、为什么文档中不再有有关如何生成 meta-toolchain-arago-tisdk 的指令

    此致

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

    为了补充此修复、问题似乎是 meta-toolchain-arago-tisdk.bb 缺少定义 目标_LD_Arch 因此,我在我们的层上创建了一个 bbappend 为那个食谱与一行:

    target_ld_arch="-march=armv7-a -mthumb -mfpu=neon -mfloat-abi=hard"

    在重新生成 meta-toolchain-arago-tisdk 软件包并在 Linux VM 上安装后、我可以确认环境设置具有与我之前的响应一样的正确 LDFLAGS 值

    可能是应该修复的原始 meta-toolchain-arago-tisdk、因为我可以想象每个人都会遇到这个问题、即使该版本中提供的9.1 Linux-Devkit 的环境设置具有错误的 LDFLAGS 值