eeprom mit text file beschreiben

Gast #3850546
Lesenswert?

Hi

>Ich hab ein 1024byte langes Text File (keine hex datei) welches ich
>mittels AtmelStudio auf das EEprom eines AVR schreiben möchte. Wie stell
>ich das am besten an?

bin2hex.exe besorgen. Dann Text in hex-File umwandeln und EEPROM 
programmieren.

MfG Spess
Gast #3850602
Lesenswert?

Unter linux gibt es dazu xxd. Ich weiß aber nicht ob das in irgend einem 
AtmelStudio Verzeichnis dazugehört.

text.txt:
1
Das ist Text in einer Datei.
2
Und eine zweite Zeile.

xxd -i text.txt > text.h erzeugt dann

text.h:
1
unsigned char text_txt[] = {
2
  0x44, 0x61, 0x73, 0x20, 0x69, 0x73, 0x74, 0x20, 0x54, 0x65, 0x78, 0x74,
3
  0x20, 0x69, 0x6e, 0x20, 0x65, 0x69, 0x6e, 0x65, 0x72, 0x20, 0x44, 0x61,
4
  0x74, 0x65, 0x69, 0x2e, 0x0a, 0x55, 0x6e, 0x64, 0x20, 0x65, 0x69, 0x6e,
5
  0x65, 0x20, 0x7a, 0x77, 0x65, 0x69, 0x74, 0x65, 0x20, 0x5a, 0x65, 0x69,
6
  0x6c, 0x65, 0x2e, 0x0a, 0x0a
7
};
8
unsigned int text_txt_len = 53;

Das kannst Du dann ablegen wo Du möchtest.
Gast #3851118
Lesenswert?

danke für die Tipps


wenn ich das EEprom mit AtmelStudio auslese, erhalte ich eine Hex Datei 
mit jeweils 32byte pro Zeile, startend bei :1000000

wenn ich mit bin2hex kovertiere, werden Zeilen mit 64byte erzeugt, 
startend bei :2000000

kann ich dies irgendwie ändern?
#3851136
Lesenswert?

Franzl schrieb:
> danke für die Tipps
>
>
> wenn ich das EEprom mit AtmelStudio auslese, erhalte ich eine Hex Datei
> mit jeweils 32byte pro Zeile, startend bei :1000000
>
> wenn ich mit bin2hex kovertiere, werden Zeilen mit 64byte erzeugt,
> startend bei :2000000
>
> kann ich dies irgendwie ändern?

Was für'n Zufall:

Eeprom Datei Editor (Intel-Hex-Format)
in "Projekte und Code"
Hab gerade den Quellcode hier gepostet.
Der kann per Klick die Zeilengröße ändern, falls nötig.

Schiko
Gast #3851146
Lesenswert?

Also wie das AtmelStudio den EEPROM Inhalt darstellt weiß ich nicht.
Aber um die Datei korrekt in den EEPROM zu legen brauchst Du nur wie 
oben beschrieben xxd zu verwenden und dann noch EEMEM einzufügen.

text.h:
1
#include <avr/eeprom.h>
2

3
unsigned char EEMEM text_txt[] = {
4
  0x44, 0x61, 0x73, 0x20, 0x69, 0x73, 0x74, 0x20, 0x54, 0x65, 0x78, 0x74,
5
  0x20, 0x69, 0x6e, 0x20, 0x65, 0x69, 0x6e, 0x65, 0x72, 0x20, 0x44, 0x61,
6
  0x74, 0x65, 0x69, 0x2e, 0x0a, 0x55, 0x6e, 0x64, 0x20, 0x65, 0x69, 0x6e,
7
  0x65, 0x20, 0x7a, 0x77, 0x65, 0x69, 0x74, 0x65, 0x20, 0x5a, 0x65, 0x69,
8
  0x6c, 0x65, 0x2e, 0x0a, 0x0a
9
};
10
unsigned int text_txt_len = 53;
Gast #3851176
Lesenswert?

hallo

hab grad hxd getestet, hat wunderbar funktioniert.

Momentan hab aber ich ein Problem beim Schreiben. Dabei wird anstatt FF 
FF fast immer 24 2D geschrieben.
Beispielsweise die Zeile:
:10001000FF17FFFFFFFFFFFFFFFFFFFFFFFFFFFFD8

wird geschrieben als
:10001000FF17FFFFFFFFFFFF242D242D242D242D8C

Was läuft hier falsch?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren