Hallo, ich verwende KEIL + stm32f4 und wollte mal in die USB Welt einsteigen. Jetzt frage ich mich, welche USB lib ich nutzen sollte. Von KEIL gibts ja eine, aber leider sind da ja die Source-Codes nicht dabei. Aber Vertrauen in KEIL und deren Support ist hoch. Hat jemand schon Erfahrung mit der Lib gemacht? Von ST gibts ja auch eine. Ist umsonst + Source Codes... schön, aber mein Vertrauen in die Libs ist nicht wirklich hoch... Daher auch hier Frage, ob jemand damit schon gearbeitet hat und wie gut die lib so läuft? Mir wäre es wichtig die SourceCodes mitgeliefert zu bekommen, so dass man im Falle aller Fälle doch noch selber ran kann. Hat hier jemand vielleicht noch andere Tips? Danke und LG
Ich habe mal mit der ST USB Library gearbeitet, um die Daten vom Accelerometer auf dem STM32F4Discovery Board per USB zum PC zu schicken. Erstellung des USB-Deskriptors ist wie üblich etwas Fummelei, Integration der Library in das Projekt ist machbar. Beachten muss man einen Buffer-Overflow-Bug in der Library, denn sie speichert empfangene USB-Pakete immer komplett in den Empfangspuffer, selbst wenn dieser zu klein ist (und die Library das auch "weiß"). Daher muss der Puffer immer groß genug für ein komplettes Packet ( USBD_EP0_MAX_PACKET_SIZE ) sein, wenn man ihn an DCD_EP_PrepareRx übergibt. Ist halt typische ST-Software-Qualität - "funktioniert irgendwie"...
Programmierer schrieb: > Beachten muss man > einen Buffer-Overflow-Bug in der Library selber rausgefunden oder stand das in irgendeinem errata sheet? wenn ersteres, wie schwierig einfach ist es, sich in die quelldateien einzuarbeiten?
Selber rausgefunden, mithilfe des Debuggers und Watchpoints... Besonders fies war dass der Overflow einen vtable Pointer überschrieb, und dadurch ein scheinbar harmloser (virtueller) Funktionsaufruf zum Absturz führte... Und naja, eingearbeitet hab ich mich nicht wirklich, nur per Debugger die Stelle gefunden. Schau dir doch den Code einfach an und entscheide selbst ob du dich einarbeiten kannst...
Programmierer schrieb: > Schau dir doch den Code einfach an und entscheide > selbst ob du dich einarbeiten kannst... da führt wohl kein weg daran vorbei ;) das mit dem einarbeiten ist ja immer eine frage der zeit und nerven... daher hatte ich gehofft, im vorhinein schonmal in die richtige richtung gelotst werden zu können, damit man gleich mit was vernünftigen arbeitet. vielen dank auf jeden fall für deine erfahrungswerte lg
Ich bin auch gerade an der ST USB Lib dran und habe damit auch Probleme. Ich habe es soweit hin bekommen dass ich mit einerm PC Programm Daten austauschen kann. Wenn jedoch STM32 seitig der TX Buffer nonstop befüllt wird, dann "Hängt" der STM32 im USB Interrupt fest (Empty EP Interrupt) PC Seitig habe ich LibUSB mit einem Programm das per Timer alls 10ms den USB Buffer ausliest. Ich habe schon viel debuggt, aber irgendwie finde ich den Bug nicht :-/ Weiß jemand Rat? Ansonsten habe ich zufällig heute ein STM32F4 Demo gefunden, das WinUSB nutzt, und zwar so dass man keine extra INF/SYS Datei benötigt, getestet habe ich das noch nicht: http://searchingforbit.blogspot.com/2014/05/winusb-communication-with-stm32-round-2.html Quellen gibt es per SVN. Die Beschreibung von MSDN: http://msdn.microsoft.com/en-us/library/ff540196.aspx Die Sachen von Keil wollte ich jetzt nicht nehmen, ist mir zu teuer für Hobby. Schreibe bitte was für Fortschritte Du mit USB gemacht hast.
Markus Müller schrieb: > Schreibe bitte was für Fortschritte Du mit USB gemacht hast Mach ich... wird aber wohl etwas länger dauern. vielleicht finden sich ja auch noch mehr Leute in der Zwischenzeit? mal schauen und lg
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.