Микропроцессоры и микроконтроллеры

 
 
 
«There are more useful systems developed in languages deemed awful than in languages praised for being beautiful--many more.»
Bjarne Stroustrup
Русский | Українська


Микропроцессоры и микроконтроллеры :: Принципы работы микропроцессоров :: Прерывание программы и принципы обработки прерываний в микропроцессорных системах

Прерывание программы и принципы обработки прерываний в микропроцессорных системах

Прерывание - временное прекращение выполнения основной программы в целях реализации более срочных на текущий момент действий (даже непосредственно не связанных с основной программой), происходящее в произвольный момент времени по запросу внешнего устройства или в случае особой ситуации в процессоре. Система обработки прерываний – это комплекс аппаратных средств в составе вычислительной системы и программно-логических принципов для обработки асинхронных событий.

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

В зависимости от источника запроса прерывания подразделяют на:

внешние - сигналы запросов формируются внешними по отношению к процессору устройствами (это могут быть сигналы о готовности данных в устройствах ввода-вывода, о сбоях оборудования, исчезновении питания и т.п.);

внутренние - формируемые самим процессором в случае возникновения исключительных ситуаций (деление на нуль, переполнение);

программные - вызов процедур обработки прерываний непосредственно из выполняемой программы с помощью специальных команд (обычно таким образом производится обращение к аппаратно-ориентированным функциям вычислителя, таким, как обращение к стандартным устройствам ввода-вывода).