www.mikrocontroller.net

Forum: Compiler & IDEs (AVR) Bestehendes ASM-Hex-File zu neuem C-Projekt hinzufügen


Autor: Lars R. (larsr)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Ich habe zurzeit folgendes Problem:

Für ein bestehendes Gerät, welches zurzeit noch eine Firmware nutzt, die 
rein in Assembler geschrieben wurde, entwickele ich eine neue Version 
der Firmware in C.

Da auch der Bootloader für ein automatisches Softwareupdate daher in 
Assembler geschrieben wurde, kann ich diesen nicht direkt in das 
C-Projekt einbinden, da es erstens zu lange dauern würde, den Code an 
die andere Assemblersyntax anzupassen und sämtliche Definitionen 
umzustellen usw.

Ich würde daher gerne ein Hexfile, welches nur den Bootloader enthält 
(circa 2 Kilobytes) direkt in das C-Projekt integrieren, damit ich 
während der Kompilierung direkt ein vollständiges Hexfile erhalte.

Meine Versuche die .obj-Datei des AVR-Assemblers aus AVR Studio dem 
AVR-GCC-Compiler mitzugeben scheiterten am unterschiedlichen 
Dateiformat. Da ich jetzt nur ungerne jedes Byte als Konstante in einer 
C-Quellcodedatei ablegen würde, frage ich mich, ob es hier nicht eine 
einfachere Möglichkeit gibt.

Wer weiß hier Rat? Momentan kopiere ich die Hexfiles separat zusammen 
und erhalte so mein gewünschtes Ergebnis, dies ist allerdings nicht 
gerade gut gelöst...

Viele Grüße,

Lars

Autor: Johann L. (gjlayde) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Lars R. schrieb:

> Meine Versuche die .obj-Datei des AVR-Assemblers aus AVR Studio dem
> AVR-GCC-Compiler mitzugeben scheiterten am unterschiedlichen
> Dateiformat. Da ich jetzt nur ungerne jedes Byte als Konstante in einer
> C-Quellcodedatei ablegen würde, frage ich mich, ob es hier nicht eine
> einfachere Möglichkeit gibt.
>
> Wer weiß hier Rat? Momentan kopiere ich die Hexfiles separat zusammen
> und erhalte so mein gewünschtes Ergebnis, dies ist allerdings nicht
> gerade gut gelöst...

IHEX ist der kleinste gemeinsame Nenner, da, wie du bereits gemerkt 
hast, AVR-Studio keine Dateien im ELF-Format erzeugt, die du zu deinem 
C-Projekt hinzulinken könntest.

Immerhin hast du ne funktionierende Lösung. Schöner wird's nicht.

Es sei denn, du portierst den Teil in Atmel-Assembler nach 
GNU-Assembler. Sollte nicht sooo schwer sein. Dann kannst du das 
assemblierte o-Object dazulinken wie compilierte+assemblierte o-Objekte 
aus C-Dateien auch.

Johann

Autor: Jörg G. (joergderxte)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Google findet diesen Thread 
http://www.avrfreaks.net/index.php?name=PNphpBB2&f...
  so wird das Hexfile zumindest automatisch gebaut (falls das bei dir 
noch nicht der Fall ist)

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.