Forum: Mikrocontroller und Digitale Elektronik GCC - LPC2148 - HEXFile - generieren - Reihenfolge


von Denis K. (krugman)


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

von Denis K. (krugman)


Lesenswert?

Keiner????

-.- Toll. Das is doch nich so schwer, oder doch?

grml

Gruß
Krugman

von Martin T. (mthomas) (Moderator) Benutzerseite


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.

von Denis K. (krugman)


Lesenswert?

gg

Danke!

Das Ende gefällt mir besonders hihi

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.