Moin 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?
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
spess53 schrieb: > bin2hex.exe besorgen. Dann Text in hex-File umwandeln und EEPROM > programmieren. Warum ?
1 | .ESEG |
2 | .ORG 0 |
3 | EepText_1: .db "1234567890", 0x0D, 0x0A |
4 | EepText_2: .db "Irgendein Text", 0x0D, 0x0A |
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.
Für den Fall das die Datei bei AtmelStudio/Win nicht dabei ist: https://github.com/ThatOtherPerson/xxd/downloads
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?
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
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; |
Hi >wenn ich mit bin2hex kovertiere, werden Zeilen mit 64byte erzeugt, >startend bei :2000000 >kann ich dies irgendwie ändern? Zeig mal die komplette 1.Zeile. MfG Spess
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?
>bin2hex
Würde mich wundern, wenn das Programm keine Hilfefunktion hätte.
/h oder -h oder so.
Übrigens die Zeilenlänge hat keine Funktion.
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.