6
обработки. Если соответствующий бит
регистра масок прерываний (IMR –
Interrupt Mask Register) установлен, а флаг INTM сброшен, то TMS320x24x
подтверждает запрос на прерывание и вызывает ПОП.
Все аппаратные прерывания имеют уровень приоритета от 1 до 10 (1 –
наивысший приоритет). Когда более одного прерывания ожидают обработки,
то прерывание более высокого приоритета будет обслужено первым. Осталь-
ные будут обслужены также в порядке приоритета потом. Например, если
предположить, что INT1 и INT2 одновременно зафиксированы в регистре
ждущих прерываний и не замаскированы, то INT1 будет обслужено первым,
а INT2 вторым. В свою очередь, внутри каждого уровня прерываний, муль-
типлицируемого от разных источников, источники имеют различные приори-
теты, в соответствии с которыми схема разрешения конфликтов передает за-
прос в регистр ждущих прерываний.
1.2.1. Регистр ждущих прерываний
Регистр ждущих прерываний (IFR – Interrupt Flag Register) — это 16-
разрядный регистр, отраженный в памяти данных по адресу 0006h, предна-
значенный для идентификации и отмены ждущих прерываний. IFR содержит
флаговые разряды для всех маскируемых прерываний. Когда маскируемое
прерывание запрошено, флаг в соответствующем регистре управления уста-
навливается в 1. Если бит маски в этом же регистре установлен в 1, то запрос
на прерывание посылается в соответствующий флаг регистра ждущих пре-
рываний. Это означает, что прерывание отложено и ждет подтверждения.
Вы можете читать IFR, чтобы идентифицировать ждущие прерывания
и писать в IFR, чтобы отменить ждущее прерывание. Для отмены одного
прерывания надо записать 1 в соответствующий бит регистра ждущих пре-
рываний. Все ждущие прерывания могут быть отменены записью текущего
содержимого IFR в IFR. Очистить флаг в IFR могут следующие события:
9 TMS320x24x подтвердил прерывание;
9 перезапуск (RESET) TMS320x24x.
Важные замечания:
9 для очистки бита IFR в него надо записать 1, а не 0;
9 когда маскируемое прерывание подтверждено, очищается только флаг
в IFR; флаг же в соответствующем управляющем регистре не очищает-
ся и, если это требуется, он должен быть очищен программно;
9 когда прерывание запрошено инструкцией INTR, и соответствующий
бит IFR установлен, то TMS320x24x не очищает его автоматически; ес-
ли программа требует очистки флага, то это надо сделать программно.
15 – 6 5 4 3 2 1 0
Зарезервировано INT6 INT5 INT4 INT3 INT2 INT1
0 R/W1C–0 R/W1C–0 R/W1C–0 R/W1C–0 R/W1C–0 R/W1C–0
0 – при чтении всегда 0;
R – read access (доступен для чтения);