[an error occurred while processing this directive] [an error occurred while processing this directive]
Ответ:
(«Телесистемы»: Конференция «Программируемые логические схемы и их применение»)
[an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive]

Отправлено IgorK 27 сентября 2001 г. 00:55
В ответ на: В PCI шине. отправлено -=Sergei=- 26 сентября 2001 г. 18:54

>>Как контроллер прерываний узнает...
Все однофункциональные платы на PCI используют INTA#. Каждой плате приписан свой IRQx. Эти два 8-разр. значения прописаны в Conig.Memory карты (первое - read_only, второе назначает система). Каждому IRQx соответствует INTxx (это см. в ссылке). INT0-INT15 имеют разный приоритет. Перед тем как прерывание использовать необходимо загрузить резидентную программу - обработчик прерывания - это ясно(по поводу WinNT и т п советую http://www.jungo.com/windriver.html).
Допустим, установлено три платы - все на INTA#. Им приписаны (к примеру) IRQ10=INT72h, IRQ11=INT73h и IRQ12=INT74h. Активизация INTA# приведет к последовательному выполнению обработчиков, чьи адреса (векторы прерывания) соответствуют INT72h, INT73h, INT74 (в такой последовательности - есть приоритет). Каждая плата должна иметь регистр (реализация, адрес произвольно) который программа-обработчик будет опрашивать чтобы выяснить не ее ли это прерывание сработало. И если ее то она должна выполнить действия (посылка в порт, память адр. пространства платы) которые уберут выставленный INTA#.
И еще важно. Предпоследним шагом в обработчике (перед тем как сделать POP DS...IRET) нужно очистить так называемые биты 'in-service' (они как раз в контроллере) - для IRQx и для IRQ2. Иначе первая обработка окажется и последней. Ну и при установке вектора прерывания не забыть соотв. INTxx разрешить. Еще раз рекомендую внимательно изучить документ в ссылке внизу.
--IgorK

Составить ответ  |||  Конференция  |||  Архив

Ответы


Отправка ответа

Имя (обязательно): 
Пароль: 
E-mail: 

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 

URL изображения: 


Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru