www.mikrocontroller.net

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


Autor: carlau (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Markus E. (engelmarkus)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: carlau (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.