Одним із розділів Ардуїно, який, ймовірно, з часом стане ненадійним, є його пам’ять. У мікроконтролері, що використовується на платформах Arduino на основі avr, є три пули пам'яті :
- Флеш-пам’ять (програмний простір) - це місце, де зберігається ескіз Arduino.
- SRAM (статична пам'ять з випадковим доступом) - це місце, де ескіз створює та маніпулює змінними під час його запуску.
- EEPROM - це простір пам'яті, який програмісти можуть використовувати для зберігання довгострокової інформації.
Пам'ять - це одна частина плати, яку можна перевірити та перевірити, і, таким чином, оцінити надійність / здоров'я. Дуже основним способом перевірки пам’яті було б написання певного 8-бітного шаблону (байтового символу) над кожною адресою в пам'яті, а потім зчитування значення, присутнього з кожної адреси. Якщо значення, яке було записано, відповідає значенню, яке читається, то конкретний 8-бітовий блок в пам'яті функціонує правильно в даний момент.
Знос пам’яті ПЗУ зазвичай відбувається за блочним малюнком, тобто n * 8-бітні блоки з часом деградують. Отже, для 2-байтного мікросхеми ROM, стан здоров'я мікросхеми можна оцінити, записуючи та читаючи з кожного байта на мікросхемі, та обчислюючи відсоток правильно функціонуючих блоків. Якщо відсоток несправних блоків значний (15% -20%), це означає, що пам'ять, швидше за все, вийде з ладу.
Тестовий код можна записати, використовуючи окремі методи для кожного з розділів пам'яті.
SRAM
Будь-які змінні, оголошені статично або динамічно, розподіляються на SRAM. Отже, ми могли б оголосити великий масив символів (~ 2000) і заповнити кожен елемент 255 (усі біти 1). Тоді ми можемо спробувати прочитати кожен із цих елементів і побачити, чи дійсно значення, яке читається, є 255.
EEPROM
За допомогою EEPROM можна управляти за допомогою бібліотеки EEPROM . Бібліотека надає функції для читання та запису з певних місць в EEPROM. Отже, всі адреси пам'яті можна перевірити, просто перебравшись на весь простір пам'яті. Для цієї операції знадобиться 500 записів і читання.
Залежно від використання плати, EEPROM, швидше за все, вийде з ладу першим, але не є критичним для роботи плати.
Спалах
Дані можна зберігати на флеш-пам'яті за допомогою PROGMEM
директиви. Як і SRAM, тут може бути оголошено і ініціалізовано великий масив. Потім значення можна прочитати і перевірити.