65 votes

arm gcc toolchain comme arm-elf ou arm-none-eabi, quelle est la différence?

Lorsque vous créez une chaîne de compilation gcc, il est possible de le construire comme arm-elf ou arm-none-eabi, mais quelle est la différence?

J'utilise le eabi aujourd'hui, mais c'est seulement depuis que tout le monde semble le faire... mais puisque c'est un très mauvais argument, ce serait vraiment gentil de comprendre la différence.

Remarque: Cette chaîne sera crosscompile code pour Cortex-M3 à base de microcontrôleurs (mcu): s comme le stm32.

Merci


Quelques liens:

EABI:

ELFE:

44voto

paul Points 606

Chaque architecture ou d'architecture/os couple a une ABI. L'ABI (Application binary Interface) décrit la façon dont les fonctions doivent être appelées, syscalls chiffres, des arguments passés, qui de registres peuvent être utilisés ...

L'abi décrit comment le compilateur doit générer de l'assembleur.

Si vous n'utilisez que de l'assembleur vous n'avez pas besoin de se soucier de l'ABI.

arm-elf et arm-none-eabi utiliser deux versions du Bras de l'ABI. Le eabi de la chaîne utilise une nouvelle révision, mais pourrait également être appelé arm-elf-eabi, car il génère des elfe de trop.

38voto

dartan Points 101

Que je sais:

arm-elf de la chaîne d'génère obj code pour certains OS qui soutiennent l'exécution de format elf (exemple de l'ABI linux). OS pour le contrôle de l'exécution de votre programme.

arm-none-eabi de la chaîne d'génère obj code pour les microcontrôleurs ou des microprocesseurs (métal nu, ce sera EABY - embedded ABI). Ce code sont téléchargés à nettoyer flash de MC et de base de MC exécuter après la mise en marche. Pas d'OS, étendue de commande de jeu, pas de possibilité de couplage avec des modules partagés.

4voto

Roger Dahl Points 8326

L'ARM EABI est une norme créée par ARM qui permet à différentes chaînes d'outils de créer des objets compatibles. Par exemple, pour qu'une chaîne d'outils puisse lier des objets créés par une autre chaîne d'outils.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X