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

Хитрая ошибка USB драйвера

Дано: Взят пример из 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-ку) - то все тоже ок.

Вопрос: Хотя бы подскажите где можно начать копать? Где есть какие таймеры/ограничения по времени реакции в драйвере (или это чей-то буфер у железа затыкается)?

Само приложение больно здоровое, на Дельфях и отчасти коммерческая тайна smile но всю работу оно ведет через интерфейсную dll -

DLL-доступа (http://zhaw.newmail.ru/USbLink6.rar) - тут dll-ка доступа, у которой вызываются сначала InitUSB, потом SendServiceBuffer/CheckServiceBuffer , потом уже собс-но данные о которых разговор передаются с помощью последовательного вызова SendServiceBuffer, CheckServiceBuffer и двух или более вызовов CheckBulkBuffer (первый вызов 256 байт, остальные >512).

Драйвера (http://zhaw.newmail.ru/drivers.rar) Код железки могу тоже выложить - если оно надо (там просто некоторая специфика - код под контроллер М16С62....)

В момент передачи скачка загруженности не наблюдается, но по ощущениям некоторое подтормаживание есть (как проседание фпс-а в шутерах....), если открывать/закрывать вин-эксплорер - то все нормально - не срывается (ну или что нить такое же легкое).

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


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

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

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

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

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

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

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

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

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

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