www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Flash rom: Letzte Speicheradresse ermitteln


Autor: Michael T. (michelback)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo,

ich möchte einen datenlogger auf µC-Basis entwickeln. Die Daten sollen 
auf einem externen SPI-FLash gespeichert werden.
beim schreiben auf den SPI-Speicher (M25P) wird immer eine Adresse 
gefragt (Auszug aus M25P-Treiber):
FlashProgram( ST_uint32 udAddr, ST_uint8 *pArray, ST_uint32 
udNrOfElementsInArray )

Muss das System neu gestartet werden (Reset, Batterie leer), würde die 
Initialisierung wieder auf die erste Adresse des Speichers zeigen und 
damit den Speicher überschreiben.
Wie kann ich die letzte freie Adresse im Speicher finden um keine Daten 
zu überschreiben?

Grüße,
Michael

Autor: Timmo H. (masterfx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es gibt mehrere Möglichkeiten:
-Du könntest doch einfach suchen wo der letzte Wert != 0xFF gespeichert 
ist. Das geht natürlich nur wenn die Daten so gespeichert werden, dass 
niemals FF gespeichert wird.
-Du könntest ein oder mehrere Bytes nehmen wo die letzte Adresse drin 
steht. Das würde ich aber nur machen, wenn die Daten sich nicht allzu 
häufig geschrieben werden (wegen Schreibzyklen).
-Du könntest die letzte Adresse im EEPROM des µC speichern und jedes mal 
eine andere Zelle nehmen um die Schreibzyklen pro Zelle möglichst gering 
zu halten.
-Du könntest den µC mit einer Stützbatterie versorgen, über die der µC 
dann im Sleep-Modus gehalten wird. Der µC muss dann einfach nur prüfen 
ob die Hauptversorgungsspannung getrennt wurde und sich darauf hin dann 
in den Sleep-Modus zu versetzen. Das geht natürlich nur, wenn die 
anderen Komponenten nicht zu viel Strom brauchen. Den µC alleine kannst 
du jahrelang mit einer CR2032 im Sleep-Modus halten.

Autor: Michael T. (michelback)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Timmo,

das mit der Batterie ist natürlich eine gute Sache. Ich verwende selbst 
sogar eine Batterie, damit das System autark arbeiten kann. Von daher 
dürfte es ja kein Problem sein, bzw ich speichere jede Adresse im RAM 
mit. Aber für den Fall der Fälle, dass es wirklich zu einem  Ausfall 
kommt muss ich wohl den Speicher durchsuchen.
Vielen Dank,
Michael

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.