Unterschied "arm-elf-gcc" und "gcc"

Gast #2494572
Hallo,

ich bin verwirrt:
Wo liegt der Unterschied zwischen dem arm-elf-gcc und dem gcc ??

beim aufruf des linux manuals
[code}man arm-elf-gcc [/code] komm ich auf die gcc-man-seite !

Wo liegen also die Unterschiede, ist der arm-elf-gcc eine abgespeckte 
Version speziell für ARM-Arch. ?

Und wieso heißt der eig. arm-ELF-gcc? => erzeugt der auch hex-files 
dirket zum flashen ?

grüße
Der gcc erzeugt direkt Code für deinen aktuellen PC, arm-elf-gcc für 
arm.
Weil der Aufruf (Optionen, Dateien) gleich ist, gibt es dafür keine 
extra man-page (cross compiler).

Wobei es nicht nur um die nackte Codeerzeugung geht, sondern auch wo 
Headerdateien gesucht werden, welche Libs dazu verwendet werden etc..
Daher auch ggf. noch einmal die Unterscheidung arm-elf... und 
arm-linux... oder ähnliche.
Moderator Persönliche Seite
tobi schrieb:

> ich bin verwirrt:
> Wo liegt der Unterschied zwischen dem arm-elf-gcc und dem gcc ??

arm-elf-gcc ist der übliche Name für einen GCC, der als Crosscompiler
für ARM-Targets mit dem (veralteten) ABI namens "elf" konfiguriert
worden ist.

> Wo liegen also die Unterschiede, ist der arm-elf-gcc eine abgespeckte
> Version speziell für ARM-Arch. ?

Nicht "abgespeckt", sondern "anders konfiguriert".  Warum sollte ein
ARM denn weniger Speck brauchen als ein X86?

> Und wieso heißt der eig. arm-ELF-gcc? => erzeugt der auch hex-files
> dirket zum flashen ?

Nein, der erzeugt Assembler-Dateien, die der Assembler zu verschieb-
lichen Objektdateien (im ELF-Format) assembliert, die der Linker in
(nicht verschiebliche) ausführbare ELF-Dateien umbaut.  Daraus kann
ein Tool names objcopy (oder arm-elf-objcopy) dann den Inhalt auch
entnehmen und in eine Binär- oder Intel-Hex-Datei auslagern.

Das aktuelle ABI ist aber das sogenannte EABI, die Tools fangen dann
üblicherweise mit arm-none-eabi- an (also arm-none-eabi-gcc usw.).
Moderator Persönliche Seite
Klaus Wachtler schrieb:

> ... wobei das "none" sich nicht auf eabi bezieht, sondern auf das
> jeweilige Ziel-Betriebssystem, bzw. in diesem Fall eben keines.

Ja, allerdings ist mir nicht klar, warum das nun plötzlich auftaucht
(und diese unsäglich langen Namen erzeugt); bei arm-elf-gcc ist es
auch einfach weggelassen worden, insofern wäre arm-eabi-gcc passender
gewesen.
ELF kannst du nicht fälschen :-)

Ich kennen nur avrdude zum Fälschen, aber der will von ELF nichts 
wissen.
Ich glaube auch nicht, daß andere Fälscher das anders machen.

Aus der man avrdude:
1
Input files can be provided, and output files can be written in different file formats, such as raw binary files containing the data to download to the chip, Intel hex format, or Motorola S-record format. There are a number of tools available to produce those files, like asl() as a standalone assembler, or avr-objcopy() for the final stage of the GNU toolchain for the AVR microcontroller.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 14 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.