Частина тексту файла (без зображень, графіків і формул):
МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
національний університет “Львівська політехніКА”
КАФЕДРА ЕЛЕКТРОННИХ ОБЧИСЛЮВАЛЬНИХ МАШИН
Лабораторна робота №4
з курсу “Комп’ютерні системи”
на тему: “Моделювання пристрою обробки переривань”.
Підготував:
cтудент КІ3
Львів 2005
Мета роботи: створити модель пристрою обробки переривань.
Функція, яка моделює пристрій обробки переривань:
void pic::entry(){
if (irq0.read() == true)
{
intrq.write(true);
vectno.write(0);
} else
if (irq1.read() == true)
{
intrq.write(true);
vectno.write(1);
} else
if (irq2.read() == true)
{
intrq.write(true);
vectno.write(2);
} else
if (irq3.read() == true)
{
intrq.write(true);
vectno.write(2);
} else
if(irq4.read()==true)
{
intrq.write(true);
vectno.write(4);
}else
if(irq5.read()==true)
{
intrq.write(true);
vectno.write(5);
}else
if(irq6.read()==true)
{
intrq.write(true);
vectno.write(6);
}else
if(irq7.read()==true)
{
intrq.write(true);
vectno.write(7);
}else
if(irq8.read()==true)
{
intrq.write(true);
vectno.write(8);
}else
if(irq9.read()==true)
{
intrq.write(true);
vectno.write(9);
}else
if(irq10.read()==true)
{
intrq.write(true);
vectno.write(10);
}else
if(irq11.read()==true)
{
intrq.write(true);
vectno.write(11);
}else
if(irq12.read()==true)
{
intrq.write(true);
vectno.write(12);
}else
if(irq13.read()==true)
{
intrq.write(true);
vectno.write(13);
}else
if(irq14.read()==true)
{
intrq.write(true);
vectno.write(14);
}else
if(irq15.read()==true)
{
intrq.write(true);
vectno.write(15);
if ((intack_cpu.read() == true)&&(cs.read()==true))
{
intrq.write(false);
}
}
Змодельований пристрій обробки переривань може опрацьовувати 16 переривань, які мають приорітет (в нульового переривання – найвищий приорітет). Приорітети переривань реалізуються за допомогою конструкцій if – else: спочатку перевіряється, чи не є отримане переривання нульовим; якщо ні – то, чи не є воно нершим, і т.д. Якщо, дійшовши до останнього переривання, обробник не знайшов відповідності, то генерується false.
Ви не можете залишити коментар. Для цього, будь ласка, увійдіть
або зареєструйтесь.
Ділись своїми роботами та отримуй миттєві бонуси!
Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!