Forth
http://fforum.winglion.ru/

программирование портов ввода-вывода под WinXP
http://fforum.winglion.ru/viewtopic.php?f=18&t=2418
Страница 1 из 2

Автор:  Vinci [ Пт фев 05, 2010 19:21 ]
Заголовок сообщения:  программирование портов ввода-вывода под WinXP

надо писать и читать в ЛПТ-порт под ХР желательно использовать только СП-ФОРТ.
Пожалуйста, подскажите решение или где можно про это почитать.

Автор:  Hishnik [ Пт фев 05, 2010 19:26 ]
Заголовок сообщения: 

Команда in al, dx имеет код 0xEC, команда out dx, al - 0xEE. Главная проблема - получить доступ к портам ввода-вывода под XP, поскольку его там нет, и не факт, что получится продраться через уже установленный драйвер. Можно посмотреть что-нибудь вроде giveio.sys и им подобных "фиктивных драйверов", делающих вид, что в компьютере одно большое устройство ввода-вывода, к которому всем можно обращаться. Но за такой постановкой задачи видится что-то еще... что? Может быть, не надо ориентироваться на заранее проблемный путь?

Автор:  Ilya [ Пт фев 05, 2010 19:28 ]
Заголовок сообщения: 

При помощи сторонней dll-ки см. тут http://nncron.ru/forums/viewtopic.php?f ... 72&start=0
Кста, а чего это вас в последнее время прорвало на данную тему? ;)

Автор:  Vinci [ Пт фев 05, 2010 19:45 ]
Заголовок сообщения: 

Хищник писал(а):
Команда in al, dx имеет код 0xEC, команда out dx, al - 0xEE.

спасибо конечно, но через сторонние драйвера медленно, да и таскать их надо за собой, затем в Windows/Sistem32/drivers/ как то записывать и потом в реестре регестрировать. может можно как-нибуть одним SP-Forth-ом?

Автор:  Vinci [ Пт фев 05, 2010 19:48 ]
Заголовок сообщения: 

Ilya писал(а):
При помощи сторонней dll-ки см. тут http://nncron.ru/forums/viewtopic.php?f ... 72&start=0
Кста, а чего это вас в последнее время прорвало на данную тему? ;)

спасибо и вам.. но теже вопросы и остались..
меня не прорывало. лично я поднял этут ему только тут один раз..

Автор:  Hishnik [ Пт фев 05, 2010 19:49 ]
Заголовок сообщения: 

Vinci писал(а):
спасибо конечно, но через сторонние драйвера медленно, да и таскать их надо за собой, затем в Windows/Sistem32/drivers/ как то записывать и потом в реестре регестрировать. может можно как-нибуть одним SP-Forth-ом?

SP-Форт тут совершенно ни при чем, равно как и любой другой Форт, и вообще язык программирования. Выше я уже написал машинные коды для ассемблерных команд, которые обеспечивают доступ к портам, можно хоть "руками" поставить их в свой код. Вот только попытка их исполнения, абсолютно безотносительно используемого языка, приведет к ошибке защиты. Прикладные программы не имеют права обращаться к портам ввода-вывода, это может только драйвер устройства.

Автор:  Vinci [ Пт фев 05, 2010 19:54 ]
Заголовок сообщения: 

Хищник писал(а):
Прикладные программы не имеют права обращаться к портам ввода-вывода, это может только драйвер устройства.
я запуская под ХР такие программы таких как Лабвью или программу программатора и они спокойно работают с портами - такое ощущение что как под ДОС..

Автор:  Ilya [ Пт фев 05, 2010 19:57 ]
Заголовок сообщения: 

Vinci писал(а):
Хищник писал(а):
Команда in al, dx имеет код 0xEC, команда out dx, al - 0xEE.

спасибо конечно, но через сторонние драйвера медленно, да и таскать их надо за собой, затем в Windows/Sistem32/drivers/ как то записывать и потом в реестре регестрировать. может можно как-нибуть одним SP-Forth-ом?

Не совсем так!
Либа dlportio.dll не требует манипуляций с реестром и регистрацией!
Достаточно поместить с самим СПФ-ом!

Автор:  Hishnik [ Пт фев 05, 2010 19:59 ]
Заголовок сообщения: 

Vinci писал(а):
я запуская под ХР такие программы таких как Лабвью или программу программатора и они спокойно работают с портами - такое ощущение что как под ДОС..

Можно работать с LPT1 с помощью стандартных сервисов ОС. Например, открыть файл и писать в него. Но вся линейка NT, свойства которой унаследовала и XP, с портами работать не дает. Только Win 95/98. Кстати, уже точно известно, что Win API не обеспечивает требуемой функциональности? Может, там и так есть нужные вещи?

Автор:  Ilya [ Пт фев 05, 2010 20:03 ]
Заголовок сообщения: 

Vinci писал(а):
Хищник писал(а):
Прикладные программы не имеют права обращаться к портам ввода-вывода, это может только драйвер устройства.
я запуская под ХР такие программы таких как Лабвью или программу программатора и они спокойно работают с портами - такое ощущение что как под ДОС..

Вот эти проги наверняка используют собственные дрова!
Не думаю, что связка СПФ<->сторонняя ДЛЛ-ка, будет работать медленнее Лабвью.
А какой период опроса порта?

Автор:  Vinci [ Пт фев 05, 2010 20:10 ]
Заголовок сообщения: 

на LPT висит данчик - относительный энкодер который крутит достаточно быстро - необходимо оперативно, без пропусков следить за его смещением. и дополнительно управлять Шаговым мотором. ЕСли бы я это делал изначально я бы использовал микроконтроллер, но оборудование уже есть и оно нормально работало под ДОС - а под ХР выдаёт ошибки..переделывать оборудования нет желания.

Автор:  Vinci [ Пт фев 05, 2010 20:13 ]
Заголовок сообщения: 

Ilya писал(а):
[Либа dlportio.dll не требует манипуляций с реестром и регистрацией!
Достаточно поместить с самим СПФ-ом!

спасибо, в понедельник буду пробавать

Автор:  mOleg [ Пт фев 05, 2010 20:31 ]
Заголовок сообщения: 

Vinci писал(а):
на LPT висит данчик - относительный энкодер который крутит достаточно быстро - необходимо оперативно, без пропусков следить за его смещением. и дополнительно управлять Шаговым мотором. ЕСли бы я это делал изначально я бы использовал микроконтроллер, но оборудование уже есть и оно нормально работало под ДОС - а под ХР выдаёт ошибки..переделывать оборудования нет желания.

могу сказать только одно, не лезте в винду, вам нужна система реального времени! винда таковой не является, пропуски будут в любом случае.
Такими вещами занимается QNX, вроде бы было RT ядро под линух(старенькое?)

Автор:  WingLion [ Пт фев 05, 2010 21:20 ]
Заголовок сообщения: 

Vinci писал(а):
ЕСли бы я это делал изначально я бы использовал микроконтроллер, но оборудование уже есть и оно нормально работало под ДОС


А почему это оборудование и дальше нельзя использовать с нормальным ДОС-ом?

Автор:  VoidVolker [ Пт фев 05, 2010 23:39 ]
Заголовок сообщения: 

Хищник писал(а):
Кстати, уже точно известно, что Win API не обеспечивает требуемой функциональности?

Цитата:
Разработчики NT с целью обеспечения безопасности использования совместных аппаратных ресурсов компьютера, запретили к ним прямой доступ из программ пользовательского режима (по сути дела из любых программ).

Соответственно необходимо использовать либо длл либо специальный драйвер.

Страница 1 из 2 Часовой пояс: UTC + 3 часа [ Летнее время ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/