ReAl 0 February 7, 2010 Posted February 7, 2010 · Report post Ну я замену DlPortWritePortBufferUchar при её отсутствии на цикл с DlPortWritePortUchar всё же сделал. Мало ли что и как будет развиваться в InpOut32.dll, лучше пусть исходная версия тоже работает. Пока выложена тестовая версия. И на InpOut гляну, может лучше просто её поддержать да и всё. Я собираюсь поставить дома для проверок Win7/64 (т.е. работою как-то до сих пор в XP/32, но нераспределённое место на диске есть, доставлю туда). Заодно mingw-w64 попробую, может тогда avreal64 просто появится :-) Да, avreal из dlportio.dll импортирует только DlPortWritePortUchar, DlPortReadPortUchar, DlPortWritePortBufferUchar, так что косяки с long/short действительно не должны влиять. На "родной" dlportio работа через замену DlPortWritePortBufferUchar на цикл с DlPortReadPortUchar садит на моих компьютере и LPT скорость считывания AVR где-то на 5-6% Quote Share this post Link to post Share on other sites More sharing options...
ReAl 0 February 8, 2010 Posted February 8, 2010 · Report post И на InpOut гляну, может лучше просто её поддержать да и всё.Или не вижу, или спать пора... Кажется, тут нет уж собранного драйвера под x64 В binaries only есть инсталлятор драйвера только в папке для win32. С драйвером из этой папки и переименованной в dlportio dll-кой оттуда под XP/32 проверено, работает. Хотя чего морочить себе голову - с Вашей сборкой под win64 работает ведь :-) Т.е. можно просто разместить её уменя на страничке, дать линки на эту тему, на указанный сайт и успокоиться. Что-то будет меняться - тогда и что-то делать. Но самым правильным в эту минуту будет таки лечь спать p.s. раз уж зашёл разговор - опрос общественного мнения (нет, не про выборы :-) ) Вот к примеру делаю я под win поддержку работы не тольrо через dlportio. Эта inpout в оригинльной форме имеет всего лишь другие имена функций, но это тоже нужно как-то указать. giveio требует несколько другого подхода. Как лучше указать в ключах способ доступа? Пусть адрес E800 -pE800 - без указанного метода - dlportio с методом лучше так [email protected] [email protected] или так ;) -p/giveio/E800 -p/inpout/E800 Quote Share this post Link to post Share on other sites More sharing options...
Petka 0 February 8, 2010 Posted February 8, 2010 · Report post p.s. раз уж зашёл разговор - опрос общественного мнения (нет, не про выборы :-) ) Вот к примеру делаю я под win поддержку работы не тольrо через dlportio. Эта inpout в оригинльной форме имеет всего лишь другие имена функций, но это тоже нужно как-то указать. giveio требует несколько другого подхода. Как лучше указать в ключах способ доступа? Давно назрела необходимость отделить мух от котлет. В avreal в одну кучу свалены настройки программатора и параметры прошивки (файл с прошивкой, фузы). Логично в .bat/Makefile указывать ТОЛЬКО параметры а настройки программатора хранить отдельно в конфигурационном файле. т.е. Если на ноутбуке есть только программатор FT2232 а на ББ программатор LPT, то надо при прошивке одного и того же проекта на ноуте и ББ лезть в .bat/Makefile. Логичнее на ноуте использовать один файл настроек программатора а на ББ другой. А в командной строке задавать только Фузы, Файл прошивки, чип. Как это может выглядеть: avreal при старте читает дефолтный конфиг (или иначе конфиг дефолтов) в котором может быть заданы (а могут быть и не заданы) некоторые параметры. Потом читает параметры из командной строки, и если есть пересекающиеся атрибуты, то ругается и/или использует то, что задано в командной строке. Quote Share this post Link to post Share on other sites More sharing options...
ReAl 0 February 8, 2010 Posted February 8, 2010 · Report post Как это может выглядеть: avreal при старте читает дефолтный конфиг (или иначе конфиг дефолтов) в котором может быть заданы (а могут быть и не заданы) некоторые параметры. Потом читает параметры из командной строки, и если есть пересекающиеся атрибуты, то ругается и/или использует то, что задано в командной строке.Это давно в очереди, но далеко не первоочередное у меня лично, уж извините. У меня в переменных окружения дома d:\>set | grep AVREAL AVREAL_ADAPTER=ft2232:enable=~adbus4,~acbus2:reset=acbus1 AVREAL_PORT=d=DENIS_FT2232D A (в работе платка, подаренная мне человеком по имени Денис и когда я отлаживал єти ключи я не долго думал, что прописать в EEPROM ;-) ) На работе что-то в духе AVREAL_ADAPTER=b AVREAL_PORT=/dev/parport0 и в makefile ifndef AVREAL_PORT AVREAL_PORT := 1 endif ifndef AVREAL_ADAPTER AVREAL_ADAPTER = b endif AVREAL := avreal "-a$(AVREAL_ADAPTER)" "-p$(AVREAL_PORT)" +$(MCU) Где я сейчас - просто не думаю :-) И на работе, и дома avreal - это линк на реальную версию, выбранную в данный момент для работы. Quote Share this post Link to post Share on other sites More sharing options...
_pv 20 February 8, 2010 Posted February 8, 2010 · Report post Или не вижу, или спать пора... Кажется, тут нет уж собранного драйвера под x64 В binaries only есть инсталлятор драйвера только в папке для win32. С драйвером из этой папки и переименованной в dlportio dll-кой оттуда под XP/32 проверено, работает. ээ, похоже что на самом деле там его нет. изначально dlportio64 брал с понипроговского форума, ссылка выше. а потом не обнаружив там нужных функций добавлял их в inpout который взял отсюда: http://logix4u.net/Legacy_Ports/Parallel_P..._XP_64_bit.html там есть драйвер. драйвера ставил родным инсталлятором от dlportio, переименовав файлы. а, то что тут хоть и более новая версия вроде и содержит уже функции Dlportiowrite для записи только отдельных символов, но её собрать не удалось. так что для пущей совместимости, наверное, лучше использовать функции Inp32 и Out32. они во всех версиях библиотек для inpout32 должны быть. Ну или действительно оставить как есть раз уж работает :) Quote Share this post Link to post Share on other sites More sharing options...
ReAl 0 February 9, 2010 Posted February 9, 2010 · Report post так что для пущей совместимости, наверное, лучше использовать функции Inp32 и Out32. они во всех версиях библиотек для inpout32 должны быть.Так вот и я об этом думаю - тогда с любой заработает. Ну или действительно оставить как есть раз уж работает :)Я малость приболел, а работа не ждёт, поэтому вернусь к этому вопросу немного позже. Quote Share this post Link to post Share on other sites More sharing options...
ptbnfns 0 February 14, 2010 Posted February 14, 2010 (edited) · Report post Всем доброго времени суток! Вроде я тут уже регистрировался но не помню данных.... Этих "драйверов" развелось как собак... Такое впечатление, что каждый автор или любит изобратать велосипед или желает поупражняться в драйверописании - этакий "Hello World" в DDK И что самое скверное, что разный софт использует разные драйверы ! И для каждого предлагается установить "драйвер" Достало :twak: :maniac: В такой ситуации IMHO делать в приложениях поддержку всех существующих драйверов не разумно. Гораздо логичнее было бы вынести всё это нафиг в отдельную DLL. Тоесть DLL сама занимается поиском имеющегося драйвера и работой с ним в соответствии с принятым для конкретно него протоколом. А приложение умеет работать ТОЛЬКО с этой DLL. В саму DLL можно насовать сколько угодно функций для работы с разными уже имеющимися приложениями без их переделки. Единственное неудобство - необходимость переименовывать её в то имя которое данное приложение "знает". Как вариант - предлагаю odvport.dll Исходнит прилагается (GPL) odvport.zip Edited February 14, 2010 by ptbnfns Quote Share this post Link to post Share on other sites More sharing options...
Xenia 7 February 14, 2010 Posted February 14, 2010 · Report post Как вариант - предлагаю odvport.dll Исходнит прилагается (GPL) Проблемы в основном не с драйвером, а со способом его инсталляции. DLPORTIO тоже был не плох, но поди установи его! Хитрющий install.exe на большем числе компьютеров не работает. А p95nt на новых опереционках тоже перестает работать. Короче говоря, не код драйвера плох, а слишком стали привередливы требования к инсталляции драйверов. Та же проблема часто встречается при инсталляции драйверов под USB. А ваш драйвер в этом смысле совершенно не годится, т.к. никаких средств для его инсталляции не предусмотрено. Quote Share this post Link to post Share on other sites More sharing options...
ptbnfns 0 February 14, 2010 Posted February 14, 2010 (edited) · Report post Да забыл сказать: у меня уже сейчас есть поддержка работы через: giveio.sys dlportio.sys mcdbio.sys porttalk.sys altlpt1 aka Pgdhdlc.sys - драйвер ByteBlaster из MaxPlus и самое вкусное - вообще без драйвера через недокументированные функции из ntdll.dll если кто знает ещё - говорите - добавлю! в ближайшее время по капаю inpout32 и winring0 (просто я прежде о них не слышал - говорю же "как собак...") по поводу установки - на самом деле там всё очень просто (для XP по крайней мере) поражает желание авторов этих драйверов делать всё запутанным и сложным (видимо для сбережения "великого тайного знания о доступе к портам" LOL !!! ) так вот - никакие "установщики" нафиг не нужны! для установки нужно следующее 1)быть "администратором" 2)скопировать файл_драйвера.sys в c:\windows\system32\drivers 3)зарегистрировать драйвер - т.е. добавить службу ядра - это можно сделать двумя способами а)через API service control manager б)добавив раздел в реестр. пример для giveio - делаем файл install.reg REGEDIT4 [HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\giveio] "Type"=dword:00000001 "Start"=dword:00000003 "ErrorControl"=dword:00000001 "Group"="Extended Base" и тыкаем в него мышкой оно - спросит добавить? мы - ага ! перезагружаемся - готово обратите внимание на параметр "Start"=dword:00000003 может быть 2 или 3 2-запуск драйвера при старте системы 3-запуск "по требованию" к сожалению не все умеют "потребовать" в частности dlportio.dll - не умеет. так, что для него - только "2" odvport умеет правильно "требовать" так, что с ним драйвер займёт память только при первом обращении. Edited February 14, 2010 by ptbnfns Quote Share this post Link to post Share on other sites More sharing options...
ptbnfns 0 February 14, 2010 Posted February 14, 2010 · Report post Добавил поддержку hwinterface.sys - это драйвер от inpout32 odvport.zip Quote Share this post Link to post Share on other sites More sharing options...
Xenia 7 February 14, 2010 Posted February 14, 2010 · Report post б)добавив раздел в реестр. пример для giveio - делаем файл install.reg REGEDIT4 [HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\giveio] "Type"=dword:00000001 "Start"=dword:00000003 "ErrorControl"=dword:00000001 "Group"="Extended Base" и тыкаем в него мышкой оно - спросит добавить? мы - ага ! перезагружаемся - готово обратите внимание на параметр "Start"=dword:00000003 может быть 2 или 3 2-запуск драйвера при старте системы 3-запуск "по требованию" к сожалению не все умеют "потребовать" в частности dlportio.dll - не умеет. так, что для него - только "2" odvport умеет правильно "требовать" так, что с ним драйвер займёт память только при первом обращении. Ну так и добавьте такой reg-файл в свой архив! А то ведь забудется место на форуме, где вы это написали. Quote Share this post Link to post Share on other sites More sharing options...
ptbnfns 0 February 14, 2010 Posted February 14, 2010 · Report post Добавил работу через драйвер WinRing0.sys + куча драйверов в архиве вместе с библиотекой odvport.zip Quote Share this post Link to post Share on other sites More sharing options...
ReAl 0 February 14, 2010 Posted February 14, 2010 · Report post Достало :twak: :maniac:"Так отож!" Единственное неудобство - необходимость переименовывать её в то имя которое данное приложение "знает". Как вариант - предлагаю odvport.dll Исходнит прилагается (GPL) Насколько я понял комментарий у меня на сайте и тутошнее - достаточно переименовать её в dlportio.dll, поставить любой из перечисленных драйверов и avreal должен заработать, не заметив подмены. Альтеровский драйвер, насколько я помню, позволяет пакетировать запросы, что несколько поднимет скорость, но - вроде бы и так не слишком медленно - LPT таки уходит и "тонкие оптимизации" как-то ни к чему. Всё равно по скорости проиграет FT2232 :-) Поэтому Ваша DLL - это отличное универсальное решение. Единственное неудобство - необходимость переименовывать её в то имя которое данное приложение "знает".Ну ради такого инструмента не грех и добавить загрузку библиотеки с её "родным" именем. Присоединяюсь к Ксении - было бы удобно иметь reg-файлы для каждого поддерживаемого драйвера. Quote Share this post Link to post Share on other sites More sharing options...
Xenia 7 February 14, 2010 Posted February 14, 2010 · Report post :copy dlportio.dll %SystemRoot%\system32 copy dlportio.sys %SystemRoot%\system32\drivers regedit.exe dlportio_reg.reg А почему первая строка закомментарена? Разве dlportio.dll не нужна? Quote Share this post Link to post Share on other sites More sharing options...
ptbnfns 0 February 17, 2010 Posted February 17, 2010 · Report post Насколько я понял комментарий у меня на сайте и тутошнее - достаточно переименовать её в dlportio.dll, поставить любой из перечисленных драйверов и avreal должен заработать, не заметив подмены. Так точно! Альтеровский драйвер, насколько я помню, позволяет пакетировать запросы, что несколько поднимет скорость, но - вроде бы и так не слишком медленно - LPT таки уходит и "тонкие оптимизации" как-то ни к чему. Всё равно по скорости проиграет FT2232 :-) Да позволяет, но у меня это не реализовано т.к. все эти заморочки с сбором обращений в пакет череваты багами, а тестировать такие вещи долго и муторно, короче лень заморачиваться. Но для совместимости я разворачиваю пакетные обращения в циклы. Присоединяюсь к Ксении - было бы удобно иметь reg-файлы для каждого поддерживаемого драйвера. В архиве из поста №222 они есть. А почему первая строка закомментарена? Разве dlportio.dll не нужна? Эта строка там только для напоминания. Реально он у меня всегда лежал в той же папке, где avreal ибо больше никто не пользуется. Повторюсь - для моей DLL нужен только драйвер. (тот - который *.sys) Quote Share this post Link to post Share on other sites More sharing options...