www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Binär-Hex-Konverter / Intel-Hex-File


Autor: Stefan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe ein Hex-File für einen Atmega88. Die Software lässt sich über 
das JTAG-ICEmkII problemlos einspielen. Nur beim normalen Programmieren 
über ISP gibt es immer die Fehlermeldung, das die Software angeblich 
nicht in das Device passt.

Nun habe ich hier im Forum einen Beitrag gefunden, wo ein ähnliches 
Problem auftrat. Anscheinend ist im Hex-File eine Zeile überflüssig, die 
irgendwie zu viele Daten im EEPROM ablegt. Diese Zeile hab ich wohl 
gefunden und der Code läuft anscheinend Fehlerfrei. Doch irgendwie bin 
ich da nicht ganz sicher, diese Zeile einfach zu löschen.

Jetzt sagte mir jemand, ich könnte das doch mit einem 
Binär-Hex-Converter überprüfen. Den hab ich mir auch schon besorgt, 
jedoch weiß ich nicht, wie ich diesen auf mein Problem anwenden soll. 
Hat da von euch schon mal jemand mit gearbeitet und kann mir sagen, was 
genau ich da machen muss?

Autor: Stefan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hmm,

hat noch keiner mit so nem Teil gearbeitet?

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das GNU Standardtool für die Umwandlung von Objektdateien heisst objcopy

Manual:
http://ccrma.stanford.edu/planetccrma/man/man1/avr...

Ein typischer Einsatz ist das Erzeugen des HEX-Files aus dem ELF-File 
inkl. Abtrennen der EPROM-Daten. Dies wird typischerweise in einem 
Makefile als Buildcommando definiert 
(http://www.mikrocontroller.net/articles/Beispiel_Makefile)
# Create final output files (.hex, .eep) from ELF output file.
#1
  %.hex: %.elf
  @echo
  @echo $(MSG_FLASH) $@
  $(OBJCOPY) -O $(FORMAT) -R .eeprom $< $@
#2
  %.eep: %.elf
  @echo
  @echo $(MSG_EEPROM) $@
  -$(OBJCOPY) -j .eeprom --set-section-flags=.eeprom="alloc,load" \
--change-section-lma .eeprom=0 -O $(FORMAT) $< $@

Bei #1 werden aus dem ELF-File die EPROM-Daten entfernt 
(-R(emove-section)) und eine Ausgabedatei im FORMAT (z.B. FORMAT = ihex) 
erzeugt.

Bei #2 werden die EPROM-Daten in eine spezielle Datei geschrieben.

Überprüfe dein Makefile doch mal, ob sich darin ähnliche Kommandos 
befinden.

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.