www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik hex --> bin


Autor: Günther Frings (taraquedo)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Ich schreibe gerade einen Bootloader, der von SD-Karte das Programm 
laden kann. Dazu muss ich ein neues Programm natürlich zunächst auf eine 
SD-Karte schreiben. Also z.B. mit dd if=myprog.bin of=/dev/sda2.

Das AVR-Studio liefert mir standardmäßig jedoch nur eine hex-Datei. Das 
macht natürlich keinen Sinn, die auf die Karte zu spielen. Wie kann ich 
also den echten Maschinencode erzeugen lassen?

Grüße!

Autor: _CH_ (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Günther,

wenn das Hex-file im Intel-Hex-Format ist, dann erzeugt dir das 
angehängte Program ein Bin-File. In diesem steht dann wirklich 
Maschinencode.
Das Program ist von der keil.com Seite.

Gruß,
Christian

Autor: _CH_ (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Edit:
Verwendung in der Win-Konsole:
Pfad: hex2bin deinhexfile.hex

Autor: Μαtthias W. (matthias) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

wenn du GNU-tools einsetzt (avrgcc):
Da gibt es das Programm objcopy. Damit kannst du unter anderem eine 
Intel-HEX Datei in eine Biärdatei umandlen.

Matthias

Autor: Rolf Magnus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das Programm heißt avr-objcopy.

Autor: Μαtthias W. (matthias) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

stimmt. Aber das objcopy jeder beliebigen Architektur sollte es auch 
tun.

Matthias

Autor: Sipp (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Macht das Sinn eine Hexdatei fuer einen Download in eine Binaerdatei zu 
wandeln ? Nicht unbedingt. Zum einen kann die Hexdatei mit Loechern, dh 
unprogrammierten Bereichen umgehen, Eine Binaerdatei enthaelt dort FF 
oder Nullen. Ich denke ich werde fuer mein Downloadprojekt mit 
Hexdateien arbeiten, und nicht mit Binaeren. Falls es sich um grosse 
Mengen geht kann man sich auf dem Hexfile auch noch einen Kompressor 
vorstellen. Der Ansatz mit Zeilen, Adressen und Daten ist zu gut um 
wegzuschauen.

Autor: _CH_ (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

@Sipp:
>Macht das Sinn eine Hexdatei fuer einen Download in eine Binaerdatei zu
>wandeln ? Nicht unbedingt.
Du hast schon recht. Im prinzip könnte er auch direkt mit dem hex-File 
arbeiten, aber der Weg über eine bin-Datei ist meiner Meinung nach für 
den Anfang sicherlich leichter, da eine Fehlerquelle und zwar die 
"Umrechnung" schon ausgeschlossen ist.
Soweit ich das richtig verstanden habe will er ja den Programmcode 
direkt von  SD-Karte lesen und da ist doch eine bin-Datei genau das 
richtige. Einfach auf die Karte kopieren und gut.

Autor: Günther Frings (taraquedo)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Genau so ist es. Auf der SD Karte sind zwei Partitionen. Eine ist eine 
FAT16, die vom Hauptprogramm verwendet wird. Der Bootloader wertet die 
zweite Partition aus, die aus reinen Daten besteht. Dort liest er eins 
zu eins die Daten aus der Partition und schreibt diese in den Flash des 
AVR. An einer Stelle relativ zum Partitionsanfang liegt dann ein 
Versionswort, an welchem der bootloader entscheidet, ob eine 
Aktualisierung notwendig ist.
Unter diesen Umständen wäre mir eine HEX Datei eher im Wege, da diese 
variable Länge hat. Das macht die Sache zwar nicht unmöglich, aber so 
ist sie schon etwas intuitiver.

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.