Sourcecode Fortschritt
- 
					
					
					
					
 Rev. 150 
 http://prettyos.svn.sourceforge.net/viewvc/prettyos?view=rev&revision=150neues makefile: geht (nur) ohne msys        MSYS unbedingt aus dem PATH nehmen! MSYS unbedingt aus dem PATH nehmen! 
 
- 
					
					
					
					
 Rev. 151: 
 http://prettyos.svn.sourceforge.net/viewvc/prettyos?view=rev&revision=151- kernel_pd in task.c verwendet (bisher war dort NULL verwendet worden für das kernel PD) 
 
- 
					
					
					
					
 Rev. 152: 
 http://prettyos.svn.sourceforge.net/viewvc/prettyos?view=rev&revision=152- TTT 0.41: Macht Gebrauch von der Compileroption -Wshadow, entsprechende Änderungen am Code
 
 
- 
					
					
					
					
 Erhard Henkes schrieb: - kernel_pd in task.c verwendet (bisher war dort NULL verwendet worden für das kernel PD) War aber kein Bug, sondern ein Feature..  Ne im Ernst, wollte das Kernel-PD private lassen. Ist aber irgendwie doch doof, ich ändere es die Tage mal, macht auch den Code ein bissl kürzer. Ne im Ernst, wollte das Kernel-PD private lassen. Ist aber irgendwie doch doof, ich ändere es die Tage mal, macht auch den Code ein bissl kürzer.
 
- 
					
					
					
					
 Rev. 153: 
 http://prettyos.svn.sourceforge.net/viewvc/prettyos?view=rev&revision=153Dank des Hinweises von +gjm+ wurde endlich das Sun VB / MS VPC Problem gefunden. 
 Ich habe Datum/Zeit auskommentiert, bis die Funktion in Ordnung gebracht ist.InitEHCI habe ich ebenfalls auskommentiert, da ich dies für meine Tests benötige. 
 Wenn jemand da mithelfen will, in pci.c aktivieren.
 
- 
					
					
					
					
 Rev. 154: 
 http://prettyos.svn.sourceforge.net/viewvc/prettyos?view=rev&revision=154- makefile aufgeräumt
- user_tools ausgelagert nach user/user_tools und makefiles darauf angepasst
 Anmerkung (ehenkes): Super! Nun muss man nicht nach jeder Änderung die userlib.h/c kopieren. Arbeitserleichterung und eine Fehlerquelle weniger.  
 
- 
					
					
					
					
 Rev. 155: 
 http://prettyos.svn.sourceforge.net/viewvc/prettyos?view=rev&revision=155- Fehler in time.c in Fkt. getCurrentDateAndTime behoben.  Damit ist ein wichtiger Fehler (buffer overflow) verschwunden, der von Sun VB und MS VPC sensibel detektiert wurde. Dank an +gjm+ für den Fehlerhinweis!  
 
- 
					
					
					
					
 Rev. 156: 
 http://prettyos.svn.sourceforge.net/viewvc/prettyos?view=rev&revision=156- Fehler in ehci.c behoben 
 - ehci.c: die 6 Interrupt-Bits in USBINTR auf 0 gesetzt (wenn alle 6 gesetzt sind, kommen keine Tastenanschläge mehr durch)Tests auf realem PC und Sun VB bezüglich USB EHCI: ok  Rev. 157: 
 http://prettyos.svn.sourceforge.net/viewvc/prettyos?view=rev&revision=157
 Zwischenschritt bei ehci.cRev. 158: 
 http://prettyos.svn.sourceforge.net/viewvc/prettyos?view=rev&revision=158
 Zwischenschritt bei ehci.cRev. 159: 
 http://prettyos.svn.sourceforge.net/viewvc/prettyos?view=rev&revision=159
 Zwischenschritt bei ehci.c
 
- 
					
					
					
					
 Rev. 160: 
 http://prettyos.svn.sourceforge.net/viewvc/prettyos?view=rev&revision=160EHCI USB- und Port-Status ausgewertet 
 
- 
					
					
					
					
 Rev. 161: 
 http://prettyos.svn.sourceforge.net/viewvc/prettyos?view=rev&revision=161ehci.c Korrekturen 
 
- 
					
					
					
					
 Rev. 162: 
 http://prettyos.svn.sourceforge.net/viewvc/prettyos?view=rev&revision=162- Veränderungen ehci.c (hängt allerdings noch bei Einstecken von USB-Devices ??) 
 - util.c: memsetl (32-Bit-Werte)
 
- 
					
					
					
					
 Rev. 163: 
 http://prettyos.svn.sourceforge.net/viewvc/prettyos?view=rev&revision=163ehci.c Zwischenschritt Port enablen (VBox klappt (leider nicht sicher), real PC noch nicht) 
 
- 
					
					
					
					
 Rev. 164: 
 http://prettyos.svn.sourceforge.net/viewvc/prettyos?view=rev&revision=164timer.c: Hinweis von +gjm+ umgesetzt, damit Sun VirtualBox die richtige Zeit seit Start anzeigt. 
 
- 
					
					
					
					
 Rev. 165: 
 http://prettyos.svn.sourceforge.net/viewvc/prettyos?view=rev&revision=165ehci.c: PortStatus 1005h (EHCI-owned, PowerOn, Enabled, DeviceOnPort) 
 
