|
|
  |
avreal, новая версия (если кому-то это ещё нужно) |
|
|
|
Feb 7 2010, 22:25
|

Нечётный пользователь.
     
Группа: Свой
Сообщений: 2 033
Регистрация: 26-05-05
Из: Бровари, Україна
Пользователь №: 5 417

|
Ну я замену 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%
--------------------
Ну, я пошёл… Если что – звоните…
|
|
|
|
|
Feb 8 2010, 00:49
|

Нечётный пользователь.
     
Группа: Свой
Сообщений: 2 033
Регистрация: 26-05-05
Из: Бровари, Україна
Пользователь №: 5 417

|
Цитата(ReAl @ Feb 8 2010, 00:25)  И на 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
--------------------
Ну, я пошёл… Если что – звоните…
|
|
|
|
|
Feb 8 2010, 09:26
|
Профессионал
    
Группа: Свой
Сообщений: 1 453
Регистрация: 23-08-05
Пользователь №: 7 886

|
Цитата(ReAl @ Feb 8 2010, 03:49)  p.s. раз уж зашёл разговор - опрос общественного мнения (нет, не про выборы :-) ) Вот к примеру делаю я под win поддержку работы не тольrо через dlportio. Эта inpout в оригинльной форме имеет всего лишь другие имена функций, но это тоже нужно как-то указать. giveio требует несколько другого подхода. Как лучше указать в ключах способ доступа? Давно назрела необходимость отделить мух от котлет. В avreal в одну кучу свалены настройки программатора и параметры прошивки (файл с прошивкой, фузы). Логично в .bat/Makefile указывать ТОЛЬКО параметры а настройки программатора хранить отдельно в конфигурационном файле. т.е. Если на ноутбуке есть только программатор FT2232 а на ББ программатор LPT, то надо при прошивке одного и того же проекта на ноуте и ББ лезть в .bat/Makefile. Логичнее на ноуте использовать один файл настроек программатора а на ББ другой. А в командной строке задавать только Фузы, Файл прошивки, чип. Как это может выглядеть: avreal при старте читает дефолтный конфиг (или иначе конфиг дефолтов) в котором может быть заданы (а могут быть и не заданы) некоторые параметры. Потом читает параметры из командной строки, и если есть пересекающиеся атрибуты, то ругается и/или использует то, что задано в командной строке.
|
|
|
|
|
Feb 8 2010, 10:41
|

Нечётный пользователь.
     
Группа: Свой
Сообщений: 2 033
Регистрация: 26-05-05
Из: Бровари, Україна
Пользователь №: 5 417

|
Цитата(Petka @ Feb 8 2010, 11:26)  Как это может выглядеть: 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 - это линк на реальную версию, выбранную в данный момент для работы.
--------------------
Ну, я пошёл… Если что – звоните…
|
|
|
|
|
Feb 8 2010, 19:32
|
Гуру
     
Группа: Свой
Сообщений: 2 563
Регистрация: 8-04-05
Из: Nsk
Пользователь №: 3 954

|
Цитата(ReAl @ Feb 8 2010, 06:49)  Или не вижу, или спать пора... Кажется, тут нет уж собранного драйвера под 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 должны быть. Ну или действительно оставить как есть раз уж работает
|
|
|
|
|
Feb 14 2010, 12:10
|
Группа: Участник
Сообщений: 6
Регистрация: 14-02-10
Пользователь №: 55 471

|
Всем доброго времени суток! Вроде я тут уже регистрировался но не помню данных.... Этих "драйверов" развелось как собак... Такое впечатление, что каждый автор или любит изобратать велосипед или желает поупражняться в драйверописании - этакий "Hello World" в DDK И что самое скверное, что разный софт использует разные драйверы ! И для каждого предлагается установить "драйвер" Достало  В такой ситуации IMHO делать в приложениях поддержку всех существующих драйверов не разумно. Гораздо логичнее было бы вынести всё это нафиг в отдельную DLL. Тоесть DLL сама занимается поиском имеющегося драйвера и работой с ним в соответствии с принятым для конкретно него протоколом. А приложение умеет работать ТОЛЬКО с этой DLL. В саму DLL можно насовать сколько угодно функций для работы с разными уже имеющимися приложениями без их переделки. Единственное неудобство - необходимость переименовывать её в то имя которое данное приложение "знает". Как вариант - предлагаю odvport.dll Исходнит прилагается (GPL)
Сообщение отредактировал ptbnfns - Feb 14 2010, 12:11
|
|
|
|
|
Feb 14 2010, 14:20
|
Группа: Участник
Сообщений: 6
Регистрация: 14-02-10
Пользователь №: 55 471

