Weiterentwicklung von PrettyOS: Floppy vs USB


  • Mod

    So einfach ist die Entwicklung eines USB-Treibers also nicht.
    Wie gesagt, sowas gibt es bereits.

    @Erik: kannst Du mir bitte diesen Link auf den Sourcecode eines funktionierenden USB-Treibers geben?



  • Hallo,

    Erhard Henkes schrieb:

    kannst Du mir bitte diesen Link auf den Sourcecode eines funktionierenden USB-Treibers geben?

    Aber klar:
    http://www.embedded-projects.net/usbport
    http://www.platon42.de/poseidon.html
    http://www.reactos.org/wiki/USB_Stack
    ich hab da noch ein paar andere in Erinnerung aber finde die jetzt nicht auf die schnelle. Die großen etablierten Open-Source-OSe bieten auch einiges.
    Viele größere Mikrocontroller haben heutzutage einen USB-Host-Controller eingebaut und daher gibt es da verschiedene Projekte. Die Suchmaschine Deiner Wahl sollte noch mehr bringen können.

    Grüße
    Erik


  • Mod

    Danke! 🙂


  • Mod

    Hier läuft auch gerade eine aktuelle Diskussion bezüglich USB-Treiber:
    http://forum.osdev.org/viewtopic.php?f=1&t=21515



  • Hallo,

    ich hab noch ein paar Links
    http://www.mikrocontroller.net/articles/USB#Host-Controller_im_Mikrocontroller für die dort genannten Mikrocontroller gibt es von den Herstellern unterschiedlich komplexe UBS-Host-Stack Implementierungen, zum Teil auch als Source-Code; die Seite ist auch insgesamt recht interessant
    http://code.google.com/p/tatos/ tatOS : "Operating system for x86 32bit computers written in assembly", unterstützt UHCI & EHCI Host-Controller und Mass-Storage-Devices

    Wenn ich mit meinem Projekt irgendwann mal so weit bin das ich Dateien lesen/schreiben will (außer RAM-Disk) dann muss ich mich entscheiden ob ich mit USB oder SATA anfange, so nen uralten Floppy-Kram will ich jedenfalls nicht anfangen.

    Grüße
    Erik


  • Mod

    so nen uralten Floppy-Kram will ich jedenfalls nicht anfangen

    Können Cuervo und ich inzwischen nachfühlen, ist auch wirklich nicht einfach und ziemlich lahm.



  • Hallo,

    so nen uralten Floppy-Kram will ich jedenfalls nicht anfangen

    Ich hatte mal daran gedacht sowas wie http://www.nuvoton.com/hq/enu/ProductAndSales/ProductLines/ComputerIC/SuperIO/LPCSuperIOforDesktopAndServer/W83627HG-AW.htm oder http://www.via.com.tw/en/products/peripherals/super-io/ einzusetzen, etwas in der Art habt Ihr bestimmt auch in Euren physischen Test-Rechnern. Allzu schwer sollte es nicht sein ein LPC-Master in ein FPGA zu implementieren, den A20-Ausgang dieser Chips muss ich ja nicht nutzen. So ein Chip würde mir auf einen Schlag eine Reihe Schnittstellen bieten, auf der anderen Seite müsste ich auch etliche Verrenkungen machen um dieses Gewürch in meine Plattform zu integrieren.

    Erhard Henkes schrieb:

    Können Cuervo und ich inzwischen nachfühlen, ist auch wirklich nicht einfach und ziemlich lahm.

    Tja, moderne Schnittstellen (USB oder SATA) sind doch etwas anderes als so ein abscheulicher Kram der schon gut 30 Jahre vor sich hin fault (und in der Zwischenzeit ziemlich stinkt).

    Viel Spaß noch! 😃

    Grüße
    Erik


  • Mod

    Viellicht kannst Du in die Schnittstelle Floppy ---> DMA rein schauen, warum das so unzuverlässig läuft. Wir müssen da höllisch aufpassen und checken, damit uns dort die Daten lückenlos ankommen. Irgendetwas ist da noch nicht brauchbar.



  • erik.vikinger schrieb:

    Erhard Henkes schrieb:

    Können Cuervo und ich inzwischen nachfühlen, ist auch wirklich nicht einfach und ziemlich lahm.

    Tja, moderne Schnittstellen (USB oder SATA) sind doch etwas anderes als so ein abscheulicher Kram der schon gut 30 Jahre vor sich hin fault (und in der Zwischenzeit ziemlich stinkt).

    Stimmt, ekelhaft und hässlich. Das ist USB wirklich, da spreche ich aus Erfahrung. Komm nach #tyndur und frag eddyb, der auch versucht, einen USB-Treiber zu implementieren, der singt das gleiche Lied (und der ist noch dabei, den Host Controller zum Sprechen zu bringen...). 🙄

    Ich habe nie versucht, fremden Code zu nehmen. Das könnte schon einfacher sein. Aber was soll das? Ich möchte mein OS nie wirklich einsetzen. Wenn ich arbeiten will, nehme ich Linux. Deshalb hab ich persönlich nichts dagegen, wenn in Hobby-Betriebssystemen auf "veraltete" Standards gesetzt wird, weil diese dazu da sind, Erfahrung zu sammeln. Gerade bei PrettyOS ist das der Fall. Dies soll doch ein didaktisch wertvolles OS sein und kein OS, das alles kann, dachte ich?

    erik.vikinger schrieb:

    Viel Spaß noch! 😃

    Den werden sie haben, wenn sie versuchen, USB selbst zu implementieren, wie es sich für ein didaktisch wertvolles OS gehört. 🙄


  • Mod

    Dies soll doch ein didaktisch wertvolles OS sein und kein OS, das alles kann, dachte ich?

    Völlig richtig. PrettyOS soll verständlich bleiben und zum eigenen Experimentieren einladen. Momentan treten einige Effekte auf, die zumindest ich nicht völlig verstehe. Außerdem sind im Floppy/FAT-Bereich einige Parallelitäten bei Funktionen eingetreten, die noch beseitigt werden müssen. Bezüglich Multitasking stehen wir noch ziemlich am Anfang, das macht Probleme.

    Was aber Spaß macht, ist der Umstand, dass man mehrere eigene User-Programme für PrettyOS erstellen und laufen lassen kann. Da warten aber auch schon wieder neue Tücken. Also genug damit zu tun, das Vorhandene gerade im didaktischen und experimentellen Sinne zu optimieren, verständlich zu halten und zu stabilisieren.



  • Hallo,

    Erhard Henkes schrieb:

    Viellicht kannst Du in die Schnittstelle Floppy ---> DMA rein schauen, warum das so unzuverlässig läuft. Wir müssen da höllisch aufpassen und checken, damit uns dort die Daten lückenlos ankommen.

    Ob Du es glaubst oder nicht aber mit dedizierten DMA-Controllern hatte ich noch nie etwas zu tun, mit dem 8237 auch nicht, alle Hardware für die ich Treiber programmiert habe kann ihre Daten selber aus/in dem RAM lesen/schreiben oder wurde per PIO von der SW bedient (bei kleinen Datenmengen).
    Kann es sein das ihr Eure DMA-Transfers aufsplittet weil die Zielpages nicht an einem Stück im physischen Speicher liegen? Du hattest Doch mal geschrieben das ihr immer ganze Spuren am Stück verarbeitet, das sind doch 9kByte wenn mein Gedächtnis mich jetzt nicht im Stich lässt. Falls da ein Problem ist solltet ihr versuchen zusammenhängend physischen Speicher und nur einen DMA-Job zu nutzen. Für was nehmt ihr eigentlich die ersten 640k? Die würden sich ideal als Zwischenpuffer anbieten.

    XanClic schrieb:

    Stimmt, ekelhaft und hässlich. Das ist USB wirklich, ...

    Okay, USB ist vielleicht nicht unbedingt als Positiv-Beispiel geeignet, die Spec liest sich teilweise echt fürchterlich. Auch das mit jeder neuen Generation ein neuer Host-Controller mir rein gewürgt wird ist sicher zum kotzen aber so übel sieht die EHCI-Spec IMHO gar nicht aus, ich sehe dort viele Konzepte die ich von anderer Hardware auch gewöhnt bin. Ich habe mich mit USB noch nicht so sehr intensiv beschäftigt, ich bin mir auch noch nicht sicher ob ich auf meiner Plattform überhaupt USB haben will. USB ist eben sehr verbreitet und man hat ja neben der Mass-Storage-Class noch HID und für alles gibt es auch bereits ne Menge Source-Code. Ich denke (hoffe) wenn ich doch USB haben will dann werde ich nur in die untersten Ebenen viel Arbeit investieren müssen.

    Ich habe nie gesagt das ein USB-Host-Stack einfacher ist als ein Floppy-Treiber, ich habe lediglich angeregt mal drüber nachzudenken ob sich dieser Mehraufwand nicht vielleicht doch lohnt weil man auch einen viel größeren Gegenwert bekommt und Floppy in kaum einen Rechner mehr drin ist. Ich bin der Meinung das die potentielle Zielgruppe eingeschränkt wird wenn man ausgestorbene Hardware voraussetzt. Wenn man sich anschaut was die letzten 10 Jahre als Komplett-PC bei Media-Markt und Co. so über die Theke gewandert ist so ist "booten von USB" sicherlich deutlich häufiger als "booten von Floppy". Wenn Ihr Euch gegen USB entscheidet so kann ich damit prima leben, ich wollte lediglich zum diskutieren anregen.

    Grüße
    Erik



  • erik.vikinger schrieb:

    Ich habe nie gesagt das ein USB-Host-Stack einfacher ist als ein Floppy-Treiber, ich habe lediglich angeregt mal drüber nachzudenken ob sich dieser Mehraufwand nicht vielleicht doch lohnt weil man auch einen viel größeren Gegenwert bekommt und Floppy in kaum einen Rechner mehr drin ist. Ich bin der Meinung das die potentielle Zielgruppe eingeschränkt wird wenn man ausgestorbene Hardware voraussetzt. Wenn man sich anschaut was die letzten 10 Jahre als Komplett-PC bei Media-Markt und Co. so über die Theke gewandert ist so ist "booten von USB" sicherlich deutlich häufiger als "booten von Floppy". Wenn Ihr Euch gegen USB entscheidet so kann ich damit prima leben, ich wollte lediglich zum diskutieren anregen.

    Eigentlich wurde darüber bereits genügend diskutiert, glaube ich. 😉

    s. z. B. http://www.c-plusplus.net/forum/viewtopic-var-t-is-253016.html oder ab http://www.c-plusplus.net/forum/viewtopic-var-t-is-236354-and-start-is-681.html

    Solche Diskussionen wünsche ich mir, ehrlich gesagt, nicht zurück. 😉



  • Hallo,

    XanClic schrieb:

    Eigentlich wurde darüber bereits genügend diskutiert, glaube ich. 😉

    Okay, dann nicht. Entschuldigt bitte meine Störung.

    XanClic schrieb:

    Solche Diskussionen wünsche ich mir, ehrlich gesagt, nicht zurück. 😉

    Kann ich gut verstehen. Auf das Niveau eines ";fricky" will ich ja nicht hinab (war ich IMHO auch nicht).

    Grüße
    Erik


  • Mod

    Entschuldigt bitte meine Störung.

    Du störst nicht. Wir schätzen Meinungsvielfalt, jedoch werden wir auf Konstruktivität achten, zumindest bei der praktischen Entwicklung, da unsere Ressourcen limitiert sind. USB ist ein klar definiertes Ziel, momentan aber zu früh, da das OS nicht ausreichend stabil läuft und im Treiberbereich nicht wirklich abstrahiert ist.


  • Mod

    Noch zur Erläuterung:

    ;fricky ist ein "Troll", der sich vor Kurzem großspurig aus dem cplusplus-Forum verabschiedet hat. Hier hat er nichts beigetragen, lediglich ständig gegen x86 gewettert, ohne es zu kennen, und einen USB-Treiber versprochen, auf den wir immer noch warten.

    FAZIT: Konstruktiven praktischen Input mögen wir hier mehr als nutzlose theoretische Belehrungen. 😉



  • erik.vikinger schrieb:

    XanClic schrieb:

    Eigentlich wurde darüber bereits genügend diskutiert, glaube ich. 😉

    Okay, dann nicht. Entschuldigt bitte meine Störung.

    So war das nicht gemeint, sonst hätte ich das ";)" weggelassen. 😉 (da wars ja schon wieder 😃 )

    Ich wollte nur zeigen, dass es bereits Diskussionen darüber gab, falls du die noch nicht mitbekommen hast, und die zuerst lesen solltest, bevor du Erhard davon überzeugst, USB einzubauen (vielleicht auch nur, um ihn dank der Kenntnis der "Vorgeschichte" noch besser überzeugen zu können). 😉

    (Verdammt, hier muss mal ein alternativer Smiley fürs Zwinkern her. Vielleicht mit dem anderen Auge? So benutz ich den doch viel zu oft.)



  • Hallo,

    XanClic schrieb:

    Ich wollte nur zeigen, dass es bereits Diskussionen darüber gab, falls du die noch nicht mitbekommen hast,

    Die hatte ich tatsächlich noch nicht mitbekommen. Erhard hatte aus meinem Beitrag vom 31.01. einen neuen Thread generiert (mein Beitrag war eigentlich in einem anderen Thread) so das ich davon aus gegangen bin das diese Diskussion einen gewissen Neuheitsgrad hat.

    XanClic schrieb:

    und die zuerst lesen solltest, bevor du Erhard davon überzeugst, USB einzubauen (vielleicht auch nur, um ihn dank der Kenntnis der "Vorgeschichte" noch besser überzeugen zu können). 😉

    Ich will Erhard nicht unbedingt überzeugen, ich persönlich bin einfach nur der Meinung das eine pragmatische Kosten/Nutzen-Rechnung eher zu USB tendiert. Wobei ich natürlich dankbar sein werde, falls ich mich später doch für USB entscheide, wenn sich da schon jemand erfolgreich durch gekämpft hat.

    Grüße
    Erik


  • Mod

    Ich stecke so zwischen DMA und Floppy fest, dass mir jede Kraft für USB fehlt. Kommt aber als Nächstes, weil es einfach notwendig ist.

    EDIT: inzwischen erledigt 😉 Wir haben EHCI und USB2.0 und können auf usb-mass storage devices schreiben bzw. von dort lesen (in FAT12/16/32).


Anmelden zum Antworten