Hi, ich habe aktuell eine Mikrocontroller, auf dem Flash vorhanden ist und auf welches ich mittels Chan's FatFS bereits problemlos zugreifen kann. USB hat das gute Stück ebenfalls. Im nächsten Schritt soll sich der Controller jetzt auf einem Host-System als Laufwerk melden, wenn er per USB angeschlossen wird. Hier suche ich nun ein paar Anhaltspunkte, wie das zu bewerkstelligen ist/wo ich anfangen kann zu suchen, z.B.: - welche Daten sind an den Host-PC zu übertragen, werden da irgendwie die nackten Flash-Zugriffe durchgereicht und der Host-PC kümmert sich um das Filesystem? - welcher USB-Typ ist hier zu verwenden - Bulk-Transfer? Jeder Hinweis/Einstiegspunkt/Link ist willkommen!
Warper schrieb: > - welche Daten sind an den Host-PC zu übertragen, werden da irgendwie > die nackten Flash-Zugriffe durchgereicht und der Host-PC kümmert sich um > das Filesystem? Wenn Du mit "nackten Flash-Zugriffen" die Zugriffe auf Speicherblöcke meinst: Ja, genau so ist das. Der µC braucht dafür keinerlei Dateisystem zu kennen. Sofern Du vorhast, die vom Host auf Deinem USB-Device gespeicherten Daten mit dem µC auszuwerten (oder andersherum Daten vom µC auf den Host zu übertragen), musst Du darauf achten, daß immer nur einer der Beteiligten das Dateisystem verwalten darf. Dein µC kann erkennen, ob er an einen Host angeschlossen ist; ist das der Fall, hat er tunlichst jeden schreibenden Dateisystemzugriff zu unterlassen. Er darf erst dann im Dateisystem herumrühren, wenn der Host weg ist. Es genügt nicht, lediglich Schreibzugriffe des Hosts auszusitzen, der µC muss wirklich vom Host getrennt sein. Der Host nämlich kann nicht erkennen, daß Dein µC im Dateisystem herumschreiben möchte, und wird aus Performancegründen bestimmte Teile des Dateisystems cachen (wie z.B. die FAT), so daß auch bei reinen Lesezugriffen seitens des Hosts sehr interessante Nebeneffekte auftreten können. Bei Schreibzugriffen durch den Host wird das noch ... lustiger.
Du mußt ein USB mass storage device implementieren. Die Übertragung verwendet selbstverständlich bulk transfers. Natürlich kriegt der Host den nackten Speicher zu sehen (macht die Interpretation von Filesystem und evtl. Partitionstabelle also selber)
Axel Schwenke schrieb: > Du mußt ein USB mass storage device implementieren. Die Übertragung > verwendet selbstverständlich bulk transfers. > > Natürlich kriegt der Host den nackten Speicher zu sehen (macht die > Interpretation von Filesystem und evtl. Partitionstabelle also selber) er könnte auch MTP nutzen, dann braucht er kein Filesystem und kann selber gleichzeitig lesen und schreiben. http://de.wikipedia.org/wiki/Media_Transfer_Protocol
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.