为 64 位 arm 设计选择 gcc 编译器

Posted

技术标签:

【中文标题】为 64 位 arm 设计选择 gcc 编译器【英文标题】:Choosing gcc Compiler for 64-bit arm design 【发布时间】:2017-08-28 08:27:42 【问题描述】:

我一直在 32 位 iMX6q SABRE-SD 板(ARM Cortex-A9)上进行一些裸机编程。我使用“arm-none-eabi”作为工具链。现在,我想将我编写的所有代码移植到 64 位 arm Cortex-A57(R-Car M3 板)。我将如何为此任务选择编译器。我可以使用带有一些标志更改的相同编译器来编译 64 位设计吗?或者是否有制造商提供的任何特定编译器。

人们将如何为他/她的嵌入式设计选择编译器。

请帮忙。

问候,

阿杰马尔

【问题讨论】:

aarch64 架构可能需要 gcc。 你想要 aarch64-none-elf (或者其他三联体的其余部分,如果它重要的话)。我试图弄清楚它是否可以执行 aarch32,或者您是否必须使用两个编译器,一个用于 aarch64 位指令集,然后如果您必须使用不同的工具链,则切换到 aarch32。 --target-help 不显示任何架构,但选项显示 32 位指令集标志 gcc 通常是为每个目标设计构建一个新的工具链副本,其中 llvm/clang 是为所有目标(除了链接)类型的设计构建一个工具链。并且使用 aarch64 gnu 似乎需要构建工具链。 【参考方案1】:

要编译成 64 位架构,可以使用 linaro gcc 工具: 请参考此链接: https://community.arm.com/dev-platforms/f/discussions/5274/issue-compiling-armv8-assembly

【讨论】:

以上是关于为 64 位 arm 设计选择 gcc 编译器的主要内容,如果未能解决你的问题,请参考以下文章

2014025628《嵌入式系统设计》第四周总结

2014025681《嵌入式系统程序设计》第四周学习总结

arm-linux-gcc4.4.3是32但linux是64位怎么办

2014025658《嵌入式系统程序设计》第四周学习总结

arm各种交叉编译工具的区别

ubuntu 16.04 的64位 安装arm-none-linux-gnueabi-gcc的步骤和问题解决