ТЕСЕЙ (архитектура микроконтроллера)/Прерывания

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 18:13, 28 февраля 2016.

Внешние события для CPU. Прерывания используются для отслеживания различных событий.

В х86 прерывания программные и аппаратные.

В ТЕСЕЙ только аппаратные прерывания, представляют собой сигнал на выводе процессора.

Прерывания бывают:

  • Маскируемые - процессор не реагирует на их возникновение.
  • Немаскируемые - те прерывания, которые невозможно отключить.
TemplateExampleIcon.svg Пример Пример
В х86 аппаратная ошибка оборудования, ошибка checksum и т.д.


В ТЕСЕЙ 15 зарезервированных прерываний (0-F); 16 векторов прерываний, под них зарезервированы 16 первых ячеек памяти.

Немаскируемые прерывания:

0 - начальный пуск
1 - сторожевой таймер (WDT)
2 - переполнение стека команд или данных
3 - интервальный таймер
...

Отключение и включение всех маскируемых прерываний управляется первыми (n-1) битами в регистре статуса (состояние процессора располагается по 0 адресу в системе).

Вектор - фиксированный адрес обработчика или адрес возврата из обработчика прерываний.

Команда возвращения из прерывания извлекает адрес из стека. Прерывание аппаратно похоже на вызов подпрограммы.

Вызов прерываний:

  • стек команд - адрес возврата;
  • стек данных - текущее состояние регистра CPU.

Замечание: в случае вызова подпрограммы фиксируется только адрес возврата.