当您构建gcc工具链时,可以将其构建为arm-elf或arm-none-eabi,但是有什么区别呢?

我今天使用的是eabi,但这只是因为其他所有人似乎都在这样做...但是由于那是一个非常糟糕的论据,所以理解它们之间的差异真是太好了。

注意:此工具链将交叉编译基于stm32的基于Cortex-M3的mcu:s的代码。

谢谢

一些链接:

EABI:

  • http://en.wikipedia.org/wiki/Application_binary_interface
  • http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.subset.swdev.abi/index.html

  • ELF:
  • http://en.wikipedia.org/wiki/Executable_and_Linkable_Format
  • 最佳答案

    每个架构或架构/操作系统对都有一个ABI。 ABI(应用程序二进制接口(interface))描述了如何调用函数,系统调用编号,传递的参数以及可以使用的寄存器...

    abi描述了编译器应如何生成汇编器。

    如果仅使用汇编程序,则无需关心ABI。

    arm-elf和arm-none-eabi仅使用Arm ABI的两个版本。 eabi工具链使用较新的修订版,但也可以称为arm-elf-eabi,因为它也生成elf。

    10-08 07:11
    查看更多