Скачиваний:
144
Добавлен:
21.02.2014
Размер:
1.47 Mб
Скачать

9.2.1 Программное прерывание (swi).

Программное прерывание выполняется аналогично другим командам. Прерывание SWI имеет приоритет над другими прерываниями, если они замаскированы. (биты I и X регистра условий установлены). Процесс обработки SWI похож на процесс обработки других маскируемых прерываний: устанавливается бит I, регистры процессора сохраняются в стеке и т.д.

Примечание

Команда SWI не будет выполнена, если ожидается обработка другого прерывания. Однако как только началось выполнение команды SWI, никакое другое прерывание не может быть обработано до тех пор, пока не будет выбран вектор SWI.

9.2.2 Прерывание по неверному коду команды.

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

9.2.3 Биты маскирования прерываний регистра условий.

После сброса устанавливаются биты I и X для того, чтобы запретить все маскируемые прерывания и прерывание XIRQ/. Программно можно очистить бит X командой TAP, разрешая таким образом прерывания XIRQ/. После этого уже нельзя установить бит X, то есть это прерывание на самом деле является немаскируемым. Изменение бита I, связанного с системой прерываний, также не оказывает никакого влияния на бит X. В системе прерываний XIRQ/ имеет более высокий приоритет над всеми источниками, которые маскируются битом I. Все связанные с битом I прерывания действуют в соответствии со своей системой приоритетов. При возникновении прерывания, связанного с битом I, этот бит автоматически устанавливается после сохранения в стеке регистра условий, но бит X не изменяется. При возникновении прерывания, связанного с битом X, аппаратно устанавливаются оба бита-X и I после сохранения в стеке регистра условий. Команда RTI (возврат из прерывания) восстанавливает состояние битов X и I на момент запроса прерывания.

9.2.4 Структура приоритетов.

Для того, чтобы разрешить ситуацию одновременного запроса нескольких прерываний, у различных прерываний аппаратно установлен разный приоритет. Однако один из источников прерывания маскируемый битом I можно программно сделать прерыванием с наивысшим приоритетом. Первые шесть источников прерываний не маскируются битом I регистра условий и имеют следующий фиксированный приоритет: сброс, сброс тактового монитора, сброс системы слежения, прерывание по неверному коду командыиXIRQ/. (SWI - является командой и имеет наивысший приоритет после сброса в том смысле, что после выборки кода SWI никакое другое прерывание не обрабатывается до тех пор, пока не будет выбран вектор SWI). Каждый из этих источников прерываний подключен на вход системы разрешения приоритетов. Наивысший приоритет источнику, маскируемому битом I назначается программно - регистром HPRIO, при этом вход наивысшего прерывания соединяется с выбранным источником прерывания. Для того, чтобы избежать конфликтов, регистр HPRIO можно перезаписывать только если прерывания маскируемые битом I запрещены (бит I регистра условий установлен в логическую единицу). Прерывание, которому назначается наивысший приоритет, можно запретить соответствующим битом управления или битом I регистра условий. При назнаначении прерыванию наивысшего приоритета его вектор не изменяется.

Рисунки 9-5, 9-6, и 9-7 иллюстрируют процесс обработки прерывания и его связь с процессом обычной работы. Рисунок 9-5 показывает, как процессор выполняет сброс и как обнаружение прерывания соотносится с выборкой кода обычной команды. Рисунок 9-7 более детально показывает блока прерывания SCI представленный на рисунке 9-6. Рисунок 9-7 показывает разрешение конфликта прерываний внутри подсистемы SCI.

Рисунок 9-5. Обработка прерываний (лист 1).

Рисунок 9-5. Обработка прерываний (лист 2).

Замечание: здесь представлено расширение рисунка 9-5.

Рисунок 9-6. Разрешение приоритетов прерываний (лист 1).

Замечание: здесь представлено расширение рисунка 9-5.

Рисунок 9-6. Разрешение приоритетов прерываний (лист 2).

Замечание: здесь представлено расширение рисунка 9-6.

Рисунок 9-7. Разрешение приоритетов прерываний от SCI.

Соседние файлы в папке МС68НС11Е9