|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
12.11.2010, 06:00 | #1 |
Регистрация: 08.11.2010
Сообщений: 6
|
Драйвер ISA устройства для DOS
Помогите решить следующую программно-аппаратную задачу.
* * * Устройство (многоканальный АЦП) подключено к шине ISA ПК. Передача данных от устройства к программе опроса происходит посредством драйвера, поставляемого вместе с устройством (находится во вложении). Часть 1. 1. Дизассемблировать драйвер, снабдив листинг комментариями, поясняющими логику его работы. 2. Выяснить область, чрез которую драйвер передает информацию программе опроса (это может быть буфер в ОЗУ, регистры процессора, стек и т. д.). 3. Написать на любом языке высокого уровня программу под DOS, которая могла бы периодически выводить на экран в числовой форме предоставляемый драйвером результат опроса устройства. Часть 2. Опытным путем установлено, что данный драйвер не работает в многозадачных операционных системах, как в многозадачных DOS (DR-DOS, Open DOS и т. п.), так и в эмуляции DOS под Windows 9x. Требуется модифицировать драйвер так, чтобы он мог (являясь DOS-приложением) корректно работать в многозадачной среде, обеспечив, по возможности, совместимость на уровне ввода-вывода с исходным драйвером. * * * Для проверки правильности выполнения задания в лаборатории имеется ПК с указанным АЦП. Ко входу АЦП подключается потенциометр, на ПК запускаются драйвер устройства и написанная в ходе выполнения задания программа опроса. Задание считается выполненным, если перемещение движка потенциометра вызывает адекватное изменение показаний программы. Проверка части 1 задания проводится под «голым» MS-DOS, части 2 – под Windows 98. |
12.11.2010, 08:17 | #2 |
Форумчанин
Регистрация: 31.05.2009
Сообщений: 786
|
Могу сделать первую часть. Контакты ниже.
|
12.11.2010, 09:35 | #3 |
Заблокирован
Регистрация: 27.05.2010
Сообщений: 1,099
|
Бессмысленная задача.
Привелегии ввода-вывода для НЕстандардных устройств определяются не драйвером и не MS-DOS, а ядром многозадачной ОС, под контролем VDM-подсистемы которой выполняется MS-DOS-приложение. Поэтому решение задачи сводится к тем или иным способам установки соотв.привелегий в самой многозадачной ОС, а не в "драйвере", который в принципе не имеет доступа к этому механизму. |
12.11.2010, 11:58 | #4 |
Участник клуба
Регистрация: 11.01.2010
Сообщений: 1,139
|
mss
ТС убежден, что "Kernel mode драйвер под NT – это, конечно, круто. Однако нужен он в данном случае не больше, чем собаке пятая нога." конечно, часть портов под Win95/98 открыта, но не все. Не плохо было бы увидеть еще и существующий exe или com-файл, который обращается к резиденту из Acp3_drv и который упоминается в пункте 3 "Написать на любом языке высокого уровня программу под DOS, которая могла бы периодически выводить на экран в числовой форме предоставляемый драйвером результат опроса устройства" |
12.11.2010, 13:07 | #5 |
Программист
Участник клуба
Регистрация: 23.06.2009
Сообщений: 1,772
|
1) Там, похоже, вопрос не в привилегиях, а в том, что этой программе для работы требуется опрашивать устройство в реальном времени. Уже много раз повторено, что Windows НЕ является операционной системой реального времени. Так что, боюсь, красивых решений не существует.
2) Непонятно, почему нельзя найти аппаратное решение данной проблемы - в простейшем случае выделенный компьютер с однозадачкой, в более сложном - микроконтроллерный опрос (вплоть до выкидывания проблемной платы вообще и замены более современным железом). Если это чисто вопро жадности, то на программных разработках Вы рискуете потерять больше. 3) И напоследок - почему я лично не буду решать Вашу проблему. Потому что на нее надо убить уйму времени, которое при Вашем подходе явно не будет оплачено. Судя по вашему посту, Вы собираетесь оплатить готовое решение, а кто мне заплатит за его поиск? Задача интересная, но заниматься ее решением мне не по карману. |
12.11.2010, 13:26 | #6 |
Участник клуба
Регистрация: 11.01.2010
Сообщений: 1,139
|
Black Fregat
Судя по тому, что резидентная программа использует 1Ch прерывание -- опрос происходит не чаще 18,2 раза в секунду, так что Windows вполне подходит |
12.11.2010, 13:29 | #7 | |
Заблокирован
Регистрация: 27.05.2010
Сообщений: 1,099
|
Цитата:
Я про него не говорил, равно как и про Win95/98, это твой досужий вымысел. |
|
13.11.2010, 01:28 | #9 | |
Регистрация: 08.11.2010
Сообщений: 6
|
Цитата:
P. S. Были бы исходники - я бы вообще не стал выкладывать эту задачу для всеобщего обсуджения. Сам бы сделал, по крайней мере, первую часть. Последний раз редактировалось I-Gor; 13.11.2010 в 02:04. |
|
13.11.2010, 04:35 | #10 |
Регистрация: 08.11.2010
Сообщений: 6
|
Ответ Black Fregat'у
Black Fregat:
«Непонятно, почему нельзя найти аппаратное решение данной проблемы - в простейшем случае выделенный компьютер с однозадачкой, в более сложном - микроконтроллерный опрос (вплоть до выкидывания проблемной платы вообще и замены более современным железом). Если это чисто вопро жадности, то на программных разработках Вы рискуете потерять больше». На производстве давно бы так и сделали. Скорее всего, пошли бы по последнему пути, т. е. выкинули бы древнюю плату к чертовой бабушке и заменили ее чем-то более пристойным. Хотя я не уверен, что на каком-то уважающем себя производстве такой антиквариат еще сохранился. (Для справки: прибор был изготовлен в 2000-м году на советской элементной базе 1991 года). Так ведь задача-то учебная, черт побери! И если в учебных целях до сих пор заморачиваются.такой фигней, так это уже не жадность. Это, скорее, маразм. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Драйвер ISA устройства для DOS | I-Gor | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 6 | 12.11.2010 06:49 |
Драйвер для hp laserjet 1010 для windows 7 | Юзер7 | Общие вопросы C/C++ | 6 | 04.08.2010 09:17 |
драйвер мыши для C++3.0 for dos | masta777 | Общие вопросы C/C++ | 3 | 20.06.2009 17:31 |
Разработка драйвер USB-HID устройства | _dx | Win Api | 5 | 10.06.2009 18:34 |
Для кадого ли устройства есть свой контроллер? | Elm0 | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 6 | 21.06.2007 20:42 |