Не подскажет ли кто адекватную программу, дабы проверить форматы дескрипторов, получаемых хостом? Или, возможно, просто идею подаст, в направлении, где искать...
Суть проблемы:
Делаю композитное HID-устройство. Процессор Xmega128A3U. Начинал делать еще с год назад, но начальник тогда работу приостановил, вот дошло время продолжить...
1 интерфейс - стандартная клавиатура, все работает (2 EP)
2 интерфейс - трекбол, работает в режиме мыша, все работает (1 EP)
3 интерфейс (Generic) - клавиатура со специфичными сканкодами для программы (2 EP)
4 интерфейс (Generic) - набор энкодеров (1EP)
Первые два интерфейса запустил, все работает. Включаю третий - все три при энумерации встают с восклицательными знаками. Включаю четвертый (пропустив третий) - два первых работают, но интерфейс стоит с восклицательным знаком. В последнем случае подозреваю, что проблема в дескрипторе репорта (если неправ, поправьте). В первом даже не знаю, на что грешить. На что вообще такое поведение указывает обычно? Я USB раньше не делал, если честно, а тут сразу композит.
Проверял с помощью USBlyzer (в дескрипторе конфигурации говорю, что интерфейсов два, но спихиваю все 4 набора дескрипторов). Вроде, все дескрипторы в порядке, передаются нормально...
P.S. Есть еще "забавная" фишка: все интерфейсы нормально при энумерации отображают имя забитое в строковом дескрипторе, а вот 2-й упорно хочет на это плевать, хотя код выбора строки единый, по switch-у, номер дескриптора правильный, строка сама есть, все проверил...
P.P.S. Понимаю, что многого хочу... но вдруг...

Забыл добавить: часть кода переделана из Атмеловского фреймворка, с исправлением замеченных мною косяков...