Скачиваний:
1
Добавлен:
26.12.2024
Размер:
392.13 Кб
Скачать

Вычислительная

техника

Лекция 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

Соседние файлы в папке лекции