Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Книга. Гуржій. 1.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
3.53 Mб
Скачать

Void main (void){

unsigned i;

Int mask;

char c = 'y';

clrscr();

printf("\n\Ведучий контроллер (MASTER)"

"\n ");

//Встановлюємо режим опитування ведучого контролера. //Формуємо 0CW3 та передаємо за адресою 20h, тобто //дозволяємо читання регістра IRR

outp(0x20, 0x0a); //Читаємо стан регістра IRR

printf("\nCTaH регістра IRR :%02.2Х", іnр(0х20));

//Встановлюємо режим опитування ведучого //контролера.

//Формуємо 0CW3 та передаємо за адресою 20h, тобто //дозволяємо читання регістра ISR

outp(0x20, 0x0b); //Читаємо стан регістра ISR

printf("\nCтан регістра ISR :%02.2Х", іnр(0х20)); //Читаємо стан регістра IMR

printf("\nCTaH регістра IMR :%02.2Х", іnр(0х21)); while (c != 'п'){

printf("\n\nBBeAiTb шістнадцятковий код маски або код розмаскування '); scanf("%x", &mask); outp(0x21,mask);

printf("\nCTaH регістра IMR після маскування :%02.2X",inp(0x21));

printf("\n\nГотово !!!, бажаєте ще (Y/N)"); с = getch();

}

  1. За текстом програми нарисуйте схему алгоритму.

  2. На вінчестері створіть каталог РКР.

  3. За допомогою редактора середовища програмування Borland C++ V3.01 створіть символьний файл тексту вивченої Вами програми та запишіть його в каталог РКР.

  1. Виконайте налагодження програми та запустіть її на виконання. Увага!!! При вводі коду слова маски уникайте маскування переривання контролера клавіатури та відеосистеми. Зробіть висновки про Ваш досвід з маскування переривань.

  2. Спробуйте розробити пропозиції з модернізації програми таким чином, щоб з її допомогою можна було б ідентифікувати та отримати на екрані список контролерів замаскованих пристроїв.

  3. Зробіть відповідні зміни в програмі, що дозволять визначити вміст програмно доступних регістрів веденого ПКП.

  4. Увага!!! У кінці роботи запустіть програму на виконання та розмаскуйте всі переривання.

Питання для самоконтролю знань

  1. Яку структуру переривань підтримує режим фіксованих пріоритетів?

  2. Яка послідовність обробки запитів на переривання в режимі фіксованих пріоритетів?

  3. Наведіть приклад взаємодії програм оброблювачів переривань з різними рівнями пріоритетів у режимі повного вкладення та вкажіть порядок їх виконання.

  4. За допомогою якої команди здійснюється скидання тригерів регістра ISR?

  5. Які способи завершення переривання (ЕОІ) Ви знаєте?

  6. Призначення та характеристики звичайної команди ЕОІ. В яких випадках доцільно її застосовувати?

  7. Призначення та характеристики спеціальної команди ЕОІ. В яких випадках доцільно її застосовувати?

  8. Призначення та характеристики команди автоматичного завершення переривання АЕОІ. В яких випадках доцільно її застосовувати?

  9. Для яких цілей використовується режим маскування переривань?

10.Чим маскування переривань відрізняється від заборони переривань скиданням прапорця IF процесора?

  1. Спеціальний режим маскування (SMM). В яких випадках його доцільно застосовувати?

  2. Наведіть приклад обслуговування запитів на переривання в режимі спеціального маскування.

  3. Поясніть відмінність між режимами ініціалізаціїзапитів фронтом та рівнем.

  4. Для яких цілей використовується режим читання стану контролера І8259А?

  5. Вкажіть порядок дій, необхідних для ініціалізації режиму читання стану контролера І8259А.

  6. Призначення режиму опитування джерел переривань (POLL).

  7. Призначення режиму спеціального повного вкладення (SFNM).

Резюме

Система переривань ПЕОМ є багаторежимною та про­грамно доступною для встановлення або зміни поточного режиму обслуговування.

Режим фіксованих пріоритетів підтримує багаторівневу структуру переривань з фіксованим порядком пріоритетів від вищого пріоритету до нижчого. В базовій конфігурації PC AT цей режим використовується як основний. Після ініціалізації вищий пріоритет може бути замінений та присвоєний і іншим входам IRQ при збереженні багато­рівневої структури переривань режиму повного вкладення.

Після завершення виконання програми оброблювача переривання І8259А повинен бути сповіщений про це для скидання відповідних розрядів ISR. Користувачу доступні три різні формати команди кінця переривання ЕОІ:

звичайна команда ЕОІ;

спеціальна команда ЕОІ;

автоматичний режим ЕОІ (АЕОІ).

Вибір цих команд визначається користувачем для конкретних застосувань.

Основна перевага використання звичайних команд ЕОІ полягає в тому, що на відміну від спеціальних команд тут не вимагається вказувати рівень IRQ. Спеціальна команда

ЕОІ конкретно вказує, який розряд повинен бути скинутий в ISR. Перевага автоматичного режиму ЕОІ полягає в непотрібності формування та передавання контролеру спеціальних команд завершення обробки переривання.

У І8259А є регістр IMR (регістр маски переривання), який розширює можливості керування перериваннями. На відміну від тимчасової заборони або дозволу всіх пере­ривань встановленням розряду IF у регістрі прапорців про­цесора, IMR дає можливість індивідуального маскування IRQ.

У випадках, коли необхідно дозволити переривання більш низького пріоритету порівняно з виконуваною про­грамою оброблювача або, іншими словами, дозволити при­строям з більш низьким пріоритетом генерувати переривання, можна використовувати спеціальний режим маскування (SMM).

Шляхом програмного керування користувач може запитувати стан І8259А. Це дозволяє читати внутрішні регістри переривань, що може бути корисним для керу­вання перериваннями під час виконання сервісних програм. З цією метою використовується режим опиту­вання джерел переривань (POLL).

Ваш наступний крок

У цьому занятті Ви побачили, які існують режими функціонування системи переривання і як вони дозволяють користувачам самим встановлювати найбільш раціональний поточний режим для підвищення ефективності обчислюваль­ної системи по обробці запитів переривання. Але для більш повного оволодіння принципами програмного керування системою переривання, необхідно навчитись динамічно змінювати дисципліни обслуговування переривань у заданому режимі ініціалізації. Ці принципи та технологія їх застосу­вання будуть розглянені у наступному занятті.