Sourcecode Fortschritt
-
Rev. 204:
http://prettyos.svn.sourceforge.net/viewvc/prettyos?view=rev&revision=204ehci.c: Analyse der Inhalte von QH, QTD und Buffer-Pointer verbessert, damit die erwünschte Wirkung gezielter herbei geführt werden kann.
Screenshot: http://www.henkessoft.de/OS_Dev/Bilder/rev205.PNG
-
Du hast ja ziemliche Mühe damit. Hier mal ein Beispiel: http://research.microsoft.com/en-us/um/redmond/projects/invisible/src/drivers/serial/usb/master/ehci/ehci.c.htm
-
Rev. 205:
http://prettyos.svn.sourceforge.net/viewvc/prettyos?view=rev&revision=205- time.c: mehrfacher Code (5x fast identisch) in Funktion ausgelagert
-
@Z: Tobiking und ich quälen uns momentan etwas herum, aber wir kommen vorwärts.
Diesen MS-Code kennen wir schon, bringt mich aber nicht wirklich weiter.
Was soll ich z.B. damit?/* Initialize the aperiodic list * NB: This is the endpoint #0 used during configuration, we only * initialize here only the fields that will not change. */ EhciWriteRegister(&Qhead->Ed.Next, VirtualToPhysical(Qhead) | EHCI_POINTER_TYPE_QH); EhciWriteRegister(&Qhead->Ed.EndpointCaps, (1 << EHCI_QH_RL_SHIFT) | (8 << EHCI_QH_MPS_SHIFT) | EHCI_QH_H | EHCI_QH_DTC | EHCI_QH_480Mbps ); EhciWriteRegister(&Qhead->Ed.TransferOverlay.Next, EHCI_POINTER_TYPE_TERMINATOR); EhciWriteRegister(&Qhead->Ed.TransferOverlay.Alternate, EHCI_POINTER_TYPE_TERMINATOR);
-
Erhard Henkes schrieb:
Was soll ich z.B. damit?
Als Beispiel verwenden, analysieren und verstehen.
Sonst seid ihr nächstes Jahr noch nicht fertig.
-
Ich zitiere mal Tobiking aus dem IRC:
Gerade MS Code würde ich nicht nehmen ^^
Dennoch, wenn es hakt, schauen wir da schon rein. ehci.h fand ich dort ganz gut, weil man ein Gefühl für die notwendigen Strukturen und Defines bekommt. Sind aber auch Fehler drinnen, die ich bereits gesehen habe.
Wir wühlen uns durch die Specs von EHCI und USB 2.0. Das reicht erstmal an Infos. Eher zuviel als zu wenig.
-
Rev. 206:
http://prettyos.svn.sourceforge.net/viewvc/prettyos?view=rev&revision=206EHCI /USB Zwischenschritt
Transaktionen funktionieren noch nicht.
-
Ich möchte ja kein Spielverderber oder Schwarzseher sein, aber vom Microsoftcode würde ich wirklich die Finger lassen. Inwieweit Linuxcode ansehen und den als Anleitung für ein BSD-OS zu nehmen schlimm ist, weiß ich nicht (denke nicht allzu schlimm), aber der MS-Code ist mit einem "All rights reserved" gekennzeichnet. Ich denke zwar nicht, dass MS euch deshalb verfolgen wird, aber trotzdem ist es rechtlich eher problematisch, sich den vorzunehmen, könnte ich mir vorstellen...
-
Wir möchten das ja auch selbst verstehen und lösen. Bei EHCI und USB 2.0 kommt es echt auf den Durchblick und das Verstehen der Abläufe an. Irgendwo haben wir einen Mechanismus - vermutlich bei EHCI - noch nicht verstanden.
Einer meiner PCs zeigt ja auch noch J-State anstelle 0x1004 oder 0x1005 (high speed enabled). VBox läuft nicht richtig.
Ich hoffe nur, dass die physikalische Adresse, die VMM zurück gibt, ok ist.
-
Rev. 207:
http://prettyos.svn.sourceforge.net/viewvc/prettyos?view=rev&revision=207ehci.c:
die allokierten Bereiche auf dem Heap werden mit memset(...) durchgängig auf 0 gesetzt.EHCI /USB Zwischenschritt, Transaktion läuft noch nicht.
-
Rev. 208:
http://prettyos.svn.sourceforge.net/viewvc/prettyos?view=rev&revision=208- Wochentage werden nun (aufgrund unterschiedlicher zählweisen unterschiedlicher cmos) berechnet statt ausgelesen.
-
XanClic schrieb:
Ich möchte ja kein Spielverderber oder Schwarzseher sein, aber vom Microsoftcode würde ich wirklich die Finger lassen. Inwieweit Linuxcode ansehen und den als Anleitung für ein BSD-OS zu nehmen schlimm ist, weiß ich nicht (denke nicht allzu schlimm), aber der MS-Code ist mit einem "All rights reserved" gekennzeichnet. Ich denke zwar nicht, dass MS euch deshalb verfolgen wird, aber trotzdem ist es rechtlich eher problematisch, sich den vorzunehmen, könnte ich mir vorstellen...
Du sollst ihn auch nicht kopieren, sondern davon lernen.
-
Z schrieb:
XanClic schrieb:
Ich möchte ja kein Spielverderber oder Schwarzseher sein, aber vom Microsoftcode würde ich wirklich die Finger lassen. Inwieweit Linuxcode ansehen und den als Anleitung für ein BSD-OS zu nehmen schlimm ist, weiß ich nicht (denke nicht allzu schlimm), aber der MS-Code ist mit einem "All rights reserved" gekennzeichnet. Ich denke zwar nicht, dass MS euch deshalb verfolgen wird, aber trotzdem ist es rechtlich eher problematisch, sich den vorzunehmen, könnte ich mir vorstellen...
Du sollst ihn auch nicht kopieren, sondern davon lernen.
Ich weiß nicht, ob es das besser macht.
-
XanClic schrieb:
Z schrieb:
XanClic schrieb:
Ich möchte ja kein Spielverderber oder Schwarzseher sein, aber vom Microsoftcode würde ich wirklich die Finger lassen. Inwieweit Linuxcode ansehen und den als Anleitung für ein BSD-OS zu nehmen schlimm ist, weiß ich nicht (denke nicht allzu schlimm), aber der MS-Code ist mit einem "All rights reserved" gekennzeichnet. Ich denke zwar nicht, dass MS euch deshalb verfolgen wird, aber trotzdem ist es rechtlich eher problematisch, sich den vorzunehmen, könnte ich mir vorstellen...
Du sollst ihn auch nicht kopieren, sondern davon lernen.
Ich weiß nicht, ob es das besser macht.
Kommt wohl auf die Person an. Ich jedenfalls finde fremde Code-Beispiele oft sehr hilfreich.
-
@Z: in welcher Funktion läuft ein Control Transfer auf der asynchronen Liste ab?
-
Z schrieb:
Kommt wohl auf die Person an. Ich jedenfalls finde fremde Code-Beispiele oft sehr hilfreich.
Hm, solche Sätze kenne ich noch von jemand anderem... Egal.
Ich natürlich auch. Mein OS steht nicht ohne Grund unter der GPL, damit ich vollkommen legal GPL-Code ansehen und mich davon (unbegrenzt weit) inspirieren lassen kann. Aber PrettyOS steht erstens nicht unter der GPL und zweitens sind bei diesem Code sogar alle Rechte vorbehalten. Und Lizenzen verletzen ist eher doof.
(Das Problem ist halt immer: Angucken ist an sich wohl kein Problem, aber wer garantiert am Ende, dass man nicht doch unbewusst kopiert hat?)
-
Erhard Henkes schrieb:
@Z: in welcher Funktion läuft ein Control Transfer auf der asynchronen Liste ab?
Was fragst Du mich? Ich habe mich mit USB noch nie beschäftigt. Es gibt aber IMHO ohne Ende Literatur zu USB, Bücher und Spezifikationen.
Vielleichst sucht Du mal nach einem Minimalbeispiel, etwa einer USB-Host Implementation für Mikrokontroller. Solche Codes sind weniger durchsetzt von Systemaufrufen. Im Internet solltest Du einiges finden.
Edit: Ist möglicherweise wertlos, weil zu hardwareabhängig.
-
Rev. 209:
http://prettyos.svn.sourceforge.net/viewvc/prettyos?view=rev&revision=209ehci.c: einige Parameter verändert, inactive ergänzt
-
Rev. 210:
http://prettyos.svn.sourceforge.net/viewvc/prettyos?view=rev&revision=210ehci: fehler in memset beseitigt
Tobiking: Host Error ab 207!
-
Rev. 211:
http://prettyos.svn.sourceforge.net/viewvc/prettyos?view=rev&revision=211ehci: Änderungen von Tobiking bezüglich QH und QTD sowie Speicher eingebaut
VMWare: data: 0