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?
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.