LINUX.ORG.RU

маскирование контроллера прерываний

 


0

5

Очень хочется увидеть прерывания от платы Di32-5 фирмы Fastwel, которая сидит на шине ISA.
На плате есть регистр в который задаем линию прерываний, в биосе закрепляем эту линию за шиной ISA, и регистрируем свой обработчик на эту линию:
ret = request_irq(IRQ_NUM, (void*)interrupt_handler, IRQF_DISABLED, «DI_intrpt», NULL);
И для других плат этого было достаточно.

В примере, прилогающемся к плате, есть такая строчка:
// Unmask PC-interrupt
outportb(0x21,inp(0x21) & ~IRQMask); //IRQMask 0x20 - irq 5
И под DOC все замечательно работает, потому что после выполнения этой строчки высокий уровень, который стоит на шине на выбранной линии прерываний, становиться низким и прерывания возникают высоким уровнем. Как бы провернуть это под Linux?


проще всего через ioperm/iopl, через inp, outp или через /dev/port. но обычно всё-таки с девайсами напрямую работают через драйвер.
как-то так:
http://tldp.org/HOWTO/IO-Port-Programming-2.html
неужели ещё где-то есть живая шина ISA?

Iron_Bug ★★★★★
()
Последнее исправление: Iron_Bug (всего исправлений: 1)
Ответ на: комментарий от Iron_Bug

Я крайний раз видел лет 5 назад и это было начало разработки, так что где-то сейчас оно вполне живёт и поддерживается.

Сам правда не участвовал, мимокрокодил.

Dark_SavanT ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.