Сравнение основных параметров Atmega48/64/88/128/168/644

Параметр / Модель Atmega128 Atmega64 Atmega644 Atmega48P Atmega88P Atmega168P
Объем памяти Flash 128 KB 64 KB 64 KB 48 KB 88 KB 168 KB
SRAM (ОЗУ) 16 KB 8 KB 8 KB 4 KB 8 KB 16 KB
EEPROM (ПЗУ) 4 KB 2 KB 4 KB 256 B 1 KB 1 KB
Рабочая частота 16 MHz 16 MHz 16 MHz 20 MHz 20 MHz 20 MHz
Количество выводов (pins) 64 64 44 32 28 44

EEPROM (Электрически стираемая программируемая постоянная память):
Предназначена для хранения небольших объёмов данных, которые могут часто меняться (например, настройки пользователя).
Обладает более длительным ресурсом перезаписи — обычно сотни тысяч циклов.
Можно стирать и записывать отдельные байты или небольшие блоки независимо от остальной памяти.
Медленнее по скорости записи и стирания по сравнению с Flash.
Flash-память:
Используется для хранения основной программы и больших объёмов данных.
Имеет высокий объём и быструю запись/стирание блоками (обычно целыми страницами или секторами).
Менее пригодна для частых изменений данных, так как стирание и перезапись происходят блоками, и ресурсы ограничены по количеству циклов.
Быстрее для загрузки программ и хранения больших данных.
Кратко: EEPROM — для хранения небольших, часто меняющихся данных, с возможностью перезаписи байт;
Flash — для хранения программы и больших объёмов данных, с более быстрым чтением и стиранием блоками.


MCU напрямую не имеет встроенных средств для отслеживания объемы занятой SRAM в реальном времени, однако есть несколько подходов, чтобы оценить или контролировать использование SRAM:

Ручное отслеживание через программный код:

Можно внедрить в программу механизмы учета выделенной и освобожденной памяти. Например, использовать обертки для malloc/free (или другие аналогичные функции), которые будут вести подсчет занятой памяти.

Использование сегмента данных:

Некоторые микроконтроллеры позволяют определить границы сегмента данных в памяти (например, через специальные символы или переменные в области данных). Можно измерить разницу между началом и концом сегмента данных для оценки объема использованной SRAM.

Анализ стека и heap:

Можно определить текущий уровень использования стека и динамической памяти, например, запустив функцию, которая заполняет свободную память каким-нибудь паттерном (например, 0xAA), а затем проверить, насколько он был изменен.

Встроенные средства отладки:

В некоторых средах разработки и отладочных платах есть утилиты или встроенные функции для мониторинга памяти, например, через JTAG/SWD интерфейсы.

Краткий ответ: