Arduino'nun zamanla güvenilmez hale gelmesi muhtemel bölümlerinden biri hafızasıdır. Avr tabanlı Arduino kartlarında kullanılan mikro denetleyicide üç bellek havuzu vardır :
- Flash bellek (program alanı), Arduino çiziminin saklandığı yerdir.
- SRAM (statik rasgele erişim belleği), çizim çalışırken değişkenleri oluşturduğu ve işlediği yerdir.
- EEPROM, programcıların uzun vadeli bilgileri depolamak için kullanabilecekleri bellek alanıdır.
Bellek, kartın kontrol edilebilen ve doğrulanabilen bir parçası olup güvenilirlik / sağlık açısından değerlendirilebilir. Belleği kontrol etmenin çok basit bir yolu, bellekteki her adresin üzerine belirli bir 8 bitlik desen (bayt karakteri) yazmak ve daha sonra her adresteki değeri okumak olacaktır. Yazılan değer okunan değerle eşleşiyorsa, bellekteki söz konusu 8 bitlik blok şu anda doğru şekilde çalışmaktadır.
ROM belleğindeki aşınma genellikle blok şeklinde gerçekleşir, yani n * 8 bitlik bloklar zamanla bozulur. Bu nedenle, 2K baytlık bir ROM çipi için, çipin sağlığı, çip üzerindeki her bayttan yazılarak ve doğru çalışan blokların yüzdesini hesaplayarak tahmin edilebilir. Başarısız blokların yüzdesi önemliyse (% 15-20), bu, belleğin yakında arızalanacağı anlamına gelir.
Test kodu, bellek bölümlerinin her biri için ayrı yöntemler kullanılarak yazılabilir.
SRAM
Statik veya dinamik olarak bildirilen değişkenler SRAM üzerinde tahsis edilir. Böylece, büyük bir karakter dizisi (~ 2000) bildirebilir ve her öğeyi 255 (tüm bit 1) ile doldurabiliriz. Ardından, bu öğelerin her birini okumaya çalışabilir ve okunan değerin gerçekten 255 olup olmadığını görebiliriz.
EEPROM
EEPROM, EEPROM kütüphanesi kullanılarak değiştirilebilir . Kütüphane, EEPROM'daki belirli konumlardan okuma ve yazma işlevleri sağlar. Böylece, tüm bellek adresleri tüm bellek alanı üzerinde döngü yapılarak test edilebilir. Bu işlem 500 yazma ve okuma gerektirecektir.
Kart kullanımına bağlı olarak, EEPROM ilk önce başarısız olur, ancak kartın çalışması için kritik değildir.
flaş
Veriler PROGMEM
yönerge kullanılarak flash bellekte saklanabilir . SRAM'a benzer şekilde, burada büyük bir dizi bildirilebilir ve başlatılabilir. Ardından değerler okunabilir ve kontrol edilebilir.