> в материнке есть возможность повесить на одно прерывание > несколько девайсов. Интересно есть ли опыт по железу что с > чем дружит, а что нет
Это нормальное состояние. PCI устройства могут разделять одно прерывание, так что дружит все со всем! :) Чаще всего разделяются прерывания с 9-го и выше (наследие ISA). Вот конфигурация 9-го прерывания на моем компе:
1. Универсальный хост-контроллер USB №1
2. Универсальный хост-контроллер USB №2
3. Creative SB Live! Value
4. 3Com Etherlink 10/100 PCI
Ответ: девайсы на одном прерывании27.02.02 11:32 Автор: DPP <Dmitry P. Pimenov> Статус: The Elderman
Я конечно не являюсь резработчиком материнских плат и др. железа,
но некоторый опыт в электронике есть.
На ISA шине устройства вешать на одно IRQ нельзя. (чисто электрически)
(Заработать конечно может, но вероятность равна нулю)
На PCI шине устройства вешать на одно IRQ можно,
но все уже будет зависеть от драйверов.
Я натыкалась на такую ситуацию: COM1(мышь) и COM3(модем)
IRQ одно и то же - ни в досе, ни в виндовсе не желают работать,
однако все в линуксе работает. Вывод - 1) железо на одном IRQ работать
может, 2) в виндовсе кривые драйвера.
Пояснения:
1. Как правилино сесть на предывания и слезть с него -
запретить аппаратные прерываиня (CLI), запомнить старый вектор,
сесть на прерывание, инициализировать устройство, запомнить
старое значение разрешенности прерывания в контроллере прерываний,
разрешить прерывание в контроллере прерываний, разрешить
прерывания в процессоре (STI).
2. Как правильно слезть с него - запретить прерывания в процессоре,
проверить, действительно ли вектор прерывания указывает на
наш обработчик, восстановить все (вектор, маску контроллера,
регистры состояния устройства), разрешить прерывания.
3. Как правильно обработать прерывание - в соответствующем
регистре устройства (у COM порта такие регистры есть, у LPT - нет)
проверить - действительно ли прерывание было от нашего устройства
(если нет - то передать управление по старому сохраненному вектору!!!),
сделать что нужно, закончить прерывание в контроллере и в устройстве).
4. Возможные ошибки - не передается прерывание по старому вектору,
если оно было не от нашего устройства или вообще не проверяется
в регистрах устройства - было ли оно вообще или это программный INT,
или это прерывание от другого устройства, сидящего на этом же IRQ.
5. Можно передать управление предыдущему обработчику в любом
случае - как правило это заглушка OUT 20,20; IRET. Можно только в
случае, если прерывание уже было разрешено в маске контроллера
прерываний.
> в материнке есть возможность повесить на одно прерывание > несколько девайсов. Интересно есть ли опыт по железу что с > чем дружит, а что нет
Натыкалась??? Так ты male или female, Дмитрий??? :)27.02.02 12:00 Автор: Sandy <Alexander Stepanov> Статус: Elderman
Ну у тебя и шуточки :)))03.03.02 14:24 Штраф: 30 [Glory, DamNet] Автор: douglas <я знаю - я сволочь, не надо мне об этом напоминать> Статус: Registered
надо помнить, что для работы на 1 прерывании устройства должны поддерживать шаринг этих самых прерываний.
по поводу совместимости - скази и сеть лучше не вешать, также как и видюху, им лучше раздать по отдельности.
далее, в виндах глюки с ними возникают, так как она сама перераздает прерывания, а если ее переглючит, она может и 10 устройств на 1 повесить.
Был случай, когда после сбоя по питанию на 1 прерывание под вин2к повесились видюха, сеть, скази, 2 платы файр вар, звук и плата видеомонтажа.... и все это даже работало.... проблема в том только, что медленно и неустойчиво, так как устройства работают с прерыванием по очереди.
Советы:
стараться избегать шаринга если возможно
в описании мамки читать какие слоты с какими шарятся, и стараться выделить видео, скази, рэйдам и тп отдельные прерывания
проверять, поддерживают ли платы расширения шаринг вообще
(особенно часто возникают проблемы с сетевухами и юсб)