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?
Das GNU Standardtool für die Umwandlung von Objektdateien heisst objcopy Manual: http://ccrma.stanford.edu/planetccrma/man/man1/avr-objcopy.1.html 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)
1 | # Create final output files (.hex, .eep) from ELF output file. |
2 | #1 |
3 | %.hex: %.elf |
4 | @echo |
5 | @echo $(MSG_FLASH) $@ |
6 | $(OBJCOPY) -O $(FORMAT) -R .eeprom $< $@ |
7 | #2 |
8 | %.eep: %.elf |
9 | @echo |
10 | @echo $(MSG_EEPROM) $@ |
11 | -$(OBJCOPY) -j .eeprom --set-section-flags=.eeprom="alloc,load" \ |
12 | --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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.