Общая характеристика системы прерываний процессоров платформы С5000

Прерывания вызываются аппаратными или программными сигналами и используются для приостановки основной программы и выполнения процедуры обработки прерывания (ISR). Как правило, прерывания генерируются аппаратными устройствами, которые должны передать или принять данные от C54x DSP (например, АЦП, ЦАП или другие процессоры). Прерывания могут также использоваться, чтобы сообщить о том, что имел место специфический случай (например, таймер закончил счет).

C54x DSP поддерживает два типа прерываний: программные и аппаратные:

• Программные прерывания требуют выполнения команд (INTR, TRAP или RESET).

• Аппаратные прерывания требуют сигналов от физических устройств и бывают двух типов:

o Внешние аппаратные прерывания вызываются сигналами от внешних прерывающих портов.

o Внутренние аппаратные прерывания вызвываются сигналами от внутренних периферийных устройств.

Когда несколько аппаратных прерываний возникает в одно и то же время, C54x DSP обслуживает их согласно приоритету (высший приоритет имеет номер 1).

Аппаратные и программные прерывания могут быть отнесены к одной из следующих двух категорий:

• Маскируемые прерывания. Это аппаратные или программные прерывания, которые могут быть заблокированы (замаскированы) или разрешены (размаскированы) программно. C54x DSP поддерживают до 16 маскируемых пользовательских прерываний (SINT15-SINT0). Каждое устройство использует подмножество из эти 16 прерываний. Некоторые из них имеют два названия, потому что они могут быть вызваны программным обеспечением или аппаратными средствами, например:

o INT3–INT0 (внешние)

o BRINT0, BXINT0, BRINT1 и BXINT1 (последовательный порт)

o TINT0 и TINT1 (таймер)

• Немаскируемые прерывания. Эти прерывания не могут быть заблокированы. Немаскируемыми прерываниями являются все программные прерывания и два внешних аппаратных прерывания: RS (сброс) и NMI (немаскируемое прерывание), при этом RS и NMI могут также быть установлены программно. Немаскируемое прерывание RS сбрасывает все установленные режимы C54x DSP.

Обработка прерывания состоит из трех стадий:

1) Получение запроса на прерывание. Приостановка главной программы запрашивается программным обеспечением или аппаратными средствами. Если это маскируемое прерывание, устанавливается соответствующий бит в регистре флажков прерываний (IFR), когда прерывание получено.

2) Подтверждение прерывания. C54x DSP должен подтвердить запрос на прерывание. Если прерывание маскируемое, должны быть выполнены определенные условия для того, чтобы C54x DSP подтвердил их. Для немаскируемых аппаратных прерываний и для программных прерываний подтверждение следует немедленно.

3) Выполнение подпрограммы обслуживания прерывания (ISR). Когда прерывание подтверждено C54x DSP выполняет команду перехода, которая размещается по определенному адресу (вектор прерывания) и выполняет ISR.

Регистр флагов прерывания IFR – отображаемый на память регистр ЦП, который идентифицирует и сбрасывает активное прерывание (рис. 6.1).

Прерывание устанавливает соответстующий флажок в IFR, пока он не будет определен ЦП. Любое из следующихо четырех события очищает флажок прерывания:

• C54x DSP сброшен (RS - низкий).

• Прерывание принято.

• Записана 1 в соответствующий бит IFR.

• Выполнена команда INTR с соответствующим номеро прерывания.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: