Цитата(controller_m30 @ Mar 10 2017, 18:20)

А где наблюдаете дублированные команды: в программе анализатора USB на компьютере (типа BusHound, и т.п.), или на стороне отладочной платы?
Если в компьютере, то программа анализатора может просто показывать запросы на разных уровнях: на уровне SCSI-запросов операционки, и на уровне запросов USB-драйвера. Поэтому и CBW-тэг один и тот-же в дублях, хотя он выбирается случайно для каждой команды.
В BusHound точно есть такой эффект, если в настройках выставить слишком много галочек.
Если смОтрите на стороне отладочной платы, то там дубли приходят тоже, но другие. Не такие где один и тот-же CBW-тэг два раза (с этим всё в порядке - повторных тэгов нет), а просто в некоторых случаях многократные чтения сектора (обычно это сектор 0), и команды: SCSI_MODE_SENSE_6, Request Sense, SCSI_TEST_UNIT_READY, Read Format Capacity и т.п служебные.
Записей каждого сектора по два раза, одними и теми же данными (до последнего байта) не встречал.
С записью сектора разобрался - это галюн моей либы не умеющей корректно работать с ZLP.
но вот дубли других команд - обычное дело. Я пользуюсь ваершарком - у него сыпется портянка обмена УСБ драйвера, и невидно где к какому уровню запрос он видит.
на стороне платы обнаружил особенность венды - интенсивное использование ZLP, сбивающее с толку. Может ли быть отсутствие ZLP в ответах хосту причиной дублирования команд?
постоянное перечитывание сектора 0, boot сектора, корня - вот это и смущает, ощущение что кеш файловой системы не действует на флешках?
по пункту 3 есть у Вас какието замечания? понятно что это можно проигнорить, о сама особеность намекает на галюны какието