- 
					
					
					
					
 Rev. 166: 
 http://prettyos.svn.sourceforge.net/viewvc/prettyos?view=rev&revision=166ehci.c 
 Folgendes wurde vor dem HC Init eingebaut:
 stoppen - warten - resetbit auf 1 setzen - warten bis resetbit 0 wird - weiter
 
- 
					
					
					
					
 Rev. 167: 
 http://prettyos.svn.sourceforge.net/viewvc/prettyos?view=rev&revision=167Port Changes werden nun korrekt behandelt.  
 (Die Interrupts sind noch lahm gelegt, wir pollen)Bitte heftig USB-Sticks und sonstige USB 2.0 Devices rein/raus.  
 
- 
					
					
					
					
 Rev. 168: 
 http://prettyos.svn.sourceforge.net/viewvc/prettyos?view=rev&revision=168ehci.c Korrekturen?? 
 
- 
					
					
					
					
 Rev. 169: 
 http://prettyos.svn.sourceforge.net/viewvc/prettyos?view=rev&revision=169ehci.c Ports: (zusätzlich: wait und set reset bit to 0) for(uint8_t j=1; j<=numPorts; j++) { pOpRegs->PORTSC[j] = (*((volatile uint32_t*)(opregs + 0x44 + 4*(j-1))) |= (1<<12)); // power on pOpRegs->PORTSC[j] = (*((volatile uint32_t*)(opregs + 0x44 + 4*(j-1))) &= ~(1<<2)); // set bit2 to 0 pOpRegs->PORTSC[j] = (*((volatile uint32_t*)(opregs + 0x44 + 4*(j-1))) |= (1<<8)); // set reset bit to 1 sleepMilliSeconds(50); // wait pOpRegs->PORTSC[j] = (*((volatile uint32_t*)(opregs + 0x44 + 4*(j-1))) &= ~(1<<8)); // set reset bit to 0 }
 
- 
					
					
					
					
 Erhard Henkes schrieb: for(uint8_t j=1; j<=numPorts; j++) { pOpRegs->PORTSC[j] = (*((volatile uint32_t*)(opregs + 0x44 + 4*(j-1))) |= (1<<12)); // power on pOpRegs->PORTSC[j] = (*((volatile uint32_t*)(opregs + 0x44 + 4*(j-1))) &= ~(1<<2)); // set bit2 to 0 pOpRegs->PORTSC[j] = (*((volatile uint32_t*)(opregs + 0x44 + 4*(j-1))) |= (1<<8)); // set reset bit to 1 sleepMilliSeconds(50); // wait pOpRegs->PORTSC[j] = (*((volatile uint32_t*)(opregs + 0x44 + 4*(j-1))) &= ~(1<<8)); // set reset bit to 0 }Kleiner Verbesserungsvorschlag um den Code "schöner" zu machen (ungetestet) for(uint8_t j=1; j<=numPorts; j++) { volatile uint32_t *p = (volatile uint32_t*)(opregs + 0x44 + 4*(j-1)) pOpRegs->PORTSC[j] = (*p |= (1<<12)); // power on pOpRegs->PORTSC[j] = (*p &= ~(1<<2)); // set bit2 to 0 * Schlechter Kommentar. Was macht dieses Bit? * pOpRegs->PORTSC[j] = (*p |= (1<<8)); // set reset bit to 1 sleepMilliSeconds(50); // wait pOpRegs->PORTSC[j] = (*p &= ~(1<<8)); // set reset bit to 0 }Spart das mehrfache und fehleranfällige Hinschreiben dieses langen Ausdrucks. Nachtrag: Um 1-Bit Werte lesbarer zu machen, könntest Du folgendes tun und zu den System-Headers hinzufügen... #define BIT0 (1<<1) #define BIT1 (1<<2) #define BIT2 (1<<3) /* usw */
 
- 
					
					
					
					
 Z schrieb: Nachtrag: Um 1-Bit Werte lesbarer zu machen, könntest Du folgendes tun und zu den System-Headers hinzufügen... #define BIT0 (1<<1) #define BIT1 (1<<2) #define BIT2 (1<<3) /* usw */Bit 0 ist aber (1<<0), wenn ich dich richtig verstehe, und Bit 1 wäre (1<<1) usw..  Erhard Henkes schrieb: for(uint8_t j=1; j<=numPorts; j++) { pOpRegs->PORTSC[j] = (*((volatile uint32_t*)(opregs + 0x44 + 4*(j-1))) |= (1<<12)); // power on pOpRegs->PORTSC[j] = (*((volatile uint32_t*)(opregs + 0x44 + 4*(j-1))) &= ~(1<<2)); // set bit2 to 0 pOpRegs->PORTSC[j] = (*((volatile uint32_t*)(opregs + 0x44 + 4*(j-1))) |= (1<<8)); // set reset bit to 1 sleepMilliSeconds(50); // wait pOpRegs->PORTSC[j] = (*((volatile uint32_t*)(opregs + 0x44 + 4*(j-1))) &= ~(1<<8)); // set reset bit to 0 }Sieht übrigens kaputt aus. Ich wage einfach mal zu bezweifeln, dass der erste Rootport nicht genommen werden darf, denn du fängst ja hier mit dem zweiten an, wie es aussieht...