Controler un port host USB

Bonjour,

Je suis en train de développer un système embarqué (arm cortexM3, baremetal) simulant un stockage de masse. En déboguant je me rends compte que mon système client se met en état suspendu très rapidement et attend un début de trame sur son port usb.
Un dmesg sur ma debian hôte me donne ceci:

[19322.289587] usb 2-1.1: new full-speed USB device number 50 using ehci-pci
[19322.361500] usb 2-1.1: device descriptor read/64, error -32
[19322.537321] usb 2-1.1: device descriptor read/64, error -32
[19322.713139] usb 2-1.1: new full-speed USB device number 51 using ehci-pci
[19322.785209] usb 2-1.1: device descriptor read/64, error -32
[19322.961021] usb 2-1.1: device descriptor read/64, error -32
[19323.136774] usb 2-1.1: new full-speed USB device number 52 using ehci-pci
[19323.544106] usb 2-1.1: device not accepting address 52, error -32
[19323.616119] usb 2-1.1: new full-speed USB device number 53 using ehci-pci
[19324.023610] usb 2-1.1: device not accepting address 53, error -32
[19324.023910] hub 2-1:1.0: unable to enumerate USB device on port 1
[21385.677309] usb 2-1.1: new full-speed USB device number 54 using ehci-pci
[21385.749377] usb 2-1.1: device descriptor read/64, error -32
[21385.925040] usb 2-1.1: device descriptor read/64, error -32
[21386.100981] usb 2-1.1: new full-speed USB device number 55 using ehci-pci
[21386.172944] usb 2-1.1: device descriptor read/64, error -32
[21386.348721] usb 2-1.1: device descriptor read/64, error -32
[21386.524562] usb 2-1.1: new full-speed USB device number 56 using ehci-pci
[21386.931953] usb 2-1.1: device not accepting address 56, error -32
[21387.003983] usb 2-1.1: new full-speed USB device number 57 using ehci-pci
[21387.411384] usb 2-1.1: device not accepting address 57, error -32
[21387.411502] hub 2-1:1.0: unable to enumerate USB device on port 1

Afin de pouvoir déboguer plus en profondeur j’aimerai envoyer des trames sur mon port usb a destination de mon système client baremetal.
Est-ce possible ? Si oui comment ?

Merci d’avance pour votre aide.

Déplacé vers SD, car il ne semble pas que cette demande soit du ressort de la programmation.

Bonjour,

Tu as regardé l’exemple de driver “USB Mass Storage” déjà tout fait avec le driver “USB gadget” de Linux ?

De même, Linux permet d’écouter ce qui passe sur le bus USB. Tu as essayé ?


AnonymousCoward

Merci AnonymousCoward, tu m’a mis sur une super piste :023 Le gadget usb mass storage est ce que j’essaie de faire avec mon micro-proc mais sans OS, je m’appuie déjà sur un exemple de KEIL. Il y a pas mal de choses sur linux-usb.org/gadget mais je n’ai rien trouvé qui corresponde réellement à se dont j’ai besoin. En fouillant je suis tombé sur linux-usb.org/usbtest/ qui pourra peut être m’aider. En attendant que je comprenne tout ça :think: , si quelqu’un a une idée plus précise de solution je suis preneur ! :smiley: