Sourcecode Fortschritt


  • Mod

    Rev. 466:

    Serials von usb msd und von der FAT16 oder FAT32 Partition werden angezeigt und gespeichert. Damit können wir eine Partition sicher erkennen.

    usb-stick    usb device ser. #    FAT ser. #     FAT..   
    ------------------------------------------------------
    512 MB                8B6A0861    F6 1C E9 20    16    
      1 GB                     110    ED 50 07 58    16
      4 GB            0D09297675C0    62 F9 2A 94    32
     16 GB                N014IM75    79 A2 6C 5C    32
    

    Hierbei verwende ich bei den usb device ser. # nur die letzten 12 Stellen, weil nur diese unterschiedlich sein müssen.

    Die serial vom 1GB stick erscheint verflixt kurz.
    Die serial vom 4GB stick ist sogar 16 Stellen lang, die vorderen 4 habe ich beim Speichern verworfen. Wir können aber auch erhöhen.



  • Revision 467:

    - Weiterbau an CDI
    - ...


  • Mod

    Herzlichen Dank an MrX für das Engagement bezüglich CDI! 👍

    Rev. 468:

    Zwischenschritt: Hidden Sectors durch Startsector der Partition ausgetauscht (dürfte momentan bei einer Partition - also bei sticks - zuverlässig funktionieren)

    Für Tests:

    1. Datei auf stick kopieren oder entsprechend auswählen/benennen
    2. Filename[8] incl. Extension[3] ohne Punkt(!), aber mit Spaces (Summe 11 character) hier eingeben:
      usb2_msd.c, zeile 660 ff.
    // testFAT("clean   bat"); // TEST FAT filesystem filename: "prettyOSbat" without dot and with spaces in name!!! 
    testFAT("makefile.xxx"); // TEST FAT filesystem filename: "prettyOSbat" without dot and with spaces in name!!! 
    // testFAT("makefile   "); // TEST FAT filesystem filename: "prettyOSbat" without dot and with spaces in name!!! 
    // test more!
    

    EDIT: testFAT("makefile.xxx"); ist leider verkehrt gewesen, sorry, richtig: "makefilexxx"


  • Mod

    Rev. 469:

    Korrekturen und Umbenennungen (z.B. von DISK nach PARTITION)

    usb2_msd.c, zeile 660:

    testFAT("clean   bat"); // TEST FAT filesystem filename: "prettyOSbat" without dot and with spaces in name!!!
    


  • Revision 470:

    - cdi_list: Bugfixes
    - list_GetElement gibt nun element_t* statt void* zurück.
    - video.c: Titelzeilen-Bug gefixt
    - fat.c: Code optimiert und (verlustfrei) gekürzt.
    - Sound wieder aktiviert


  • Mod

    Rev. 471:

    FAT32 Filestruktur wurde angepasst mit Cluster > 2^16

    Test bei MrX: mit vollem Stick bezüglich FAT32 OK. 🙂


  • Mod

    Rev. 472:

    Zwischenschritt: Umbauten in ehci und usb_msd, damit auch bereits eingesteckte/angeschlossene usb msd getestet werden. Als Suchfile wird makefile.xxx verwendet (ohne xxx taucht ein seltsames 'B' auf, das nicht aus dem Entry auf dem msd, sondern offensichtlich aus dem code stammt.


  • Mod

    Rev. 473:

    - user heap verlegt
    - uint16 gegen uint32 ausgetauscht in fat.h/c (wegen Zahlen > 2^16)
    - volume formatiert mit NTFS wird gemeldet

    Suchfile: makefile.xxx (im FAT-Filetest)



  • Revision 474:

    - Userlib:
        - Neue Funktionen: vprintf, snprintf, vsnprintf, strncat
        - Änderungen: strncpy aus util.c übernommen
        - Bug in gets gefixt (Neue Zeile wurde eingefügt, wenn \b an Pos 0|0 (Relativ vom Start) gedrückt wurde)
        - Kleinigkeiten (Typen, etc.)
    - Kernel:
        - cprintf basiert nun auf vprintf
        - Bug mit %v in printfs behoben (nun in allen kernel-printfs unterstützt)
        - ehci, usb, etc.: Umformatierungen, etc.
        - Kommentare gefixt
        - Sound reaktiviert
    

  • Mod

    Rev. 475:
    fat, data packages bei ehci: Ausgaben korrigiert, verringert zur besseren Übersicht. Kleine Fehler bei Filename-Handling korrigiert.

    Inzwischen existieren in os.h folgende Schalter:

    /// #define _DIAGNOSIS_     // Diagnosis-Output - activates prints to the screen about some details and memory use
    /// #define _USB_DIAGNOSIS_ // only as transition state during implementation of USB 2.0 transfers
    /// #define _FAT_DIAGNOSIS_ // only as transition state during implementation of FAT 16/32
    #define _SOUND_         // Sound-Messages  - deactivation makes sense during development, because of better boot-time
    

  • Mod

    Rev. 476:

    ttt.elf (tic tac toe) wird von usb-stick geladen und ausgeführt! 🙂

    Bei 3 aus 4 usb-sticks wurde ttt.elf sauber geladen/ausgeführt, beim 4GB stick (billiges "unsauberes" Device) knallen momentan vorne nur so die scsi-transfer-errors, ttt wird aber nach mehreren versuchen dennoch irgendwie geladen, allerdigs defekt ausgeführt, man sieht nur 0 und X beim setzen. Das liegt also an den usb-transfers.

    Meilenstein: Ausführen eines Programms von usb-stick! 👍 🙂

    MrX hat ebenfalls bestätigt, einzige Kritik: "Die Kreuzchen sind Gelb" 😃


  • Mod

    Rev. 477:

    %i wurde weitgehend gegen %u ausgetauscht beim Ausdruck.

    utoa in util.c eingefügt und in ...printf bei %u verwendet.

    Dies führt zum Beispiel zu verbesserten Ergebnissen bezüglich der Darstellung bei der Analyse der Partitionstabelle im MBR.


  • Mod

    Rev. 478:

    - testFAT(...) ausgelagert aus fat.c (soll möglichst allgemein bleiben)
    - scsi-abfolge test unit ready - test unit ready - request sense - (test unit ready - request sense)
    - utoa (von MrX überarbeitet) 👍
    - FAT testablauf etwas optimiert
    - die beiden QH (out/in) bei bulk-Transfer wieder getrennt


  • Mod

    Rev. 479: Zwischenschritt

    Bei Ausfall eines In-Transfers wird dieser einfach wiederholt.

    Bitte pqeq.elf und ttt.elf auf das usb msd (usb-Stick, usb-HDD) kopieren und testen.

    Zuerst wird pqeq.elf ausgeführt, anschließend springt das OS zurück zur Konsole Alt+M. Es geht aber weiter z.B. bei Alt+1, also dort, wo der letzte Aufruf statt fand. Dort kann man anschließend ttt.elf ausführen.

    usb2_msd.c, zeile 645 ff. (zum Experimentieren):

    testFAT("pqeq    elf"); 
    testFAT("ttt     elf");
    

    Bei meinem störrischen 4GB stick klappt das Laden, aber die Programme sind irgendwie nicht ok (kA was da los ist), ansonsten geht alles.


  • Mod

    Rev. 480:

    fat.c: fatRead und fatReadQueued wurden von FAT16 auf FAT32 erweitert.

    Nun sollten die Ladevorgänge auch bei FAT32 funktionieren. Eigentlich ist es verblüffend, dass das in einzelnen Fällen bisher schon gelang. 😉

    TODO: (fileFind)
    Fehler: root dir wird nur im ersten cluster durchsucht! Bei z.B. 8 sectors per cluster sind das nur die ersten 8 * 512/32 = 128 Einträge! Da sieht man deutlich wie wichtig Tests auch mit großen Mengen sind (Durchführung: 512 MB stick wurde auf FAT32 formatiert, Fonts von Windows aufgespielt, dann die zu suchenden Files, damit diese möglichst weit hinten sind).


  • Mod

    Rev. 481:

    Zwischenschritt: fileFind und CacheFileEntry umgebaut auf FAT16 u. 32
    funktioniert mit einem fileentry im ersten Cluster (cluster 2), also nicht über entry Nr. 128 (bei 8 sectors per cluster).

    Wie findet man die weiteren Cluster des rootdir?

    http://users.iafrica.com/c/cq/cquirke/fat.htm

    The root directory is fixed in length and always located at the start of the volume (after the FAT) in FAT12 and FAT16 volumes, but FAT32 treats the root directory as just another cluster chain in the data area. However, even in FAT32 volumes, the root directory will typically follow imediately after the two FATs.



  • Revision 482:

    - Task-Verkettung im Scheduler (mit ring_t) statt in Task-Struktur. (Nächster Schritt zum neuen Scheduler). scheduler_getNextTask tut nun auch, was sie verspricht.
    - Ring-Funktionen neugeschrieben.
    - Doppelter Code in task.c eliminiert. Threads und Tasks haben gemeinsame Basis. -> Besser wartbar, weniger Fehleranfällig, weniger Code
    - userlib/console.c/video.c/util.c: utoa-Vereinheitlichungen
    - Sound aktiviert
    - Diverse Kleinigkeiten


  • Mod

    Rev. 483:

    Zwischenschritt beim Aufbau des FAT-Moduls (FAT12,16,32).


  • Mod

    Rev. 484:

    Zwischenschritt für Experimente (man sieht hier auch schön, wenn der Code aus dem Datenbereich lesend in die FAT verzweigt. Dieses "Springen" bezüglich der Sektor-Nummer hatten wir bisher nicht verstanden 😉 ):
    Das richtige Entry wird bei FAT32 und Einträgen, die nicht im ersten Cluster der root dir sind, nun also auch in späteren Clustern (Finden via File Allocation Table) gefunden. Leider wird das Programm noch nicht geladen.

    Als Suche ist nach wie vor folgendes eingestellt:
    usb2_msd.c, zeile 645:

    testFAT("pqeq    elf"); 
    testFAT("ttt     elf");
    

  • Mod

    Rev. 485:

    Files lesen von FAT16 und FAT32 funktioniert. 🙂

    Suchstrings noch wie oben.


Anmelden zum Antworten