Помощь в учёбе, очень быстро...
Работаем вместе до победы

Сброс и обработка прерываний

РефератПомощь в написанииУзнать стоимостьмоей работы

ИС 1887ВЕ1У содержит несколько различных источников прерывания. Каждое из этих прерываний и отдельный вектор сброса имеют отдельный программный вектор в пространстве памяти программ. Все прерывания имеют свои отдельные разряды разрешения, которые должны быть установлены вместе с установкой разряда разрешения глобального прерывания в регистре состояний для того, чтобы разрешить прерывание… Читать ещё >

Сброс и обработка прерываний (реферат, курсовая, диплом, контрольная)

ИС 1887ВЕ1У содержит несколько различных источников прерывания. Каждое из этих прерываний и отдельный вектор сброса имеют отдельный программный вектор в пространстве памяти программ. Все прерывания имеют свои отдельные разряды разрешения, которые должны быть установлены вместе с установкой разряда разрешения глобального прерывания в регистре состояний для того, чтобы разрешить прерывание. В зависимости от значения программного счетчика, прерывания могут быть автоматически запрещены, когда программируются биты блокировки BLB02 или BLB12. Подобная особенность повышает безопасность программного обеспечения. Для получения подробной информации см. подраздел 3.20 «Программирование памяти». Младшие адреса в пространстве памяти программ, по умолчанию, определены как векторы сброса и прерывания. Перечень прерываний устанавливает также уровень приоритетов для различных прерываний. Чем ниже адрес, тем выше уровень приоритета.

Сброс имеет наивысший приоритет, а следующим является INT0 — запрос 0 внешнего прерывания. Векторы прерывания могут быть перемещены в начало секции загрузки флэш-памяти путем установки разряда IVSEL в регистре управления общим прерыванием (GICR). Для подробного рассмотрения вопроса по «прерываниям» см. соответствующий подраздел. Вектор сброса может быть также перемещен в начало секции загрузки флэш-памяти с помощью программирования бита BOOTRST.

При возникновении прерывания бит I разрешения глобального прерывания очищается и все прерывания блокируются. Пользовательское ПО может записывать логическую единицу в бит I для разрешения вложенных прерываний. Все разрешенные прерывания могут прерывать текущее прерывание. Разряд I устанавливается автоматически при исполнении возврата из команды прерывания RETI. Существует два основных типа прерываний. Первый тип запускается событием, которое устанавливает флаг прерывания. Для этого типа прерываний программный счетчик переходит на вектор прерываний для исполнения подпрограммы обработки прерываниями, при этом аппаратно очищается соответствующий флаг прерывания. Флаги прерывания могут также очищаться путем записи логической единицы в позицию разряда соответствующего флага. Если возникает условие прерывания в то время, как соответствующий разряд прерывания сброшен, флаг прерывания будет установлен и запомнен до разрешения прерывания или он будет сброшен программным способом. Подобным образом, если возникает одно или несколько условий прерывания при сброшенном разряде глобального разрешения прерывания I, соответствующий флаг (и) будет установлен и внесен в память до тех пор, пока установится I, а затем будет выполнена обработка прерываний в порядке приоритета. Второй тип прерываний будет запущен как только возникнет условие прерывания. Эти прерывания не обязательно должны иметь флаги прерывания. Если условие прерывания исчезает до разрешения прерывания, то прерывание не будет запущено. После выхода из прерывания микропроцессор всегда возвращается к основной программе и исполняет еще одну команду до обслуживания любого ждущего прерывания. Обратите внимание на то, что регистр статуса не сохраняется автоматически при возврате из процедуры прерывания. Это должно выполняться программно. При использовании команды CLI для блокировки прерывания, прерывания будут немедленно блокированы. Ни одно прерывание не будет выполняться после команды CLI, даже если оно происходит одновременно с командой CLI. Следующий пример показывает, как это может быть использовано для того, чтобы избежать прерываний во время запланированной последовательности записи ЭСППЗУ.

Показать весь текст
Заполнить форму текущей работой