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

Alexzhaw

Новичок
  • Постов

    1
  • Зарегистрирован

  • Посещение

Репутация

0 Обычный
  1. Дано: Взят пример из 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....) В момент передачи скачка загруженности не наблюдается, но по ощущениям некоторое подтормаживание есть (как проседание фпс-а в шутерах....), если открывать/закрывать вин-эксплорер - то все нормально - не срывается (ну или что нить такое же легкое).
×
×
  • Создать...