LINUX.ORG.RU

«тонкая» настройка контроллера прерываний


0

0

Наблюдается странная картина: имеется 2 компа, на одном QNX 4.xx, на другом винды (XP). Одна и та же плата (ISA) работает на одном компе(QNX), но не работает на другом(XP). Причина: как выяснилось, винды ловят прерывания по заднему фронту сигнала, а QNX - по переднему. Если в прошивке платы инвертировать сигнал прерывания, винды начинают ловить прерывания, а QNX перестает. Сигнал прерывания сбрасывается платой по чтению определенного порта из обработчика прерывания, а поскольку нет ни одного вхождения в обработчик, то и сигнал никогда не сбрасывается.

Вариант с генерацией 2х прошивок не катит совершенно, как и вариант с управлением «инвертированностью» сигнала прерывания на плате - плата должна работать одинаково под любой ОСью.

Курение мануалов показало, что вроде бы в современных контроллерах прерываний есть возможность настройки отдельных линий на срабатывание по определенному уровню/фронту, но реальная информация доступна только для контроллера 8259/8259A и т.п., в котором такой фичи нету и не было никогда.

Может, кто-то сталкивался с аналогичной ситуацией и заставлял-таки контроллер настроиться на нужный фронт?

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