GCC - LPC2148 - HEXFile - generieren - Reihenfolge

OP #922249
Lesenswert?
• ▲
▼
Hi!

Die Frage ist:

Ich habe ein Projekt mit Eclipse und GNU ARM Chaintool für den LPC2148 
erstellt und funktionert auch.

Meine Frage bezieht sich eigentlich auf:

Linkerskript, Makefile, Startup-Code => hex-File ab.


Meine Überlegung ist:

Make all ->

1. Kompilieren (CFiles *.c) => *.o
2. Assembling (StartupFile(s) *.S) => *.o
3. Linking (CFiles.o + Startupfiles.o + Linkerskript) => *.out / *.elf
4. Kopieren? (*.out / *elf) => .hex

Unklar:

- Bezeichnungen korrekt?
- Hab ich was vergessen? (Mapfile?? Wann)
- .out und .elf? Was ist der Unterschied?
- Was steht in den CFile.o drin? Maschinencode?
- Was steht in den Startupfiles.o drin? Mashcinencode?
- Was steht im Outputfile drin? Variablen wo sie hingehören?
- Was steht im hex drin? Adressbereich wo sie (Variablen etc.) 
hingehören?

Gruß
Krugman
Moderator Persönliche Seite #922690
Lesenswert?
• ▲
▼
Denis Krug wrote:
> Hi!
>
> Die Frage ist:
>
> Ich habe ein Projekt mit Eclipse und GNU ARM Chaintool für den LPC2148
> erstellt und funktionert auch.
>
> Meine Frage bezieht sich eigentlich auf:
>
> Linkerskript, Makefile, Startup-Code => hex-File ab.
>
>
> Meine Überlegung ist:
>
> Make all ->
>
> 1. Kompilieren (CFiles *.c) => *.o
> 2. Assembling (StartupFile(s) *.S) => *.o
> 3. Linking (CFiles.o + Startupfiles.o + Linkerskript) => *.out / *.elf
Übliche Dateiendung ist .elf (gelegentlich auf axf), weil es elf-Format 
ist. Ist aber nur Konvention, Standard der toolchain ist .out. Aber 
.willi funktioniert auch, sofern konsistent.
> 4. Kopieren? (*.out / *elf) => .hex
eher konvertieren (obwohl objcopy genutzt wird). Aus der elf-Datei wird 
per objcopy der Maschinencode extrahiert.
> Unklar:
>
> - Bezeichnungen korrekt?
> - Hab ich was vergessen? (Mapfile?? Wann)
Map-File ist optional, muss nicht sein.
> - .out und .elf? Was ist der Unterschied?
Falls es um die Dateiendung des Link-Ergebnisses geht: s.o.
> - Was steht in den CFile.o drin? Maschinencode?
Objectcode, nicht gelinkt
> - Was steht in den Startupfiles.o drin? Mashcinencode?
dito.
> - Was steht im Outputfile drin? Variablen wo sie hingehören?
"gelinkter" code unter Anderem, evtl. auch Debugcode also auch 
Variablennamen und Addressen. V.a. aber der Maschinencode, den man per 
objcopy in andere Formate konvertieren kann.
> - Was steht im hex drin? Adressbereich wo sie (Variablen etc.)
> hingehören?
Der Maschinencode und wo er hingehört, wie in der Controller "sieht" und 
die Initialwerte der Variablen, die bei flash-target beim startup aus 
dem flash-speicher ins RAM kopiert werden.

>-.- Toll. Das is doch nich so schwer, oder doch?
Warum wird gefragt, wenn es einfach ist, oder doch? Tatsächlich gibt es 
1001 Dokumente im Internet, die das Zusammenspiel der Toolchain 
beschreiben. Man suche z.B. nach gnupro user's guide
>grml
Tippfehler, sollte wohl google heissen.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

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.