Jan. 7th, 2025

eddy_em: (Default)
Решил я еще в прошлом году "унифицировать" USB, чтобы проще было, если вдруг надумаю какое-то "эдакое" устройство сделать. Выкладываю на гитхаб помаленьку (HID, CDC и эмуляция PL2303). Пока только на F103. Если сегодня допишу составное устройство (7 USB-CDC в одном флаконе), то как-нибудь опробую всю четверку на F072 и F303.
Пока только один непонятный косяк: сразу после подключения неизменно вылезает:
string descriptor 0 read error: -75

и иногда
clear tt 2 (82a0) error -32

Но в дальнейшем проблем нет. ХЗ, что за причина этих ошибок. В отладочном выхлопе вообще проблем нет: пришел запрос — тут же на него ответ ушел. Правда, почему-то дескрипторы запрашиваются хостом по 2-3 раза. И в ответах на строковые дескрипторы wireshark иной раз ZLP показывает, хотя в отладке никаких ZLP не вижу, там что запросили, то и отправилось.

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

Вот такой скрипт (может, кому пригодится):
ACTION=="add", DRIVERS=="usb", ENV{USB_IDS}="%s{idVendor}:%s{idProduct}"
ACTION=="add", ENV{USB_IDS}=="067b:2303", ATTRS{interface}=="?*", PROGRAM="/bin/bash -c \"ls /dev | grep $attr{interface} | wc -l \"", SYMLINK+="$attr{interface}%c", MODE="0666", GROUP="tty"
ACTION=="add", ENV{USB_IDS}=="0483:5740", ATTRS{interface}=="?*", PROGRAM="/bin/bash -c \"ls /dev | grep $attr{interface} | wc -l \"", SYMLINK+="$attr{interface}%c", MODE="0666", GROUP="tty"

(правда, ХЗ, зачем я вообще этот USB_IDS делаю, если есть готовый ID_SERIAL).
Пытаюсь глянуть этот "interface" в
udevadm info --attribute-walk --name=/dev/ttyACM0

- нет ничего…

April 2025

S M T W T F S
  1 23 45
67 89101112
13141516171819
20212223242526
27282930   

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated May. 22nd, 2025 01:57 am
Powered by Dreamwidth Studios