mikrocontroller.net

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


Autor: Denis Krug (krugman)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Denis Krug (krugman)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Keiner????

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

grml

Gruß
Krugman

Autor: Martin Thomas (mthomas) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Denis Krug (krugman)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
gg

Danke!

Das Ende gefällt mir besonders hihi

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.