Примечания.
1. Не во всех моделях ATtiny и только из области загрузчика.
2. Доступны не все FUSE-биты.
3. Только в режиме отладки.
Микроконтроллеры AVR имеют 7 типов памяти, каждый из которых расположен в собственном адресном пространстве. Это энергонезависимая FLASH-память программ (ПЗУ), статическая память
данных SRAM (ОЗУ), энергонезависимая EEPROM-память данных, а также конфигурационные ячейки, ячейки защиты, калибровочные ячейки и ячейки идентификаторов. Возможность доступа к различным ресурсам памяти приведена в табл.1.
Табл.1. Возможность доступа к различным ресурсам памяти.
Тип памяти |
Прикладная программа |
Последовательное |
Параллельное и последовательное |
Интерфейс JTAG |
Интерфейс debugWire |
|||||
Чтение |
Запись |
Чтение |
Запись |
Чтение |
Запись |
Чтение |
Запись |
Чтение |
Запись |
|
FLASH |
+ |
+ (1) |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
SRAM |
+ |
+ |
- |
- |
- |
- |
+(3) |
+(3) |
+ |
+ |
EEPROM |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
Конфигурационные ячейки |
+(1) |
- |
+(2) |
+(2) |
+ |
+ |
+ |
+ |
- |
- |
Ячейки защиты |
+(1) |
- |
+ |
+ |
+ |
+ |
+(2) |
+(2) |
- |
- |
Калибровочные |
- |
- |
+ |
- |
+ |
- |
+ |
- |
- |
- |
Память программ FLASH
Коды программ микроконтроллера размещаются в энергонезависимом ПЗУ, выполненной по технологии FLASH. При нормальных условиях эксплуатации, FLASH-память позволяет сохранять свое содержимое в неизменном виде в течение 40 лет и допускает как минимум 10000 циклов стирания/записи.
Рис.5 Организация FLASH памяти программ ATmega8
Организация памяти программ, на примере ATmega8, приведена на рис.5. Размер FLASH-памяти этой модели составляет 8192 байт. Но, поскольку каждая команда занимает 2 или 4 байта, то по отношению к AVR точнее будет говорить об объеме в 4096 слов. Такая размерность определяет максимально возможное число слов команд (кодов операций), доступное при написании программы.
Для адресации памяти программ используется программный счетчик PC (Program Counter) (другое название: регистр или счетчик команд). Он представляет собой регистр, в котором находится текущей адрес команды во FLASH-памяти. Таким образом, счетчик команд адресует 16-разрядные слова, а не байты, и имеет переменную разрядность, которая зависит от размера FLASH. Так у ATmega8 (4096 слов), PC имеет разрядность 12 бит, у ATmega16 (8192 слова) - 13 бит и т.д. В архитектуре AVR, PC является недоступным для программиста регистром.
Помимо своего основного назначения (хранение команд), FLASH-память AVR-микроконтроллеров также позволяет хранить пользовательские данные произвольного типа: константы, таблицы, постоянные коэффициенты и т.д. Минимальный адресуемый элемент в этом случае 1 байт. Доступ к таким данным из прикладной программы производится различными модификациями инструкции lpm.
Как правило, алгоритмы работы микроконтроллера, записанные в памяти программ, не должны изменяться во времени. Однако у AVR все-таки имеется возможность модифицировать содержимое FLASH посредством собственного программного обеспечения. Обсуждению этого вопроса посвящена глава «Самопрограммирование микроконтроллеров AVR». Там же показан и другой способ разделения FLASH на секцию прикладной программы (Application Section) и секцию загрузчика (Boot Loader Section). Изменять содержимое памяти программ можно только из области загрузчика.
В процессе программирования запись во FLASH-память происходит постранично. Размер страницы зависит от объема памяти конкретной модели и может быть равен 32, 64 или 128 слов.
Перейти к следующей части: Память данных SRAM
Комментарии (0)
|
Я собрал (0) |
Подписаться
Для добавления Вашей сборки необходима регистрация