Windows verschluckt USB Transfers

OP #4464200
Lesenswert?
• ▲
▼
Ich bin jetzt schon seit Wochen einem äußerst hartnäckigem Bug auf der 
Spur. Ich habe auf einem STM32F4 ein USB MTP Device programmiert und 
eigentlich läuft alles, bis auf das Abbrechen eines Kopiervorgangs vom 
PC zum Device. Dabei scheint der nächste Transfer nach dem Abbruch auf 
dem Bulk Endpoint irgendwo verschluckt zu werden.

Ich habe jetzt schon mit meinem China Logic Analzer die USB 
Datenleitungen (Full-Speed) zum Device angezapft und mit Sigrok die USB 
Transfers decodieren lassen. Das funktioniert einigermaßen gut obwohl 
der Logic Analyzer nur mit 24 MHz Samples aufnimmt, manchmal werden 
einige Pakete aber fehlerhaft decodiert. Dabei stellte ich fest, dass 
die tatsächlich gesendeten Daten nicht mit denen eines Software Sniffers 
(USBPcap/USBlyzer) übereinstimmen. Der nächste Request direkt nach dem 
Abbruch des Transfers taucht noch im Software Sniffer auf, wird aber nie 
tatsächlich ans Device gesendet. Das ich den Transfer übersehen habe ist 
so gut wie ausgeschlossen, da ~20 Bytes übertragen werden und ich das 
irgendwo zwischen den kurzen SOF Paketen hätte finden müssen.

Der Fehler tritt allerdings nicht immer auf sondern nur an den USB 2.0 
Ports meines PCs (sowohl unter Win 7 als auch Win 10). Gleicher Fehler 
auch an allen USB Ports meines Laptops (hat noch kein USB 3.0). Der 
Fehler tritt allerdings nicht auf an den USB 3.0 Ports oder unter Linux. 
Auch wenn es ziemlich unwahrscheinlich ist vermute ich den Fehler daher 
Momentan auf der PC Seite. Allerdings habe ich keine Ahnung wie ich den 
Fehler weiter debuggen soll. Hat man als Hobbyentwickler überhaupt noch 
Möglichkeiten den MTP/USB Treiber weiter zu debuggen?

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.