![]() |
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]() ![]() ![]() |
|
Zhaw |
|
|||
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 10.9.2007 Репутация: нет Всего: нет |
Дано: Взят пример из DDK - bulkusb драйвер, скомпилирован и установлен - работает все ОК. (Создаются 4 pipe - 2 bulk - in/out, 2 service in/out).
Поправлено в исходном - только PID и VID (ну и GUID) устройства. В качестве железки - контроллер (M16C62) через USB контроллер (PDIUSBD12 - Philips) - для него взят стандартный код, поставлявшийся на сайте производителя (где то в глубине). Проблема:Если передавать данные блоками больше чем 2*256 байт - то при разворачивании других приложений во время передачи ряда таких блоков (перемежаются передачи по sevice и по bulk) - приложение в винде ловит принятие 0 байт и затыкается. Если блоки по 512 байт или меньше (256) - то все отлично. Если во время передачи не трогать другие приложения (а спокойно смотреть на бегущий прогресс-бар - кстати - вызывается это дело из Дельфей через интерфейсную dll-ку) - то все тоже ок. Вопрос: Хотя бы подскажите где можно начать копать? Где есть какие таймеры/ограничения по времени реакции в драйвере (или это чей-то буфер у железа затыкается)? Это сообщение отредактировал(а) Zhaw - 7.7.2008, 11:37 |
|||
|
||||
Fixin |
|
|||
![]() Ёжик ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1357 Регистрация: 6.1.2004 Репутация: 8 Всего: 18 |
Превая мысль по описанию - слишком большой расход системных ресурсов... какова загрузка ЦП во время передачи данных? |
|||
|
||||
Zhaw |
|
|||
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 10.9.2007 Репутация: нет Всего: нет |
Fixin, конечно счас поделюсь исходниками.
Само приложение больно здоровое, на Дельфях и отчасти коммерческая тайна ![]() DLL-доступа (исходники) - тут dll-ка доступа, у которой вызываются сначала InitUSB, потом SendServiceBuffer/CheckServiceBuffer , потом уже собс-но данные о которых разговор передаются с помощью последовательного вызова SendServiceBuffer, CheckServiceBuffer и двух или более вызовов CheckBulkBuffer (первый вызов 256 байт, остальные >512). Драйвера: Драйвера (исходники) Код железки могу тоже выложить - если оно надо (там просто некоторая специфика - код под контроллер М16С62....) В момент передачи скачка загруженности не наблюдается, но по ощущениям некоторое подтормаживание есть (как проседание фпс-а в шутерах....), если открывать/закрывать вин-эксплорер - то все нормально - не срывается (ну или что нить такое же легкое). Это сообщение отредактировал(а) Zhaw - 8.7.2008, 08:12 |
|||
|
||||
![]() ![]() ![]() |
Правила форума "C/C++: Системное программирование и WinAPI" | |
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |