Презентация. Обработка прерываний

Download Report

Transcript Презентация. Обработка прерываний

Презентация. Обработка
прерываний
ПЛАН
•Системный сброс
•WatchDog Timer
•Обработка прерываний
1
RESET (СБРОС) ARM7
• Режим работы – Supervisor (сохранение регистров R13-R14)
• Адрес вектора прерывания 0х00000000
Источники сброса:
• RESET пин контроллера
• Watchdog Reset
• Power-On Reset (POR)
• Brown-Out-Detector (BOD) Reset
2
РЕГИСТР ИДЕНТИФИКАЦИИ ИСТОЧНИКОВ СБРОСА
Reset Source Identification Register (RSIR)
В Keil - RSID
D4-D7
D3
D2
D1
D0
-
BODTR
WDTR
EXTR
POR
Сброс по BOD
Сброс по Watchdog
Если EXTR=1, сброс по RESET
Если POR=1, сброс выполнен по POWER-ON
3
Внешний сброс
Особенности:
• Триггер Шмидта во входной цепи
• Фильтр импульсных помех
• Минимальная длительность внешнего
сброса 10мС при включении питания и
300нС в остальных режимах
• Совместно с P0.14 используется для
включения внутрисхемного
программирования
4
WatchDog Timer (WDT)
Особенности:
• Выполняет сброс контроллера если WDT не
перезагружается при помощи feed последовательности
(например, при зависании программы).
• Режим отладки
• Некорректная feed последовательность вызывает сброс
или прерывание, если оно разрешено.
• Устанавливается WDTR флаг при сбросе от WDT
• В основе - программируемый 32-разрядный таймер с
внутренним предварительным делителем.
5
Диаграмма функционирования WatchDog таймера
Минимальный интервал = TPCLK x256x4
Максимальный интервал = TPCLK x232x4
6
РЕГИСТР КОНФИГУРАЦИИ СТОРОЖЕВОГО ТАЙМЕРА
Watchdog Mode register (WDMOD)
D4-D7
D3
D2
D1
D0
-
WDINT
WDTOF
WDRESET
WDEN
Флаг прерывания
Сброс выполнен
Если WDRESET=1, разрешен сброс
Если WDEN=1, разрешена работа WDT
Пример:
WDMOD=0x03 ;
// Разрешить работу и сброс по WDT
7
Регистры WatchDog Timer
WDMOD
Регистр режима WDT. Содержит биты статуса и
управления режимом.
WDTC
Регистр константы таймера. Определяет время
переполнения таймера.
WDFEED
WDTV
Регистр последовательности отключения.
(Сначала 0x55, затем 0xAA)
Регистр значения таймера. Определяет текущее
время таймера.
8
Прерывания
Особенности:
•
•
•
•
ARM PrimeCell векторный контроллер прерываний
32 источника прерывания
16 векторов IRQ прерывания.
16 уровней приоритета прерываний с возможностью
динамического переназначения
Режимы:
• Быстрое прерывание FIQ
• Невекторное прерывание IRQ
• Векторное прерывание IRQ
9
Прерывание от внешнего
источника
Особенности:
• FIQ или IRQ прерывание
• Входы EINT0-EINT1 подключены к P0,P1
• Прерывание по фронту, срезу или уровню
внешнего источника
• При возврате из прерывания
соответствующий бит регистра EXTINT
должен быть очищен
10
Регистры прерывания от
внешнего источника
EXTINT
Регистр флагов внешнего прерывания. При
записи лог.1 – сбрасывает флаг.
INTWAKE
Регистр разрешения пробуждения контроллера
при прерывании.
EXTMODE
Регистр режима прерывания. Лог.0 – по уровню,
Лог. 1 – по фронту или срезу.
EXTPOLAR
Регистр полярности внешнего сигнала. Лог.0 –
прерывание по срезу или по низкому уровню, в
зависимости от EXTMODE; Лог. 1 – по фронту
или высокому уровню..
11
РЕГИСТР ФЛАГОВ ВНЕШНЕГО ПРЕРЫВАНИЯ (EXTINT)
D4-D7
D3
D2
D1
D0
-
EINT3
EINT2
EINT1
EINT0
Флаг прерывания от внешнего входа INT0
•При чтении флага определяется источник прерывания
•При записи лог.1 флаг сбрасывается
Пример:
EXTINT=0x01 ;
// Сбросить внешнее прерывание 0
12
Структура регистров управления
прерываниями
13
Быстрое прерывание FIQ
Особенности:
• Режим работы – FIQ (сохранение R7-R14)
• Адрес вектора прерывания 0х0000001C
• Приоритет прерывания – 3
• Устанавливает флаг F регистра CPSR
• Рекомендуется только один источник
14