Внешние прерывания

Регистр External Interrupt Vector Register (IVR) при чтении возвращает наиболее приоритетный немаскированный номер (вектор) среди ожидающих обработки внешних прерываний. Регистр IVR доступен только для чтения, запись в него запрещена (недопустимая операция).

Регистр IVR
                                                                                                                             
reserved (0) vector  

Если имеет место внешнее прерывание, то чтение из IVR имеет побочные эффекты. Процессор вычеркивает вектор прерывания из категории ожидающих и переводит в категорию обрабатываемых. Все вектора такого же и более низкого приоритета маскируются до тех пор, пока процессор не окончит обработку этого прерывания. Индикатором окончания является любая запись в специальный регистр EOI.

Если ожидающих внешних прерываний нет или все внешние прерывания маскированы, IVR возвращает специальное значение – нулевой вектор, при этом чтение не имеет побочных эффектов.

Регистр End of External Interrupt Register (EOI) на пару с регистром IVR управляет обслуживанием/маскированием прерываний. Чтение из EOI смысла не имеет, а возвращаемое значение неопределено. Запись в EOI означает что программное обеспечение закончило обслуживать последнее наиболее приоритетное прерывание, полученное от IVR. Процессор вычеркивает последний вектор прерывания из категории обслуживаемых и снимает маскирование прерываний с меньшим или равным приоритетом.

Регистр Task Priority Register (TPR) управляет принудительным маскированием внешних прерываний в зависимости от их приоритетности. Все векторы внешних прерываний равные или меньшие mip (mask interrupt priority) маскируются.

Регистр TPR
                                                                                                                             
ignored mip  

Регистры External Interrupt Request Registers (IRR0-3) хранят 256-битовый вектор ожидающих обработки асинхронных внешних прерываний. Установленный в 1 бит в регистре IRR означает, что процессор получил внешнее прерывание. Соответствующий прерыванию бит очищается в 0 при чтении IVR. Также бит IRR очищается если прерывание относится к категории самоснимаемых. Регистры IRR доступны только для чтения, запись в них запрещена (недопустимая операция).

Регистры IRR
                                                                                                                             
IRR0: bits 63-16    
IRR1: bits 127-64  
IRR2: bits 191-128  
IRR3: bits 255-192  

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



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