|
Да забыл сказать: у меня уже сейчас есть поддержка работы через: 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 - Feb 14 2010, 14:22
|
|
|
|
|
Feb 14 2010, 16:54
|
Группа: Участник
Сообщений: 6
Регистрация: 14-02-10
Пользователь №: 55 471

|
Добавил поддержку hwinterface.sys - это драйвер от inpout32
|
|
|
|
|
Feb 14 2010, 17:09
|

Гуру
     
Группа: Модератор FTP
Сообщений: 4 479
Регистрация: 20-02-08
Из: Москва
Пользователь №: 35 237

|
Цитата(ptbnfns @ Feb 14 2010, 17:20)  б)добавив раздел в реестр. пример для 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-файл в свой архив! А то ведь забудется место на форуме, где вы это написали.
|
|
|
|
|
Feb 14 2010, 19:31
|
Группа: Участник
Сообщений: 6
Регистрация: 14-02-10
Пользователь №: 55 471

|
Добавил работу через драйвер WinRing0.sys + куча драйверов в архиве вместе с библиотекой
|
|
|
|
|
Feb 14 2010, 20:04
|

Нечётный пользователь.
     
Группа: Свой
Сообщений: 2 033
Регистрация: 26-05-05
Из: Бровари, Україна
Пользователь №: 5 417

|
Цитата(ptbnfns @ Feb 14 2010, 14:10)  Достало  "Так отож!" Цитата(ptbnfns @ Feb 14 2010, 14:10)  Единственное неудобство - необходимость переименовывать её в то имя которое данное приложение "знает". Как вариант - предлагаю odvport.dll Исходнит прилагается (GPL) Насколько я понял комментарий у меня на сайте и тутошнее - достаточно переименовать её в dlportio.dll, поставить любой из перечисленных драйверов и avreal должен заработать, не заметив подмены. Альтеровский драйвер, насколько я помню, позволяет пакетировать запросы, что несколько поднимет скорость, но - вроде бы и так не слишком медленно - LPT таки уходит и "тонкие оптимизации" как-то ни к чему. Всё равно по скорости проиграет FT2232 :-) Поэтому Ваша DLL - это отличное универсальное решение. Цитата Единственное неудобство - необходимость переименовывать её в то имя которое данное приложение "знает". Ну ради такого инструмента не грех и добавить загрузку библиотеки с её "родным" именем. Присоединяюсь к Ксении - было бы удобно иметь reg-файлы для каждого поддерживаемого драйвера.
--------------------
Ну, я пошёл… Если что – звоните…
|
|
|
|
|
Feb 17 2010, 20:39
|
Группа: Участник
Сообщений: 6
Регистрация: 14-02-10
Пользователь №: 55 471

|
Цитата Насколько я понял комментарий у меня на сайте и тутошнее - достаточно переименовать её в dlportio.dll, поставить любой из перечисленных драйверов и avreal должен заработать, не заметив подмены. Так точно! Цитата Альтеровский драйвер, насколько я помню, позволяет пакетировать запросы, что несколько поднимет скорость, но - вроде бы и так не слишком медленно - LPT таки уходит и "тонкие оптимизации" как-то ни к чему. Всё равно по скорости проиграет FT2232 :-) Да позволяет, но у меня это не реализовано т.к. все эти заморочки с сбором обращений в пакет череваты багами, а тестировать такие вещи долго и муторно, короче лень заморачиваться. Но для совместимости я разворачиваю пакетные обращения в циклы. Цитата Присоединяюсь к Ксении - было бы удобно иметь reg-файлы для каждого поддерживаемого драйвера. В архиве из поста №222 они есть. Цитата А почему первая строка закомментарена? Разве dlportio.dll не нужна? Эта строка там только для напоминания. Реально он у меня всегда лежал в той же папке, где avreal ибо больше никто не пользуется. Повторюсь - для моей DLL нужен только драйвер. (тот - который *.sys)
|
|
|
|
|
  |
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|