Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: WinAPI и системное программирование > Работа с прерываниями


Автор: drkot 19.9.2006, 19:40
Пока решил поднять вопрос здесь.

Есть железный девайс на PCI шине. С него читается телеметрия. На девайсе есть аппаратный сдвиговый буфер который смотрит портом в шину. Переодически из буфера выбирается информация.
Главное непрерывность процесса (не терять данные). Выбор данных осужествляется очень быстро (чтение из порта). Если постоянно опрашивать буфер получается что процесс заберает на себя значительные ресурсы, а нужно и на обработку малость оставить.
На девасе есть программируемый таймер, который дергает прерывание через заданный интервал времени.

Теперь вопрос.
Как повесить свой обработчик на это прерывание.

PS:  Что такое прерывания и какие они бывают знаю. Под DOS проблем никаких, а вот под NT ....
 

Автор: Romikgy 20.9.2006, 08:55
А под НТ надо драйвер писать , потому как прерывания из 3 кольца не доступтны штатными способами

Автор: drkot 20.9.2006, 11:12
Спасибо конечно. Это я знаю.
Меня интересуют функции доступа (установка и снятие процедуры обработчика).
Принципы то непоменялись прерывания теже 255, это специфика архитектуры. 
Я то могу расчитать адрес по которому надо записывать указатель на обработчик, но боюсь часто систему переустанавливать придется (на этапе отладки).

Автор: Romikgy 20.9.2006, 12:15
может поможет
http://www.realcoding.net/article/view/949?ShmID=a6dac6095d44cf937aa2f2241ece307c

Автор: drkot 20.9.2006, 19:30
Romikgy, спасибо. Хоть ты в моитемы пишеш. smile 

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

Автор: Romikgy 20.9.2006, 20:43
IoConnectInterupt подключение своего прерывания

Автор: drkot 25.9.2006, 18:14
спасибо

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)