2014-11-01 4 views

Antwort

23

Ich bin nicht ganz sicher:

  • die EABI steht für die Erstellung von Code, der auf blankem Metall Arm Kern laufen.
  • die gnueabi für die Erstellung von Code steht für Linux

Für die gnueabi/gnueabi-hf Teil, fand ich eine Antwort here.

gcc-arm-linux-gnueabi ist das Cross-Toolchain-Paket für die Armel-Architektur. Diese Toolchain impliziert die EABI, die von den gcc-Optionen -mffloat-abi = soft oder -mfloat-abi = softfp generiert wird.

gcc-arm-linux-gnueabihf ist das Toolchain-Paket für die Armhf-Architektur. Diese Toolchain impliziert den von der Option gcc -mfloat-abi = hard generierten EABI.

+2

Siehe auch: https://wiki.linaro.org/WorkingGroups/ToolChain/FAQ#What_is_the_differences_between_.2BIBw-arm-none-eabi-.2BIB0_and_.2BIBw-arm-linux-gnueabihf.2BIB0.3F_Can_I_use_.2BIBw -arm-linux-gnueabihf.2BIB0_tool_chain_in_bare-metal_environment.3F_How_do_you_know_which_toolchain_binary_to_use_where.3F * Der Bare-Metal-ABI (eabi) wird eine andere C-Bibliothek (zB newlib oder gar keine C-Bibliothek) an den Linux-ABI übergeben (gnueabi, der glibc annimmt)). Daher kann der Compiler verschiedene Funktionsaufrufe abhängig von dem, was er glaubt über die Standard-C-Bibliothek verfügbar ist. * – Lekensteyn

+0

Obwohl ich sehe, dass Sie dies aus einer externen Quelle gezogen haben, ist die Verwendung von "Architektur" hier irreführend. Der Unterschied zwischen "armel" und "armhf" ist im Wesentlichen der Unterschied zwischen dem Software-Gleitkomma und dem von den Compilern erzeugten Hardware-Gleitkomma-EABI. – sherrellbc

+0

Ok @sherrellbc Würden Sie eine Umformulierung empfehlen? – Akhneyzar