Forum: Mikrocontroller und Digitale Elektronik Strings im EEPROM abspeichern und zur laufzeit vergleichen


von carlau (Gast)


Lesenswert?

Hallo,

ich wollte mal nachfragen, ob es möglich bzw sinnvoll ist, den EEPROM 
eines Mega8 als Befehlsspeicher zu verwenden. Quasi einmal alle Befehle 
für eine UART abspeichern und zur Laufzeit abgespeicherten Strings mit 
den eingehenden Befehlen vergleichen und Flags setzen.
Und wichtig ists noch zu wissen, ob die 100000 zyklen fürs schreiben und 
lesen aus dem EEPROM oder nur für das schreiben ins EEPROM gelten.
Oder ist das insgesamt kontraproduktiv?
LG
Carlau

von Markus E. (engelmarkus)


Lesenswert?

Also lesen kannst du einen EEPROM so oft, wie du willst. Das mit den 
100000 Zyklen gilt nur fürs Schreiben.
Ansonsten: Klar kannst du deine Daten darin abspeichern, dafür ist er ja 
da? Der große Vorteil ist halt, dass du den EEPROM auch zur Laufzeit mit 
dem µC beschreiben kannst, den Flash nicht unbedingt.

von carlau (Gast)


Lesenswert?

Vielen Dank schon mal für die schnelle Antwort...

Wenn ich hiermit was in mein EEPROM schreibe:

const char Foo1[] EEMEM ="1234";
const char Foo2[] EEMEM = "12345";
const uint8_t  Foo3   EEMEM = 1;

wie kann es sein, dass der Compiler ans Ende etwas dranhängt?
ist das eine art checksumme für den compiler?
hier der inhalt der Datei, welche AVR Studio erzeugt hat.


:0C0000003132333400313233343500012A
:00000001FF


ich vermute dass 0C000000 die adresse ist und danach fangen meine 
Strings an? was genau ist aber die 0x2A am ende der ersten Zeile?

und was bedeutet die 2te Zeile? warum steht da ein 0xFF drin?
Ist das normal?

Danke nochmal an alle

übrigens musste ich die Arrays als const deklarieren, warum auch immer, 
sonst hat der compiler gemekert?!

LG Carlau

von holger (Gast)


Lesenswert?

>wie kann es sein, dass der Compiler ans Ende etwas dranhängt?
>ist das eine art checksumme für den compiler?

Die 0 bedeutet End of String. Siehe dazu ein C-Buch.

>hier der inhalt der Datei, welche AVR Studio erzeugt hat.

>:0C0000003132333400313233343500012A
>:00000001FF

>ich vermute dass 0C000000 die adresse ist und danach fangen meine
>Strings an?

Nicht vermuten, nach Intel Hex suchen.

> was genau ist aber die 0x2A am ende der ersten Zeile?

Eine Checksumme.

>und was bedeutet die 2te Zeile? warum steht da ein 0xFF drin?

End of Hex File.

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
Noch kein Account? Hier anmelden.