
- •Вычислительная
- •Обмен по прерываниям.
- •Структура регистра текущего статуса программы
- •В CortexA9 разряды 7 и 6 CPSR указывают на маскирование возможности прерываний от
- •Режим основных настроек.
- •Основные действия
- •Обмен между статусным
- •3.Установка нового статуса, соответствующего типу прерывания -
- •Таблица векторов прерываний.
- •Прием запросов на аппаратное
- •Общая структура Generic Interrupt Controller (GIC)
- •Группы запросов по степени защищенности ПО.
- •Преобразование приоритетов в
- •Статусы запросов.
- •Основные регистры распределителя.
- •Порядок настройки регистров распределителя
- •Регистры CPU interface
- •Действия при выходе в основную программу.

Вычислительная
техника
Лекция 7

Обмен по прерываниям.
•Прерывания.
•1. Программные. Код генерируется в основной программе.
•2. Аппаратные. Код генерируется по запросу внешнего устройства.
•3. Исключительные ситуации. Код генерируется внешней программой – оболочкой. (Компилятор, отладчик).

Структура регистра текущего статуса программы
В CortexA9 разряды 7 и 6 CPSR указывают на маскирование возможности прерываний от внешних источников. Флаг I (IRQ) маскирует сигнал запроса на стандартную обработку, флаг F(FIQ) маскирует сигнал запроса на скоростную обработку.
Установка «1» при невозможности обслуживания запроса.
5-й разряд указывает, какое кодирование применяется в исполняемых операциях. Возможно ARM- кодирование с 32-разрядными инструкциями и Thumb – кодирование с 16-разрядными. Наибольшее применение получил синтаксис Thumb-2. В нем смешанный формат инструкций.
Код, записанный в младших разрядах, определяет способ функционирования процессорной системы. Два режима, User и System, предполагают работу основной программы в отсутствии запросов на прерывания. Режим Supervisor имеет два вектора: RESET – загрузка и упаковка системы; программное прерывание.
Режимы IRQ и FIQ – аппаратные прерывания.
Режимы Abort и Undefined – исключительные ситуации, прерывание от компилятора.

Режим основных настроек.

Основные действия
процессора при получении кода прерывания.
1.Сохранение точки выхода в основную программу: каждый раз, при поступлении кода прерывания, состояние PC, указывающее на адрес следующей команды, копируется в LR. Глубина стека, образованного для LR, определяет количество возможных вложений;
2.Сохранение текущего статуса из основной программы: состояние
CPSR копируется в стек с указателем в SPSR;

Обмен между статусным
регистром и регистрами общего назначения.
•Копирование статуса в регистр
•MRS Rd, CPSR
•Для копирования в регистр статуса нового режима и масок, необходима запись:
•MSR CPSR_c, Rd
3.Установка нового статуса, соответствующего типу прерывания -
Changes bits 4—0 of CPSR, sets I and F;
4.В зависимости от нового статуса запись вектора в программный счетчик - Vector address PC.
5.Из таблицы векторов в программный счетчик записывается адрес обработчика. В обработчике записан адрес точки входа в процедуру. Он копируется в PC. Сброс масок на запросы!

Таблица векторов прерываний.

Прием запросов на аппаратное
прерывание в структуре DE1-
SoC