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.
你好
我编译了 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 值