Sourcecode Fortschritt


  • Mod

    Test: 0.0.5.77 - Rev: 1743
    
    usb:
    
       xhci:
    	devmgr.elf load and execute                Einbinden usb-stick nicht OK, #PF: usb_getConfigDescriptor --> ... --> xhci_waitForTransfer
    	save screenshot -> floppy and usb-stick    n/a 
    
      ehci: 
    	devmgr.elf load and execute                OK
    	save screenshot -> floppy and usb-stick    OK
    
       uhci (test-PC): 
    	devmgr.elf load and execute                portchange OK, dev no response/stalled (kein Einbinden)        
    
      	save screenshot -> usb-stick               usb-stick: n/a
    
       ohci (VBox): 
    	devmgr.elf load and execute                usb-stick wird beim Andocken (VBox) von ohci nicht erkannt
    	save screenshot -> usb-stick               n/a
    
       ehci (VBox): 
    	devmgr.elf load and execute                OK
    	save screenshot -> floppy and usb-stick    OK
    
       ehci (Vbox):
    	webcam                                     OK	
    	save big files	                           OK	
    
    vbe:	
        1 - start graphical tests		           VBox: #PF (eip 152h), test-PC: #PF (addr 3400, eip 9051, user mode)  
    
    user:
        shell prüfen, neue shell erstellen             OK
        test.elf ausführen                             VBox: OK (Grafik, neue Konsole geht nicht)
    
    networking:
        browser.elf with prettyos.de, google.de ...    browser.elf geht, usability bei files, etc. unklar (verbessern!)
    

    Untersuchungen: Das Problem bei xhci ist offensichtlich ein Timing-Problem, denn beim Einbau von Haltepunkten (zur Analyse) wurde der usb-stick sauber eingehängt.


  • Mod

    0.0.5.78 - Rev: 1744

    - serial.h/c: code etwas transparenter gestaltet bezüglich baudrate und divisor. baudrate auf 115200 erhöht (divisor: 1)
    - serial log für periodic list mit iTD vereinfacht


  • Mod

    0.0.5.79 - Rev: 1745

    webcam: Weiterentwicklung der Übetragung mit ehci iTD chain auf Hardware
    - Einhängen des iTD chain heads an periodic list optimiert
    - Vorbereitung des Codes für Nutzung mehrerer iTD chains

    Anmerkung: Die Datenübertragung auf dem test-PC läuft deutlich schneller als mit VBox. Hierdurch werden die Datenpakete stark über die Buffer der iTD gestreut (geringe Nutzlast). Idee: Nutzung mehrer iTD chains.



  • Version 0.0.5.80:

    - EHCI: Korrekte Benutzung der Doorbell beim Entfernen von QHs aus der Queue
    - USB-Keyboard: Caps-Lock-Unterstützung; LEDs (Out-Report) implementiert
    - Video: float-YUV-Typ entfernt, YVID_t in YUV_t umbenannt, Zugriff auf uninitialisierte Variablen in showYUYV behoben (cppcheck-Fund)
    - USB-MSD: Wiederhole "test unit ready" häufiger und mit Wartezeit (behebt Probleme mit xHCI)
    - xHCI: Broken Free (und Folgefehler) bei SET_ADDRESS behoben
    - Events: Fehlerkorrektur bei Freigabe von Event-Queues
    - Paging: Fehlerkorrektur bei Einträgen in der Memory Map mit 0 Bytes oder mehr als 4 GiB


  • Mod

    0.0.5.81 - Rev: 1747

    webcam: ehci periodic list working with n chains with m iTD (später als fehlerhaft erkannt)

    TODO: Optimize periodic list transfer setup for VBox and Hardware


  • Mod

    0.0.5.82 - Rev: 1748

    webcam: Fehler bei der Bestimmung von last_iTD und current_iTD in den Modulen ehci.c und ehciQhqTD.c beseitigt.


  • Mod

    0.0.5.83 - Rev: 1749

    webcam: weitere Korrekturen

    Der test-PC leidet bei ehci ab und zu noch an "master abort" (Capabilities list und Fast Back-to-Back Transaction capable)


  • Mod

    0.0.5.84 - Rev: 1750

    webcam: iTD für ehci bei hardware um die 64-bit extended buffer pointer erweitert und padding von 92 auf 96 byte durchgeführt, damit das 32 byte alignment erfüllt bleibt.

    Nun spielt der ehci "auf blech" (test-PC) auch ohne "master abort" mit uns.

    Nun kann die Optimierung des periodic schedulers und die Adaption an die Fähigkeiten verschiedener webcams starten. 🙂


  • Mod

    0.0.5.85 - Rev: 1751

    webcam an periodic scheduler ehci: stop/go entfernt, code weiter optimiert.

    test-PC: erfolgreiche Tests bez. ehci/periodic scheduler

    Allerdings entlocken wir den webcams noch keine brauchbaren Ergebnisse.


  • Mod

    0.0.5.86 - Rev: 1752

    usb_video.h/c: Weiterentwicklung des Codes (z.B. probe/commit für StillImage)

    Der periodic scheduler von ehci läuft auf Hardware nun zuverlässig.


  • Mod

    0.0.5.87 - Rev: 1753

    Darstellung von Videodaten in VBox gelingt bereits zuverlässiger, allerdings noch mit vereinzelten user mode #PF, die die Darstellung jedoch nicht vereiteln.

    vidswtch.asm: GetVgaInfoBlock: mov ds, ax ergänzt
    vm86.c: vm86_executeSync: Zeitverzögerungen eingefügt zur Vermeidung von #PF bei eip: 152h (user mode)
    usb_video.c: usb_setupVideo: Darstellung von webcam-Daten direkt in PrettyOS (mittels vm86 und vbe)

    Problem bei test-PC: vbe-modes werden noch nicht erfasst (mode-Auflistung ist leer)



  • Version 0.0.5.88:

    - Scheduler: Endlosschleife in scheduler_unblockEvent() behoben
    - mutex_lock/unlock() mit task_switching = true/false abgesichert
    - Optimierung: list_alloc_elem() und list_append_elem() implementiert, um Allokationen bei Verwendung von list_t zu reduzieren
    - VBE: Nutze Standardmodi als Fallback, wenn ModeList-Pointer unbrauchbar
    - fsmanager: Crash beim Entfernen unbekannter Partitionen behoben, Speicherleck behoben
    - Installiere ATA nur, wenn HDDs aktiviert sind



  • Version 0.0.5.89:

    - Heap: Caching der ersten freien Region war fehlerhaft implementiert, sodass es unwirksam war
    - Heap: Verbesserter Log, freie Regionen angezeigt, Regionsnummern und firstFreeRegion (s.o.) angezeigt
    - Heap: Grenzprüfung bei placementMalloc() mit Alignment korrigiert
    - Speicherverbrauch von usb_setupVideo() durch frühzeitige Freigabe der Buffer deutlich reduziert


  • Mod

    0.0.5.90 - Rev: 1756

    task.h/c: Tasks erhalten einen Kommentar (analog heap region via malloc), damit man diese in der Task-Übersicht (strg+t) leichter zuordnen kann (unterstützt die didaktische Komponente von PrettyOS). Falls gegeben, wird der Konsolenname verwendet.

    Beispiel:

    current task: 0                                                                 
    
    --------------------------------------------------------------------------------
    pid  esp      pd       k_stack  access comment       thread                     
    --------------------------------------------------------------------------------
    
    running:                                                                        
    
    0    005FFE50 00639000 -------- kernel main         child-threads: 2 5 48       
    4    E003DE6C E0039000 E003E000 user   0:0:|PrettyOS|Shell.                     
    
    blocked:                                                                        
    
    2    E002978C 00639000 E0029860 kernel OHCI 1       parent task: 0              
    48   E0052C10 00639000 E0052DB0 kernel VBE          parent task: 0              
    5    E002C9C0 00639000 E002CA94 kernel EHCI Ports           parent task: 0      
    
    freetime:                                                                       
    
    1    E001E5B8 00639000 E001E600 kernel freetime
    

    usb_setupVideo() funktioniert noch bestens.


  • Mod

    0.0.5.91 - Rev: 1757

    usb_video.c: Korrekturen durchgeführt, z.B. Power- und Error-Request
    Nun klappt die Errorcode-Abfrage.



  • Versino 0.0.5.92:

    - paging_freeVirtMem() und paging_allocVirtAddr() implementiert
    - Diagnose-Verbesserungen:
    -- Formattierung der Ausgabe bei Strg+t verbessert
    -- Compilerfehler bei aktivierten _DIAGNOSIS_-Flags behoben
    -- kdebug() entfernt (nutzlos)


  • Mod

    0.0.5.93 - Rev: 1759

    usb_video.c: webcam-code weiter optimiert.

    VBox: Serieller Log: http://pastebin.com/KNSnvXcL


  • Mod

    0.0.5.94 - Rev: 1760

    usb_video.c: Fehler behoben, Übertragung optimiert.


  • Mod

    0.0.5.95 - Rev: 1761

    usb_video.c u. videoutils.c: weitere Fehler behoben


  • Mod

    0.0.5.96 - Rev: 1762

    usb_video.c: VideostreamError-Abfrage eingebaut

    Still Image mit 160 pixel Breite: http://www.henkessoft.de/Sonstiges/webcam_schwarz_160pixel.png


Anmelden zum Antworten