Una delle sezioni dell'Arduino che rischia di diventare inaffidabile nel tempo è la sua memoria. Esistono tre pool di memoria nel microcontrollore utilizzato sulle schede Arduino basate su avr:
- Memoria flash (spazio del programma), in cui è archiviato lo schizzo di Arduino.
- SRAM (memoria ad accesso casuale statico) è dove lo schizzo crea e manipola le variabili quando viene eseguito.
- EEPROM è lo spazio di memoria che i programmatori possono utilizzare per memorizzare informazioni a lungo termine.
La memoria è una parte della scheda che può essere verificata e verificata, e quindi valutata per affidabilità / integrità. Un modo molto semplice per controllare la memoria sarebbe quello di scrivere un certo schema a 8 bit (carattere byte) su ogni indirizzo in memoria e quindi leggere il valore presente da ogni indirizzo. Se il valore che è stato scritto corrisponde al valore letto, quel blocco specifico a 8 bit in memoria funziona correttamente al momento attuale.
L'usura nella memoria ROM di solito si verifica in uno schema a blocchi, ovvero i blocchi di n * 8 bit si degradano nel tempo. Pertanto, per un chip ROM da 2 KB byte, è possibile stimare l'integrità del chip scrivendo e leggendo da ogni byte sul chip e calcolando la percentuale di blocchi correttamente funzionanti. Se la percentuale di blocchi non riusciti è significativa (15% -20%), ciò significa che la memoria probabilmente fallirà presto.
Il codice di test può essere scritto usando metodi separati per ciascuna delle sezioni di memoria.
SRAM
Qualsiasi variabile dichiarata staticamente o dinamicamente viene allocata sulla SRAM. Quindi, potremmo dichiarare un array di caratteri di grandi dimensioni (~ 2000) e riempire ogni elemento con 255 (tutti i bit 1). Quindi, potremmo provare a leggere ciascuno di quegli elementi e vedere se il valore letto è effettivamente 255.
EEPROM
La EEPROM può essere manipolata usando la libreria EEPROM . La libreria fornisce funzioni per leggere e scrivere da posizioni specifiche nella EEPROM. Pertanto, tutti gli indirizzi di memoria possono essere testati semplicemente eseguendo il loop sull'intero spazio di memoria. Questa operazione richiederà 500 scritture e letture.
A seconda dell'utilizzo della scheda, è più probabile che la EEPROM fallisca per prima, ma non è fondamentale per il funzionamento della scheda.
Veloce
I dati possono essere memorizzati nella memoria flash usando la PROGMEM
direttiva. Simile a SRAM, un array di grandi dimensioni può essere dichiarato e inizializzato qui. Quindi, i valori possono essere letti e controllati.