Memory usage

Используйте этот тег для вопросов об использовании памяти на Arduino.


В Arduino есть три типа памяти:

  • EEPROM
  • ОЗУ
  • ПРОГРАММА (флеш-память - место, где находится ваша программа)

На Arduino Uno у вас есть 1 КБ EEPROM, 2 КБ ОЗУ и 32 КБ памяти программ.


EEPROM

Электрически стираемое программируемое постоянное запоминающее устройство

Это значение сохраняется после выключения питания, поэтому его можно использовать для сохранения параметров конфигурации, серийных номеров и подобных вещей, даже когда устройство выключено.

EEPROM имеет ограниченный срок службы стирания/перезаписи. Обычно указывается как 100 000 циклов стирания/записи. Это все еще много для таких вещей, как серийные номера, которые редко меняются. Его можно прочитывать неопределенное количество раз без износа.


ОЗУ

Оперативная память

Эта память теряется при отключении питания и имеет неопределенные значения при включении микросхемы. Его можно читать и записывать неопределенное количество раз. Переменные вашей программы хранятся в оперативной памяти.


ПРОГРАММА

Память программ

Именно также "флэш-память". Здесь хранится ваш программный код. Он имеет отдельное адресное пространство для ОЗУ (переменных) из-за того, что диапазон Arduino AVR представляет собой Гарвардскую архитектуру.

PROGMEM имеет ограниченный срок службы стирания/перезаписи. Обычно указывается как 10 000 циклов стирания/записи.

Во время нормальной работы программы PROGMEM только читается из (для чтения программных инструкций) - это можно делать неограниченное количество раз.

Память программы обычно изменяется при «загрузке» новой программы либо с помощью загрузчика, либо с помощью программатора ICSP.

См. также

Вопросы, связанные с [memory usage]: