2014-11-01 20 views

risposta

23

io non sono del tutto sicuro:

  • l'EABI sta per la compilazione del codice, che verrà eseguito su core ARM metallo nudo.
  • la gnueabi sta per la compilazione di codice per linux

Per la parte gnueabi/gnueabi-hf, ho trovato una risposta here.

gcc-arm-linux-gnueabi è il pacchetto cross-toolchain per l'architettura armel. Questa toolchain implica l'EABI generato dalle opzioni gcc's -mfloat-abi = soft o -mfloat-abi = softfp.

gcc-arm-linux-gnueabihf è il pacchetto cross-toolchain per l'architettura armhf. Questa toolchain implica l'EABI generata dall'opzione gcc -mfloat-abi = hard.

+2

Vedi anche: 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 * Il bare-metal ABI (eabi) assumerà una libreria C diversa (newlib per esempio, o anche nessuna libreria C) per l'ABI Linux (gnueabi, che assume glibc). Pertanto, il compilatore può effettuare chiamate di funzioni diverse a seconda di ciò che ritiene disponibile sopra e oltre la libreria C standard. * – Lekensteyn

+0

Anche se vedo che l'hai estratto da una fonte esterna, l'uso di 'architecture' qui è fuorviante. La differenza tra 'armel' e' armhf' è fondamentalmente la differenza tra il software floating point e l'hardware floating point EABI generato dai compilatori. – sherrellbc

+0

Ok @sherrellbc consiglieresti una riformulazione? – Akhneyzar