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.