Một trong những phần của Arduino có khả năng trở nên không đáng tin cậy theo thời gian là bộ nhớ của nó. Có ba nhóm bộ nhớ trong vi điều khiển được sử dụng trên các bo mạch Arduino dựa trên avr:
- Bộ nhớ flash (không gian chương trình), là nơi lưu trữ bản phác thảo Arduino.
- SRAM (bộ nhớ truy cập ngẫu nhiên tĩnh) là nơi bản phác thảo tạo và thao tác các biến khi nó chạy.
- EEPROM là không gian bộ nhớ mà các lập trình viên có thể sử dụng để lưu trữ thông tin dài hạn.
Bộ nhớ là một phần của bảng có thể được kiểm tra và xác minh, và do đó được đánh giá về độ tin cậy / sức khỏe. Một cách rất cơ bản để kiểm tra bộ nhớ sẽ là viết một mẫu 8 bit (ký tự byte) nhất định trên mỗi địa chỉ trong bộ nhớ và sau đó đọc giá trị hiện tại từ mọi địa chỉ. Nếu giá trị được ghi khớp với giá trị được đọc, thì khối 8 bit cụ thể đó trong bộ nhớ đang hoạt động chính xác tại thời điểm hiện tại.
Sự hao mòn trong bộ nhớ ROM thường xảy ra theo kiểu khối, tức là các khối n * 8 bit bị suy giảm theo thời gian. Vì vậy, đối với chip ROM 2K byte, sức khỏe của chip có thể được ước tính bằng cách ghi và đọc từ mỗi byte trên chip và tính tỷ lệ phần trăm của các khối hoạt động chính xác. Nếu tỷ lệ phần trăm khối không thành công là đáng kể (15% -20%), điều đó có nghĩa là bộ nhớ có khả năng bị hỏng sớm.
Mã kiểm tra có thể được viết bằng các phương thức riêng biệt cho từng phần bộ nhớ.
SRAM
Bất kỳ biến nào được khai báo tĩnh hoặc động đều được phân bổ trên SRAM. Vì vậy, chúng ta có thể khai báo một mảng ký tự lớn (~ 2000) và điền vào mọi phần tử bằng 255 (tất cả các bit 1). Sau đó, chúng ta có thể cố gắng đọc từng phần tử đó và xem giá trị được đọc có thực sự là 255 không.
EEPROM
EEPROM có thể được thao tác bằng thư viện EEPROM . Thư viện cung cấp các chức năng để đọc và viết từ các vị trí cụ thể trong EEPROM. Vì vậy, tất cả các địa chỉ bộ nhớ có thể được kiểm tra bằng cách lặp qua toàn bộ không gian bộ nhớ. Thao tác này sẽ yêu cầu 500 ghi và đọc.
Tùy thuộc vào cách sử dụng bảng, EEPROM rất có thể bị lỗi trước nhưng không quan trọng đối với hoạt động của bảng.
Tốc biến
Dữ liệu có thể được lưu trữ trên bộ nhớ flash bằng cách sử dụng lệnh PROGMEM
. Tương tự như SRAM, một mảng lớn có thể được khai báo và khởi tạo ở đây. Sau đó, các giá trị có thể được đọc và kiểm tra.