Прошивка через Bootloader
Многим известно, что большинство устройств бытовой электроники поз-
воляют обновить прошивку, загрузив ее с сайта производителя – видеокамеры,
фотоаппараты, различны плееры, USB 3G модемы, Wi-Fi роутеры и т. п.
Многие микроконтроллеры фирмы AVR имеют возможность самопро-
шивки. Для включения загрузчика нужно изначально, любым указанным выше
способом, зашить специальную программу – Bootloader. Дальше для перешивки
программатор не нужен. Достаточно выполнить сброс микроконтроллера и по-
дать ему специальный сигнал, после чего он входит в режим программирования
и через обычный последовательный интерфейс в него «заливается» прошивка,
например через USB, диск, карту памяти. Возможности зависят от настроенно-
го и загруженное Bootloader`а. Таким образом потребуется как минимум два
файла с прошивкой готового изделия: загрузчика и основной программы.
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·
Контрольные вопросы по главе 4
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·
1. Что представляет собой внутрисхемное программирование (ISP)?
2. Для чего применяется прошивка через JTAG и что для этого необходи-
мо?
3. Назовите особенности параллельного высоковольтного программиро-
вания.
4. Что такое Bootloader?
52
5 Система команд микроконтроллеров AVR
5.1 Регистры состояния
Регистровый файл, блок регистров ввода/вывода и память данных обра-
зуют единое адресное пространство, что дает возможность при программирова-
нии обращаться к 32 оперативным регистрам и к регистрам ввода/вывода как к
ячейкам памяти, используя команды доступа к RAM (в том числе и с косвенной
адресацией). Младшие 32 адреса ($0–$1F) соответствуют оперативным реги-
страм. Следующие 64 адреса ($20–$5F) зарезервированы для регистров вво-
да/вывода. Внутренняя RAM начинается с адреса $60 (знак $ указывает на
шестнадцатеричную систему счисления) [1].
Все математические операции в контроллерах AVR, как и в МК51, вы-
полняются через аккумулятор. Выполнять арифметико-логические операции и
операции сдвига непосредственно над содержимым ячеек памяти нельзя, как и
нельзя записать константу или очистить содержимое ячейки памяти. Система
команд AVR позволяет лишь выполнять операции обмена и пересылки данных
между ячейками RAM и оперативными регистрами. Операции сложения, вычи-
тания, умножения числа А на B происходят с использованием заранее опреде-
ленных регистров, в которых, например, число А расположено в регистре R1,
число B – в регистре R2, а расположение результата будет зависеть от выбран-
ной математической операции. Следовательно, для удобства работы и увеличе-
ния производительности требуется расширенная система команд пересылки
данных и адресации ячеек памяти. Достоинством системы команд AVR можно
считать разнообразные режимы адресации ячеек памяти. Кроме прямой адреса-
ции имеются следующие режимы: косвенная, косвенная с постинкрементом,
косвенная с предекрементом и косвенная со смещением.
Регистры ввода/вывода располагаются в так называемом адресном про-
странстве ввода/вывода размером 64 байт. Их можно разделить на две группы:
служебные регистры микроконтроллера и регистры, относящиеся к периферий-
ным устройствам (в том числе порты ввода/вывода). Подробное описание дан-
ных регистров происходит одновременно с изучением конкретного периферий-
ного узла.
Среди регистров ввода/вывода есть регистр, используемый наиболее ча-
сто в процессе выполнения программы. Это регистр статуса SREG. Он распола-
гается по адресу $3F и содержит набор флагов (табл. 5.1), показывающих теку-
53
щее состояние микроконтроллера. Большинство флагов автоматически уста-
навливаются в соответствии с результатом выполнения команд. Все разряды
SREG доступны как для записи, так и для чтения. После сброса микроконтрол-
лера регистр обнулен.
Таблица 5.1 – Разряды регистра состояния SREG
Do'stlaringiz bilan baham: |