Sourcecode Fortschritt
- 
					
					
					
					
 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... 
 
- 
					
					
					
					
 Rev. 170: 
 http://prettyos.svn.sourceforge.net/viewvc/prettyos?view=rev&revision=170- video.c/os.h und userlib.c/.h: puts nimmt nun const char* statt char* (puts sollte den String nicht verändern und const char* ist besser für C++-Userprogs)
- user/user_test_cpp: Skeleton für C++-Userprogs
- user/user_tools/userlib.hpp: userlib-Header für C++
 mfg 
 Mr. X
 
- 
					
					
					
					
 Rev. 171: 
 http://prettyos.svn.sourceforge.net/viewvc/prettyos?view=rev&revision=171- Diverse Änderungen bezüglich const char* statt char*
- u.a. Anpassung der "Deklaration" der Syscalls (nicht sicher, ob richtig (compiliert aber); Wurde jedenfalls in 170 vergessen)
 Diese Revision nimmt keine Änderungen am OS vor, es handelt sich eher um "Schönheitskorrekturen"  mfg 
 Mr. X
 
- 
					
					
					
					
 Rev. 172: 
 http://prettyos.svn.sourceforge.net/viewvc/prettyos?view=rev&revision=172ehci.h/.c: Konstanten (define) eingebaut, Port-Nummerierung korrigiert 
 
- 
					
					
					
					
 XanClic schrieb: 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.. Oh  Ja, Du hast natürlich recht. Ja, Du hast natürlich recht.
 
- 
					
					
					
					
 Rev. 173: 
 http://prettyos.svn.sourceforge.net/viewvc/prettyos?view=rev&revision=173- ehci.c Zwischenschritt (INT-Handler implementiert, Problem: INT aktivieren: Absturz) 
 
- 
					
					
					
					
 Rev. 174: 
 http://prettyos.svn.sourceforge.net/viewvc/prettyos?view=rev&revision=174- ehci.c Zwischenschritt (Code vereinfacht: Strukturen direkt aufgesetzt. Thx to Tobiking) Real PC geht Falls sich dies bewährt, wird der überflüssige Code entfernt.  
 
- 
					
					
					
					
 Rev. 175 
 http://prettyos.svn.sourceforge.net/viewvc/prettyos?view=rev&revision=175- Kernel verkleinert (weniger Files in initrd.dat: nur noch "info.txt") 
 - ehci.c bereinigt
 - makefile bei initrd angepasstkernel.bin: 50.624 Bytes 
 siehe: http://www.c-plusplus.net/forum/viewtopic-var-t-is-260731-and-start-is-68.html (thx to +gjm+)
 
- 
					
					
					
					
 Rev. 176 
 http://prettyos.svn.sourceforge.net/viewvc/prettyos?view=rev&revision=176PortStatus wird bei Änderungen in Zeile 46-48 "Info-Bereich" ausgegeben. Test auf Real PC i.O., VBox hängt bei mir.