2015-12-15 19 views
0

Я работаю над драйвером и приложением для устройства USB для обновления прошивки через DFU. У меня есть USB-устройство, которое работает правильно. После этого я пытаюсь обновить прошивку устройства, а при загрузке прошивки я отсоединяю USB-кабель. Загрузка завершилась неудачно, как ожидалось. После этого я подключаю USB-устройство, и он находится в режиме DFU с продуктом 0xffff, потому что прошивка повреждена. Я пытаюсь запустить обновление снова, и каждый вызов IOUSBDevice :: DeviceRequest возвращает ошибку 0xe000404f (kIOUSBPipeStalled - Pipe застопорилась, ошибка должна быть очищена).DeviceRequest IOUSBDevice возвращает 0xe000404f на OS X

Я проверил с помощью USB Prober, а устройство в режиме DFU не имеет конечных точек. Я не уверен, как это работает, но похоже, что при вызове DeviceRequest используется нулевой канал. Так что, может быть, я должен назвать что-то вроде ClearPipeStall нулевой трубы для работы с устройством в режиме DFU с поврежденной прошивкой? Как мне это сделать? Если мое предположение неверно, как я могу решить эту проблему? После подключения устройства в режиме DFU я не выполняю никаких операций ввода-вывода, я просто получаю pid/vid и обнаруживаю объекты IOUSBDevice и IOUSBInterface (интерфейс DFU), как обычно.

На El Capitan я использую IOUSBHostInterface :: deviceRequest(), а также возвращает ошибку (но код ошибки отличается, я потерял код и не могу получить его прямо сейчас, потому что я установил Mavericks на своем Mac).

ответ

0

Вероятная причина ошибки kIOUSBPipeStalled заключается в том, что ваш загрузчик DFU находится в странном состоянии, и он либо не выполняет никаких контрольных передач в конечной точке 0, либо отвечает на них пакетами STALL. Пакет STALL обычно означает, что передача не поддерживается устройством.

Вы можете попробовать использовать аппаратный анализатор протоколов USB (например, Beagle 12), чтобы узнать, что на самом деле происходит на шине.

Я не думаю, что вызов ClearPipeStall поможет исправить эту проблему, но я не уверен.

 Смежные вопросы

  • Нет связанных вопросов^_^