Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Isr&dpc

5.3K
06 октября 2003 года
mich
4 / / 06.10.2003
Ребята,помогите,кто в силах...
Проблема такая.Пишу собственный обработчик прерывания(WIN2000,SP3)IRQ7 при помощи DDK.Обработчик регистрирую через HalGetInterruptVector(запрашиваю класс устройств Isa) и IoConnectInterrupt.Вроде ошибок нет и вектор возвращается осмысленный, но обработчик не получает управление при попытке "заземлить" 10 ногу разъема параллельного порта(маску,разрешающую прерывания в порт пишу.
HalGet.. делал и Latched, и LevelSensitive - один хрен не работает.В чем может быть дело? Только не говорите, что в ДНК :)

P.S.Еще три вопроса:
-не может ли приводить к отсутствию прерывания неправильная настройка порта через BIOS - хотя я воткнул ECP,т.е. запись в base+400h бит 5-7 001 должна переводить порт в Bi-Di PS/2), а прерывания(после записи разрешающей маски) должны быть?
-какие настройки должны быть у стандартного драйвера параллельного порта(parclass&parport)?
-к какому классу устройств должен относиться драйвер с перехватчиком IRQ7(или все равно:порты или собственный)?
5.3K
10 октября 2003 года
mich
4 / / 06.10.2003
Отвечаю сам себе :)
После устранения пары багов и получения десятка "экранов смерти" все вроде-бы заработало(так сказать..),за исключением пустяка - ISR ,"заточенный" под level_sensitive работает можно сказать непрерывно, и помогает только запрещение прерываний от контроллера LPT.А в latched не получает управления по-прежнему.
Новый вопрос - могет кто-нибудь скажет,какие аппаратные требования к level'ам и фронтам у параллельного порта(скорость нарастания и все такое...).Заранее благодарен.
5.3K
16 октября 2003 года
mich
4 / / 06.10.2003
И еще раз отвечаю сам себе ;)
Проблема ,как оказалось,заключалась в неправильных параметрах HalGetInterruptVector. Единственный работающий вариант - спросить parport.sys о настройках прерываний контроллера параллельного порта через IOCTL_INTERNAL_GET_MORE_PARALLEL_PORT_INFO и потом скормить все это IoConnectInterrupt.Вот такое хреновое лето...
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог