Nó không thể. Chà, nó có thể dần bị hao mòn nếu bạn chạy nó như 20 năm .... (giống như hầu hết các sản phẩm vật lý khác)? Ít nhất nó không dựa vào độ phức tạp của mã mà có bao nhiêu thao tác ghi được thực hiện trong cùng một phần bộ nhớ. Hơn nữa, khi nó bị hao mòn, nó sẽ bị gạch và nó sẽ không trở thành một mã đơn giản hơn như nhấp nháy đèn LED.
Một Arduino (Uno) có ba phần bộ nhớ. SRAM, FLASH và EEPROM. SRAM giống như một cổng bán dẫn logic. Nó sẽ không bị hao mòn bởi việc lưu trữ các biến. FLASH và EEPROM bao gồm các cổng nổi. Chúng dần hao mòn khi bạn viết dữ liệu mới. Từ bảng dữ liệu của vi điều khiển Ateml , nó ghi:
Bộ nhớ Flash có độ bền ít nhất 10.000 chu kỳ ghi / xóa. (Từ Chương 8.2)
EEPROM có độ bền ít nhất 100.000 chu kỳ ghi / xóa. (Từ Chương 8.4)
Tuy nhiên, bộ nhớ FLASH là không gian để thực thi mã. Thao tác viết không được thực hiện trong khi Arduino đang chạy. Bạn chỉ ghi bộ nhớ FLASH khi bạn tải lên một mã mới. Vì vậy, nó sẽ bị hao mòn khi bạn tải lên mã ít nhất 10.000 lần.
Nếu bạn thực sự muốn, bạn có thể tạo một mã đặc biệt để tự lập trình lại bộ nhớ FLASH thường với mục đích giữ dữ liệu biến khi Arduino bị tắt. Khi bạn viết loại chương trình này, nó sẽ bị hao mòn chậm vì bộ nhớ FLASH không có nhiều độ bền viết. Đó là lý do tại sao bạn sẽ được đề xuất sử dụng EEPROM có tuổi thọ cao hơn nhiều, nếu bạn muốn giữ dữ liệu ngay cả khi tắt Arduino.
Tóm lại, nó sẽ bị hao mòn bằng cách viết lại bộ nhớ FLASH hoặc EEPROM, chứ không phải bằng cách thực thi mã.