Перейти к содержанию
    

Ну я замену 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%

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

И на 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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

p.s. раз уж зашёл разговор - опрос общественного мнения (нет, не про выборы :-) )

Вот к примеру делаю я под win поддержку работы не тольrо через dlportio.

Эта inpout в оригинльной форме имеет всего лишь другие имена функций, но это тоже нужно как-то указать.

giveio требует несколько другого подхода.

Как лучше указать в ключах способ доступа?

Давно назрела необходимость отделить мух от котлет.

В avreal в одну кучу свалены настройки программатора и параметры прошивки (файл с прошивкой, фузы).

Логично в .bat/Makefile указывать ТОЛЬКО параметры а настройки программатора хранить отдельно в конфигурационном файле.

т.е. Если на ноутбуке есть только программатор FT2232 а на ББ программатор LPT, то надо при прошивке одного и того же проекта на ноуте и ББ лезть в .bat/Makefile. Логичнее на ноуте использовать один файл настроек программатора а на ББ другой. А в командной строке задавать только Фузы, Файл прошивки, чип.

 

Как это может выглядеть: avreal при старте читает дефолтный конфиг (или иначе конфиг дефолтов) в котором может быть заданы (а могут быть и не заданы) некоторые параметры. Потом читает параметры из командной строки, и если есть пересекающиеся атрибуты, то ругается и/или использует то, что задано в командной строке.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Как это может выглядеть: 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 - это линк на реальную версию, выбранную в данный момент для работы.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Или не вижу, или спать пора...

Кажется, тут нет уж собранного драйвера под 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 должны быть.

Ну или действительно оставить как есть раз уж работает :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

так что для пущей совместимости, наверное, лучше использовать функции Inp32 и Out32. они во всех версиях библиотек для inpout32 должны быть.
Так вот и я об этом думаю - тогда с любой заработает.

 

Ну или действительно оставить как есть раз уж работает :)
Я малость приболел, а работа не ждёт, поэтому вернусь к этому вопросу немного позже.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Всем доброго времени суток!

Вроде я тут уже регистрировался но не помню данных....

 

Этих "драйверов" развелось как собак...

Такое впечатление, что каждый автор или любит изобратать велосипед или желает поупражняться в драйверописании - этакий "Hello World" в DDK :wacko:

 

И что самое скверное, что разный софт использует разные драйверы !

И для каждого предлагается установить "драйвер"

Достало :twak: :maniac:

 

В такой ситуации IMHO делать в приложениях поддержку всех существующих драйверов не разумно.

Гораздо логичнее было бы вынести всё это нафиг в отдельную DLL.

 

Тоесть DLL сама занимается поиском имеющегося драйвера и работой с ним в соответствии с принятым для конкретно него протоколом.

А приложение умеет работать ТОЛЬКО с этой DLL.

В саму DLL можно насовать сколько угодно функций для работы с разными уже имеющимися приложениями без их переделки.

Единственное неудобство - необходимость переименовывать её в то имя которое данное приложение "знает".

 

Как вариант - предлагаю odvport.dll

Исходнит прилагается (GPL)

odvport.zip

Изменено пользователем ptbnfns

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Как вариант - предлагаю odvport.dll

Исходнит прилагается (GPL)

Проблемы в основном не с драйвером, а со способом его инсталляции. DLPORTIO тоже был не плох, но поди установи его! Хитрющий install.exe на большем числе компьютеров не работает. А p95nt на новых опереционках тоже перестает работать. Короче говоря, не код драйвера плох, а слишком стали привередливы требования к инсталляции драйверов. Та же проблема часто встречается при инсталляции драйверов под USB.

А ваш драйвер в этом смысле совершенно не годится, т.к. никаких средств для его инсталляции не предусмотрено.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да забыл сказать:

у меня уже сейчас есть поддержка работы через:

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 умеет правильно "требовать" так, что с ним драйвер займёт память только при первом обращении.

Изменено пользователем ptbnfns

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

б)добавив раздел в реестр. пример для 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-файл в свой архив! А то ведь забудется место на форуме, где вы это написали.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Добавил работу через драйвер WinRing0.sys

+ куча драйверов в архиве вместе с библиотекой

odvport.zip

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Достало :twak: :maniac:
"Так отож!"

 

Единственное неудобство - необходимость переименовывать её в то имя которое данное приложение "знает".

Как вариант - предлагаю odvport.dll

Исходнит прилагается (GPL)

Насколько я понял комментарий у меня на сайте и тутошнее - достаточно переименовать её в dlportio.dll, поставить любой из перечисленных драйверов и avreal должен заработать, не заметив подмены.

 

Альтеровский драйвер, насколько я помню, позволяет пакетировать запросы, что несколько поднимет скорость, но

- вроде бы и так не слишком медленно

- LPT таки уходит и "тонкие оптимизации" как-то ни к чему. Всё равно по скорости проиграет FT2232 :-)

 

Поэтому Ваша DLL - это отличное универсальное решение.

 

Единственное неудобство - необходимость переименовывать её в то имя которое данное приложение "знает".
Ну ради такого инструмента не грех и добавить загрузку библиотеки с её "родным" именем.

 

Присоединяюсь к Ксении - было бы удобно иметь reg-файлы для каждого поддерживаемого драйвера.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

:copy dlportio.dll %SystemRoot%\system32
copy dlportio.sys %SystemRoot%\system32\drivers
regedit.exe dlportio_reg.reg

А почему первая строка закомментарена? Разве dlportio.dll не нужна?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Насколько я понял комментарий у меня на сайте и тутошнее - достаточно переименовать её в dlportio.dll, поставить любой из перечисленных драйверов и avreal должен заработать, не заметив подмены.

Так точно!

 

Альтеровский драйвер, насколько я помню, позволяет пакетировать запросы, что несколько поднимет скорость, но

- вроде бы и так не слишком медленно

- LPT таки уходит и "тонкие оптимизации" как-то ни к чему. Всё равно по скорости проиграет FT2232 :-)

Да позволяет, но у меня это не реализовано т.к. все эти заморочки с сбором обращений в пакет череваты багами, а тестировать такие вещи долго и муторно, короче лень заморачиваться.

Но для совместимости я разворачиваю пакетные обращения в циклы.

 

Присоединяюсь к Ксении - было бы удобно иметь reg-файлы для каждого поддерживаемого драйвера.

В архиве из поста №222 они есть.

 

А почему первая строка закомментарена? Разве dlportio.dll не нужна?

Эта строка там только для напоминания. Реально он у меня всегда лежал в той же папке, где avreal ибо больше никто не пользуется.

Повторюсь - для моей DLL нужен только драйвер. (тот - который *.sys)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...