Einer der Abschnitte des Arduino, der mit der Zeit wahrscheinlich unzuverlässig wird, ist sein Gedächtnis. Es gibt drei Speicherpools im Mikrocontroller, die auf Avr-basierten Arduino-Boards verwendet werden:
- Im Flash-Speicher (Programmspeicher) wird die Arduino-Skizze gespeichert.
- In SRAM (Static Random Access Memory) werden bei der Ausführung der Skizze Variablen erstellt und bearbeitet.
- EEPROM ist ein Speicherplatz, in dem Programmierer Langzeitinformationen speichern können.
Der Speicher ist ein Teil der Karte, der überprüft und verifiziert werden kann und somit auf Zuverlässigkeit / Gesundheit bewertet wird. Eine sehr grundlegende Möglichkeit, den Speicher zu überprüfen, besteht darin, ein bestimmtes 8-Bit-Muster (Byte-Zeichen) über jede Adresse im Speicher zu schreiben und dann den an jeder Adresse vorhandenen Wert zu lesen. Wenn der geschriebene Wert mit dem gelesenen Wert übereinstimmt, funktioniert der betreffende 8-Bit-Block im Speicher zum gegenwärtigen Zeitpunkt ordnungsgemäß.
Die Abnutzung des ROM-Speichers erfolgt normalerweise blockweise, dh n * 8-Bit-Blöcke verschlechtern sich mit der Zeit. Für einen 2-KByte-ROM-Chip kann der Zustand des Chips geschätzt werden, indem von jedem Byte auf dem Chip geschrieben und gelesen und der Prozentsatz der ordnungsgemäß funktionierenden Blöcke berechnet wird. Wenn der Prozentsatz fehlgeschlagener Blöcke signifikant ist (15% -20%), bedeutet dies, dass der Speicher wahrscheinlich bald ausfällt.
Der Testcode kann mit separaten Methoden für jeden der Speicherabschnitte geschrieben werden.
SRAM
Alle statisch oder dynamisch deklarierten Variablen werden im SRAM zugewiesen. Wir könnten also ein großes Zeichenarray (~ 2000) deklarieren und jedes Element mit 255 (alle Bits 1) füllen. Dann könnten wir versuchen, jedes dieser Elemente zu lesen und festzustellen, ob der gelesene Wert tatsächlich 255 ist.
EEPROM
Das EEPROM kann mithilfe der EEPROM-Bibliothek bearbeitet werden . Die Bibliothek bietet Funktionen zum Lesen und Schreiben von bestimmten Stellen im EEPROM. So können alle Speicheradressen durch einfaches Durchlaufen des gesamten Speicherplatzes getestet werden. Diese Operation erfordert 500 Schreib- und Lesevorgänge.
Abhängig von der Board-Nutzung fällt das EEPROM am wahrscheinlichsten zuerst aus, ist jedoch für den Board-Betrieb nicht kritisch.
Blitz
Mit der PROGMEM
Direktive können Daten im Flash-Speicher abgelegt werden . Ähnlich wie bei SRAM kann hier ein großes Array deklariert und initialisiert werden. Dann können Werte gelesen und überprüft werden.