Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
378
Добавлен:
21.05.2015
Размер:
7.55 Mб
Скачать
    1. Принцип действия

Чтобы генерация прерываний стала возможной, необходимо установить бит общего разрешения прерываний (бит I) в регистре статуса ЦПУ. После подтверждения прерывания, теряется возможность сброса бита I. Кроме того, перед тем как использовать тот или иной уровень прерываний, его работу нужно разрешить.

После разрешения прерывания и обнаружения его условия, PMIC-контроллер принимает запрос на обработку прерывания. Далее, в зависимости от уровня и приоритета, прерывание переходит либо в статус "подтверждено", либо в статус "отправлено". Если прерывание подтверждается, то в счетчик программы загружается вектор прерывания. По адресу вектора прерывания обычно находится команда перехода к процедуре обработки прерывания. После выхода из процедуры обработки прерывания, возобновляется выполнение программы с того же места, где возникло прерывание. Перед переходом к обслуживанию отправленного прерывания выполняется одна инструкция.

Регистр статуса PMIC-контроллера содержит всю необходимую информацию о состоянии, которая гарантирует возврат PMIC-контроллера на корректный уровень прерывания после выполнения инструкции RETI (возврат из прерывания) в конце процедуры обработки прерывания. Во время выхода из прерывания, PMIC-контроллер перейдет в то состояние, в котором он был перед вводом прерывания. Автоматическое сохранение регистра статуса (SREG) при поступлении запроса на прерывание не предусмотрено. Инструкцию RET (возврат из подпрограммы) нельзя использовать для возврата из процедуры обработки прерывания, т.к. она не возвращает PMIC-контроллер в корректное состояние.

    1. Прерывания

Все прерывания и вектор сброса имеют отдельный адрес в пространстве памяти программ. По наименьшему адресу памяти программ расположен вектор сброса. У каждого из прерываний имеются отдельные биты, с помощью которых можно разрешить или запретить прерывание, а также выбрать его уровень. Данные биты находятся в регистрах управления тех УВВ, которые поддерживают генерацию прерываний. Более детально об этом см. в разделах, посвященных описанию таких УВВ.

У каждого из прерываний имеется связанный с ним флаг прерывания. Данный флаг устанавливается, когда возникает условие для генерации прерывания, независимо от того, разрешено оно или нет. Флаги большинства прерываний автоматически сбрасываются при переходе на вектор прерывания. Флаг прерывания можно сбросить и программно. Для этого необходимо выполнить запись в него единицы. Имеется несколько флагов прерываний, которые не сбрасываются автоматически при переходе на вектор прерывания. Также имеется еще ряд прерываний, флаги которых автоматически сбрасываются при выполнении чтения или записи связанного с ними регистра. Подробности см. в описании каждого отдельного флага прерывания.

Если, во время обработки или отправки запроса одного прерывания, возникает условие для генерации еще одного, но более низкоприоритетного, прерывания, флаг этого прерывания запомнится в установленном состоянии до тех пор, пока до него не дойдет очередь. Если же прерывание не разрешено, но возникает условие для его генерации, флаг прерывания будет все одно установлен и сохранен в таком состоянии до разрешения прерывания или программного сброса этого флага. Аналогичным образом, если возникает одно или несколько условий прерываний, когда сброшен бит общего разрешения прерываний, будут установлены соответствующие флаги прерываний и запомнены в таком состоянии до общего разрешения прерываний. В дальнейшем, очередность обработки всех отправленных запросов будет выполняться с учетом их приоритета.

Предусмотрена возможность блокировки прерываний при выполнении кода программы из защищенного сектора, например, когда запрограммированы биты Boot Lock. Такая возможность улучшает защищенность программы (подробности по настройкам lock-бит см. в описании программирования памяти программ).

Прерывания автоматически блокируются на 4 цикла синхронизации ЦПУ после выполнения записи корректной сигнатуры в регистр защиты от изменения конфигурации (см. раздел 3.12 "Защита от изменения конфигурации").

Соседние файлы в папке Архитектура ЭВМ