Forum: Compiler & IDEs AVR Studio 2 Hex-Files mergen


von Martin (Gast)


Lesenswert?

Hallo,

ich verwende AVR Studio 5 und möchte gerne das generierte Hex-File mit 
einem bereits zuvor generierten Hex-File mergen. Dies sollte Aufgabe des 
Linkers sein. Kann ich das mit AVR Studio hinkriegen oder muß ich 
hierfür das Makefile erweitern? Ich hoffe auf Ersteres :)

Viele Grüße,
Martin

von Oliver (Gast)


Lesenswert?

Die Frage kommt im Zusammenhang mit einem bootloader (was anderes ist 
auch kaum sinnvoll) hier alle paar Wochen. Der linker kann das nicht.

Beitrag "Bootloader zu normalem Projekt "dazulinken""
Beitrag "AVR-GCC - Bootloader & Nutzprogramm in einem. Wie?"

Oliver

von Noname (Gast)


Lesenswert?

>Dies sollte Aufgabe des Linkers sein

Was heisst "sollte"? Du nimmst es an? Du wünschst es Dir? Dein Linker 
ist so spezifiziert?
Ich kenne keinen Linker der Hex-Files zusammenfügt. Eigentlich ist es 
auch nicht seine Aufgabe.
Vielmehr ist er so spezifiziert, das er die in verschiedenen 
Object-Files vorhandenen Referenzen auf Variablen und Funktionen in 
jeweils anderen Object-Files auf konkrete Werte setzen damit diese zur 
Laufzeit referenziert werden können.

Ein Makefile enthält zum Bau des Gesamtprojektes notwendige Kommandos 
und deren gegenseitige Abhängigkeit. Insofern wäre hier eine weitere 
Abhängigkeit und ein Kommand einzufügen, das die beiden Hex-Files 
zusammenfügt.

Von dem zusammenfügen alleine hast Du aber ohne weitere, nicht triviale 
Maßnahmen nichts. Keines der beiden Teile kennt irgendeine Referenz in 
einem der anderen. Wiegesagt, nicht ohne weiteres und ohne etwas 
komplexere Voränge.

Das einfachste wäre es, die beiden Projekte, die jeweils ein Hex-File 
erzeugen, in ein Projekt zusammenzufügen bevor daraus Hex-Files 
entstehen und sich ein ganzes erzeugen zu lassen. D.h. soweit beide 
Hex-Files aus C-Code oder Assembler-Code entstehen, diese ersteinmal zu 
kompilieren resp. assemblieren und dann vom Linker die Referenzen 
ergänzen zu lassen und dann erst ein Hex-File erzeugen.

Üblicherweise wird aber eine solche Frage gestellt, wenn sich das eine 
Hex-File nicht mehr neu erzeugen lässt. Ist das so? Dann wird es 
komplizierter.

von Martin (Gast)


Lesenswert?

Vielen Dank Oliver für die Links und an auch Noname bzgl. der kleinen 
Belehrung :-).

Ich habe eine Lösung gefunden. Entweder mit Hex2Bin und danach Bin2Hex 
mit Merge oder mit srec_cat.

Viele Grüße,
Martin

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Warum eigentlich mergen?

Wenn du sie mit AVRDUDE in den Chip bringst, kannst du sie einfach
in zwei -U-Optionen angeben.

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.