当您构建gcc工具链时,可以将其构建为arm-elf或arm-none-eabi,但是有什么区别呢?
我今天使用的是eabi,但这只是因为其他所有人似乎都在这样做...但是由于那是一个非常糟糕的论据,所以理解它们之间的差异真是太好了。
注意:此工具链将交叉编译基于stm32的基于Cortex-M3的mcu:s的代码。
谢谢
一些链接:
EABI:
ELF:
最佳答案
每个架构或架构/操作系统对都有一个ABI。 ABI(应用程序二进制接口(interface))描述了如何调用函数,系统调用编号,传递的参数以及可以使用的寄存器...
abi描述了编译器应如何生成汇编器。
如果仅使用汇编程序,则无需关心ABI。
arm-elf和arm-none-eabi仅使用Arm ABI的两个版本。 eabi工具链使用较新的修订版,但也可以称为arm-elf-eabi,因为它也生成elf。