ReAl 0 7 февраля, 2010 Опубликовано 7 февраля, 2010 · Жалоба Ну я замену 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% Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ReAl 0 8 февраля, 2010 Опубликовано 8 февраля, 2010 · Жалоба И на InpOut гляну, может лучше просто её поддержать да и всё.Или не вижу, или спать пора... Кажется, тут нет уж собранного драйвера под x64 В binaries only есть инсталлятор драйвера только в папке для win32. С драйвером из этой папки и переименованной в dlportio dll-кой оттуда под XP/32 проверено, работает. Хотя чего морочить себе голову - с Вашей сборкой под win64 работает ведь :-) Т.е. можно просто разместить её уменя на страничке, дать линки на эту тему, на указанный сайт и успокоиться. Что-то будет меняться - тогда и что-то делать. Но самым правильным в эту минуту будет таки лечь спать p.s. раз уж зашёл разговор - опрос общественного мнения (нет, не про выборы :-) ) Вот к примеру делаю я под win поддержку работы не тольrо через dlportio. Эта inpout в оригинльной форме имеет всего лишь другие имена функций, но это тоже нужно как-то указать. giveio требует несколько другого подхода. Как лучше указать в ключах способ доступа? Пусть адрес E800 -pE800 - без указанного метода - dlportio с методом лучше так -pE800@giveio -pE800@inpout или так ;) -p/giveio/E800 -p/inpout/E800 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Petka 0 8 февраля, 2010 Опубликовано 8 февраля, 2010 · Жалоба p.s. раз уж зашёл разговор - опрос общественного мнения (нет, не про выборы :-) ) Вот к примеру делаю я под win поддержку работы не тольrо через dlportio. Эта inpout в оригинльной форме имеет всего лишь другие имена функций, но это тоже нужно как-то указать. giveio требует несколько другого подхода. Как лучше указать в ключах способ доступа? Давно назрела необходимость отделить мух от котлет. В avreal в одну кучу свалены настройки программатора и параметры прошивки (файл с прошивкой, фузы). Логично в .bat/Makefile указывать ТОЛЬКО параметры а настройки программатора хранить отдельно в конфигурационном файле. т.е. Если на ноутбуке есть только программатор FT2232 а на ББ программатор LPT, то надо при прошивке одного и того же проекта на ноуте и ББ лезть в .bat/Makefile. Логичнее на ноуте использовать один файл настроек программатора а на ББ другой. А в командной строке задавать только Фузы, Файл прошивки, чип. Как это может выглядеть: avreal при старте читает дефолтный конфиг (или иначе конфиг дефолтов) в котором может быть заданы (а могут быть и не заданы) некоторые параметры. Потом читает параметры из командной строки, и если есть пересекающиеся атрибуты, то ругается и/или использует то, что задано в командной строке. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ReAl 0 8 февраля, 2010 Опубликовано 8 февраля, 2010 · Жалоба Как это может выглядеть: 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 - это линк на реальную версию, выбранную в данный момент для работы. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_pv 79 8 февраля, 2010 Опубликовано 8 февраля, 2010 · Жалоба Или не вижу, или спать пора... Кажется, тут нет уж собранного драйвера под 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 должны быть. Ну или действительно оставить как есть раз уж работает :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ReAl 0 9 февраля, 2010 Опубликовано 9 февраля, 2010 · Жалоба так что для пущей совместимости, наверное, лучше использовать функции Inp32 и Out32. они во всех версиях библиотек для inpout32 должны быть.Так вот и я об этом думаю - тогда с любой заработает. Ну или действительно оставить как есть раз уж работает :)Я малость приболел, а работа не ждёт, поэтому вернусь к этому вопросу немного позже. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ptbnfns 0 14 февраля, 2010 Опубликовано 14 февраля, 2010 (изменено) · Жалоба Всем доброго времени суток! Вроде я тут уже регистрировался но не помню данных.... Этих "драйверов" развелось как собак... Такое впечатление, что каждый автор или любит изобратать велосипед или желает поупражняться в драйверописании - этакий "Hello World" в DDK И что самое скверное, что разный софт использует разные драйверы ! И для каждого предлагается установить "драйвер" Достало :twak: :maniac: В такой ситуации IMHO делать в приложениях поддержку всех существующих драйверов не разумно. Гораздо логичнее было бы вынести всё это нафиг в отдельную DLL. Тоесть DLL сама занимается поиском имеющегося драйвера и работой с ним в соответствии с принятым для конкретно него протоколом. А приложение умеет работать ТОЛЬКО с этой DLL. В саму DLL можно насовать сколько угодно функций для работы с разными уже имеющимися приложениями без их переделки. Единственное неудобство - необходимость переименовывать её в то имя которое данное приложение "знает". Как вариант - предлагаю odvport.dll Исходнит прилагается (GPL) odvport.zip Изменено 14 февраля, 2010 пользователем ptbnfns Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Xenia 46 14 февраля, 2010 Опубликовано 14 февраля, 2010 · Жалоба Как вариант - предлагаю odvport.dll Исходнит прилагается (GPL) Проблемы в основном не с драйвером, а со способом его инсталляции. DLPORTIO тоже был не плох, но поди установи его! Хитрющий install.exe на большем числе компьютеров не работает. А p95nt на новых опереционках тоже перестает работать. Короче говоря, не код драйвера плох, а слишком стали привередливы требования к инсталляции драйверов. Та же проблема часто встречается при инсталляции драйверов под USB. А ваш драйвер в этом смысле совершенно не годится, т.к. никаких средств для его инсталляции не предусмотрено. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ptbnfns 0 14 февраля, 2010 Опубликовано 14 февраля, 2010 (изменено) · Жалоба Да забыл сказать: у меня уже сейчас есть поддержка работы через: 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 умеет правильно "требовать" так, что с ним драйвер займёт память только при первом обращении. Изменено 14 февраля, 2010 пользователем ptbnfns Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ptbnfns 0 14 февраля, 2010 Опубликовано 14 февраля, 2010 · Жалоба Добавил поддержку hwinterface.sys - это драйвер от inpout32 odvport.zip Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Xenia 46 14 февраля, 2010 Опубликовано 14 февраля, 2010 · Жалоба б)добавив раздел в реестр. пример для 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-файл в свой архив! А то ведь забудется место на форуме, где вы это написали. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ptbnfns 0 14 февраля, 2010 Опубликовано 14 февраля, 2010 · Жалоба Добавил работу через драйвер WinRing0.sys + куча драйверов в архиве вместе с библиотекой odvport.zip Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ReAl 0 14 февраля, 2010 Опубликовано 14 февраля, 2010 · Жалоба Достало :twak: :maniac:"Так отож!" Единственное неудобство - необходимость переименовывать её в то имя которое данное приложение "знает". Как вариант - предлагаю odvport.dll Исходнит прилагается (GPL) Насколько я понял комментарий у меня на сайте и тутошнее - достаточно переименовать её в dlportio.dll, поставить любой из перечисленных драйверов и avreal должен заработать, не заметив подмены. Альтеровский драйвер, насколько я помню, позволяет пакетировать запросы, что несколько поднимет скорость, но - вроде бы и так не слишком медленно - LPT таки уходит и "тонкие оптимизации" как-то ни к чему. Всё равно по скорости проиграет FT2232 :-) Поэтому Ваша DLL - это отличное универсальное решение. Единственное неудобство - необходимость переименовывать её в то имя которое данное приложение "знает".Ну ради такого инструмента не грех и добавить загрузку библиотеки с её "родным" именем. Присоединяюсь к Ксении - было бы удобно иметь reg-файлы для каждого поддерживаемого драйвера. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Xenia 46 14 февраля, 2010 Опубликовано 14 февраля, 2010 · Жалоба :copy dlportio.dll %SystemRoot%\system32 copy dlportio.sys %SystemRoot%\system32\drivers regedit.exe dlportio_reg.reg А почему первая строка закомментарена? Разве dlportio.dll не нужна? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ptbnfns 0 17 февраля, 2010 Опубликовано 17 февраля, 2010 · Жалоба Насколько я понял комментарий у меня на сайте и тутошнее - достаточно переименовать её в dlportio.dll, поставить любой из перечисленных драйверов и avreal должен заработать, не заметив подмены. Так точно! Альтеровский драйвер, насколько я помню, позволяет пакетировать запросы, что несколько поднимет скорость, но - вроде бы и так не слишком медленно - LPT таки уходит и "тонкие оптимизации" как-то ни к чему. Всё равно по скорости проиграет FT2232 :-) Да позволяет, но у меня это не реализовано т.к. все эти заморочки с сбором обращений в пакет череваты багами, а тестировать такие вещи долго и муторно, короче лень заморачиваться. Но для совместимости я разворачиваю пакетные обращения в циклы. Присоединяюсь к Ксении - было бы удобно иметь reg-файлы для каждого поддерживаемого драйвера. В архиве из поста №222 они есть. А почему первая строка закомментарена? Разве dlportio.dll не нужна? Эта строка там только для напоминания. Реально он у меня всегда лежал в той же папке, где avreal ибо больше никто не пользуется. Повторюсь - для моей DLL нужен только драйвер. (тот - который *.sys) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться