137
Прим.:
1.
Если конфигурационный бит BOOTRST запрограммирован, то микроконтроллер вы-
полняет переход на адрес сброса в загрузочном секторе, см. «Само-программирование
из сектора начальной загрузки с поддержкой чтения во время записи».
2.
Если установлен бит IVSEL в регистре MCUCR, то векторы прерываний перемеща-
ются в начало загрузочного сектор флэш-памяти. В этом случае к адресу каждого век-
тора прерывания из таблицы прибавляется стартовый адрес загрузочного сектора
флэш-памяти.
3.
Прерывания по адресам $0030 - $0044 не существуют в режиме совместимости с
ATmega103.
В таблице 4.51 показано расположение векторов сброса и прерываний в
зависимости от различных установок BOOTRST и IVSEL. Если программа не
использует прерывания, то она может быть размещена равномерно, используя
ячейки с адресами векторов прерываний для хранения программного кода.
Возможен также случай, когда вектор сброса располагается в секторе приклад-
ной программы, а векторы прерываний – в
загрузочном секторе или наоборот.
Таблица 4.51
Размещение векторов сброса и прерываний
BOOTRST IVSEL Адрес сброса Начальный адрес векторов прерываний
1 0 $0000 $0002
1 1 $0000
Адрес сброса в загрузочном секторе +
$0002
0 0
Адрес сброса в загрузочном сек-
торе
$0002
0 1
Адрес сброса в загрузочном сек-
торе
Адрес сброса в загрузочном секторе +
$0002
Прим.: Для конфигурационного бита BOOTRST «1» означает незапрограммированное со-
стояние, «0» - запрограммированное.
Ниже приведено типичные и общие программные установки адресов
сброса и векторов прерываний у ATmega128:
Адрес Инструкция Комментарий
$0000 jmp RESET ; Переход на обработку сброса
$0002 jmp EXT_INT0 ; Переход на обработку запроса IRQ0
$0004 jmp EXT_INT1 ; Переход на обработку запроса IRQ1
$0006 jmp EXT_INT2 ; Переход на обработку запроса IRQ2
$0008 jmp EXT_INT3 ; Переход на обработку запроса IRQ3
$000A jmp EXT_INT4 ; Переход на обработку запроса IRQ4
$000C jmp EXT_INT5 ; Переход на обработку запроса IRQ5
$000E jmp EXT_INT6 ; Переход на обработку запроса IRQ6
$0010 jmp EXT_INT7 ; Переход на обработку запроса IRQ7
$0012 jmp TIM2_COMP ; Переход на обработку при выполнении условия сравнения тай-
мера 2
$0014 jmp TIM2_OVF ; Переход на обработку при переполнении таймера 2
$0016 jmp TIM1_CAPT ; Переход на обработку при захвате фронта таймером 1
$0018 jmp TIM1_COMPA ; Переход на обработку при срабатывании компаратора А тайме-
ра 1
$001A jmp TIM1_COMPB ; Переход на обработку при срабатывании компаратора В тайме-
ра 1