OT - Binary to Intel Hex Format ?

Ich habe ein Binary File das ich gerne in das EEprom eines 328p schreiben will.

Atmel Studio akzeptiert nur das Intel Hex Format.
Das Einfachste wäre das File mit einem Tool nach Intel Hex zu konvertieren.

In den konvertierten Files sehe ich aber mein Nutzdaten nicht, scheint nur Müll zu sein.
:confused:
Muß ich jetzt wirklich einen Sketch bauen und die Daten von einem Array aus mit EEpromwrite einmalig ins EEprom zu schreiben ?

Es handelt sich um die paar Bytes in dieser Form.

Matix.bin.txt (306 Bytes)

rudirabbit:
Muß ich jetzt wirklich einen Sketch bauen und die Daten von einem Array aus mit EEpromwrite einmalig ins EEprom zu schreiben ?

Es handelt sich um die paar Bytes in dieser Form.

Wo liegt denn da die Schwierigkeit? Der Sketch dazu hätte weniger Zeilen als Dein letztes Posting.

Wo liegt denn da die Schwierigkeit? Der Sketch dazu hätte weniger Zeilen als Dein letztes Posting.

Du hast du natürlich recht, müsste das in ein Array packen und schreiben.

Es geht mir mehr um das Prinzip, es muss doch möglich sein dies ein Hex Format zu konvertieren.

rudirabbit:
Es geht mir mehr um das Prinzip, es muss doch möglich sein dies ein Hex Format zu konvertieren.

Klar, es gibt alle möglichen Konverter-Utilities.

Für Deinen Fall könnte eventuell das Tool "avr-objcopy" passen:
http://ccrma.stanford.edu/planetccrma/man/man1/avr-objcopy.1.html

Allerdings scheinen Deine Daten bei Dir in der txt-Datei überhaupt nicht "binary" vorzuliegen, sondern als "HEX-ASCII" Format.

Es geht mir mehr um das Prinzip, es muss doch möglich sein dies ein Hex Format zu konvertieren.

Falls das die Daten sind, wie du sie im EEPROM haben willst, ist der Rest relativ einfach:
http://www.schulz-koengen.de/biblio/intelhex.htm

Adresse hochzählen und Prüfsumme berechnen. Viel Spass beim Experimentieren.

jurs:
Der Sketch dazu hätte weniger Zeilen als Dein letztes Posting

ist natürlich richtig.

Die Software professioneller Programmiergeräte kann eine Vielzahl von Fileformaten lesen und schreiben. Binär, Intel Hex und Motoroller Hex sind auf alle Fälle möglich.
Googel mal nach Galep 4 und dessen Software. Zum Konvertieren läßt die sich sicherlich auch ohne Programmer missbrauchen :wink:

Gruß Gerald

Danke erstmal, aber die diversen Tools verstehen mein "HEX-ASCII" Format nicht wirklich.

Habe wie vorgeschlagen wurde einen Sketch erstellt und das EEprom beschreiben können.
Mit Atmel Studio das Hex File angesehen, die Nutzdaten sind vorhanden im Kontext zu dem Intel Hex Format passt es auch.

Dann habe ich meine Application geflasht, und mich gewundert das die Daten aus EEprom nicht plausibel sind.
Ein Auslesen des EEproms im Atmel Studio zeigte das alle Bytes auf 0xFF stehen.

Also wird offensichtlich beim Flashen das EEprom überschrieben, ich fasse das EEprom im Atmel Studio nicht an wenn ich nur den Programm flash button drücke ?

Da ich dadurch, über den Umweg das richtige EEprom.hex File habe, ist das Problem soweit gelöst.

Du hättest auch einen Hex Editor nehmen können um eine richtige Binär Datei zu erzeugen.

Dann guck dir mal eXtremeburner an (brauchst aber den USBasp für ISP dazu)
Da kannst du EEPROM, FLASH und Fuses aus Hex.Files lesen und/oder schreiben und das auch getrennt voneinander. Bei den Fuses gibt es auch ein Bit, das beim Flashen das automatische Überschreiben des EEPROMs verhindert.

Gruß Gerald

Da kannst du EEPROM, FLASH und Fuses aus Hex.Files lesen und/oder schreiben und das auch getrennt voneinander. Bei den Fuses gibt es auch ein Bit, das beim Flashen das automatische Überschreiben des EEPROMs verhindert.

Sehr gut ! - Danke dir.
Genau das war das Problem, in den Fusebits bei den HighBytes ist dies das Bit EESAVE.
Dies muß im Atmel Studio markiert sein damit dieses Bit gesetzt auf ("0") wird.
Invertierte Logik im Atmel Studio.

Da mein EEprom schreibsketch in der Application keinen Platz mehr hatte, weil der Flash des 328P schon gut voll ist hatte ich einen seperaten Sketch erstellt der die Daten in das interne EEprom schreibt.
Das hatte er auch gemacht, nur wurde beim Upload des Flash immer das EEprom gelöscht.

Denke auch für andere PCB Selbstbauer eine gute Info wenn mal wieder das Brett vor dem Kopf ist.

Meine Fusebit sehen nun so aus 0xFF, 0xD6, 0xFD