Память данных микроконтроллеров AVR представляет собой отдельное адресное пространство с адресами от $0000 до $FFFF. И, поскольку наибольший адрес может быть $FFFF, то наибольший возможный объем памяти составляет 64 КБ.
Но большинство микроконтроллеров имеет гораздо меньшую память. В
таких микроконтроллерах часть адресов не используется. Структура же
памяти всегда одинакова. В графическом виде эта структура для микроконтроллера ATtiny13A выглядит так:
То есть в этой модели всего 64 байта оперативной памяти (SRAM), которая расположена в диапазоне адресов 0х0060…0х009F.
Однако 32 регистра и область ввода-вывода также являются частью оперативной памяти. Поэтому общий объём оперативной памяти для данной модели будет 160 байт. Таким образом, оперативная память делится на три области:
- 0х0060…0xFFFF - свободная оперативная память (в указанной выше модели диапазон 0х0060…0х009F).
Последнюю область можно использовать для хранения любых данных. Эту область в свою очередь можно разделить на:
- Область внутреннего ОЗУ: адреса от 0х0060 до RAMEND.
- Область внешнего ОЗУ: адреса от RAMEND+1 до 0xFFFF.
Здесь под RAMEND имеется в виду последний адрес доступной внутренней оперативной памяти. В случае с моделью ATtiny13A:
RAMEND = 0х009F
Следовательно, если используется внешняя оперативная память, то первый её адрес будет:
RAMEND + 1 = 0х009F + 1 = 0х00A0
На этом всё. Подписывайтесь на канал, чтобы ничего не пропустить…