L'une des sections de l'Arduino qui risque de devenir peu fiable au fil du temps est sa mémoire. Il existe trois pools de mémoire dans le microcontrôleur utilisé sur les cartes Arduino basées sur avr:
- La mémoire flash (espace programme) est l'endroit où est stocké le croquis Arduino.
- SRAM (mémoire statique à accès aléatoire) est l'endroit où l'esquisse crée et manipule des variables lors de son exécution.
- L'EEPROM est un espace mémoire que les programmeurs peuvent utiliser pour stocker des informations à long terme.
La mémoire est une partie de la carte qui peut être vérifiée et vérifiée, et donc évaluée pour sa fiabilité / santé. Une manière très basique de vérifier la mémoire serait d'écrire un certain modèle de 8 bits (caractère d'octet) sur chaque adresse de la mémoire, puis de lire la valeur présente à partir de chaque adresse. Si la valeur qui a été écrite correspond à la valeur lue, alors ce bloc spécifique de 8 bits en mémoire fonctionne correctement à l'heure actuelle.
L'usure de la mémoire ROM se produit généralement par blocs, c'est-à-dire que les blocs n * 8 bits se dégradent avec le temps. Ainsi, pour une puce ROM de 2 Ko, la santé de la puce peut être estimée en écrivant et en lisant chaque octet de la puce et en calculant le pourcentage de blocs fonctionnant correctement. Si le pourcentage de blocs en échec est significatif (15% -20%), cela signifie que la mémoire est susceptible d'échouer bientôt.
Le code de test peut être écrit en utilisant des méthodes distinctes pour chacune des sections de mémoire.
SRAM
Toutes les variables déclarées statiquement ou dynamiquement sont allouées sur la SRAM. Ainsi, nous pourrions déclarer un grand tableau de caractères (~ 2000) et remplir chaque élément avec 255 (tous les bits 1). Ensuite, nous pourrions tenter de lire chacun de ces éléments et voir si la valeur lue est bien 255.
EEPROM
L'EEPROM peut être manipulée à l'aide de la bibliothèque EEPROM . La bibliothèque fournit des fonctions pour lire et écrire à partir d'emplacements spécifiques dans l'EEPROM. Ainsi, toutes les adresses mémoire peuvent être testées en bouclant simplement sur tout l'espace mémoire. Cette opération nécessitera 500 écritures et lectures.
Selon l'utilisation de la carte, l'EEPROM est le plus susceptible d'échouer en premier mais n'est pas critique pour le fonctionnement de la carte.
Éclat
Les données peuvent être stockées sur la mémoire flash à l'aide de la PROGMEM
directive. Semblable à SRAM, un grand tableau peut être déclaré et initialisé ici. Ensuite, les valeurs peuvent être lues et vérifiées.