Нужна помощь...
Релиб
Форумы       Участники    Календарь    Кто он-лайн?
Добро пожаловать, гость ( Вход | Регистрация )
        



Нужна помощь... Expand / Collapse
Автор
Сообщение
10.05.2006 10:38
новичок

новичокновичокновичокновичокновичокновичокновичокновичок

участник
Last Login: 10.05.2006 14:42
Сообщ.: 2, Visits: 25
Здравствуйте.
Представьте себе такую ситуацию: пишется прога (типа база данных) на С++ Билдере (наверное, шестом). Есть запрограммированный микроконтроллер (MCXXXX), который что-то делает (а например, проводит опрос своих входов на наличие сигнала и, если таковой есть, генерирует прерывание). Контроллер этот впаян в плату, и та, в свою очередь, втыкается в PCI-слот. Драйвер у этой платы, допустим, тоже имеется (и та включена как устройство в диспетчере устройств Windows XP). Так вот может ли кто мне подсказать, КАК можно будет программно обработать прерывание микроконтроллера, и какими средствами? Нужно от микроконтроллера получить сигнал о прерывании и номер сработавшего входа.
Сообщ. #896781
10.05.2006 13:39


Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 23.01.2008 15:09
Сообщ.: 329, Visits: 3 604
С++ Билдер - это вирус!

Сообщ. #896804
10.05.2006 14:43
новичок

новичокновичокновичокновичокновичокновичокновичокновичок

участник
Last Login: 10.05.2006 14:42
Сообщ.: 2, Visits: 25
Петрович, а поконкретнее нельзя? Я имею в виду - по сути проблемы :)
Сообщ. #896809
11.05.2006 14:53
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 23.04.2007 9:22
Сообщ.: 106, Visits: 1 209
По-моему нужно копать в сторону IOCTL и DDK.
Сообщ. #896860
14.06.2006 13:07
новичок

новичокновичокновичокновичокновичокновичокновичокновичок

участник
Last Login: 23.06.2006 15:08
Сообщ.: 4, Visits: 9
С обработкой прерываний под Windows все достаточно тоскливо... Доступ к модификации таблицы дескрипторов прерываний имеют только задачи с привилегиями уровня ядра. Поэтому, насколько мне удалось понять, нужно писать системный VXD-драйвер и регистрировать его в системе. Причем драйвер должен в обработчике прерывания генерировать системное событие (Event), а приложение должно ждать этого события чем-то типа WaitForSingleEvent. Все это работает достаточно медленно, поэтому RealTime приложения для виндов - это нонсенс... Впрочем, можно написать некое приложение под ДОС, которое будет работать под виндовс в виртуальной машине и получать прерывания обычным досовским образом типа функции setIntVec(). Только проблема останется в передаче данных из этой программы в рабочее приложение... когдато под Win98 я ее решил, только убей Бог, не помню как (вроде через общую память)...
Сообщ. #898697
« пред. тема | след. тема »


Эту тему читают Expand / Collapse
Посетители: 0 (0 гостей, 0 участников, 0 скрыт.участников)
Сейчас нет участников, просматривающих тему.
Модераторы: Alexey, boombastik, bazile, pl

Время GMT +3:00, Сейчас 6:39