Strings im EEPROM abspeichern und zur laufzeit vergleichen

Gast #1422348
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
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.
Gast
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
Gast
>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.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.