Hallo, ich programmiere jetzt schon einige Zeit an einer Software herum, mit der ich auf eine SD Karte mit FAT 16 eine Datei lesen/schreiben kann. Nur irgendwie fehlen mir mal richtig gute Unterlagen, zu diesem Thema, habe zwar einige gefunden, aber richtig zufrieden bin ich damit nicht. Wie funktioniert z.B die Sache mit den Directory Table, wenn ich Unterverzeichnisse habe? (Habe im Hexeditor gesehen, dass nach dem root Directory Table die Daten einer Testdatei kamen welche im root Verzeichnis liegt und darauf folgte dann wohl wieder ein Directory Table eines Unterverzeichnisses gefolgt vom Inhalt einer Datei die darin lag. Das hat mich irgendwie ganz verwirrt!) Wie komme ich zu diesen Adresse der Tables dieser Unterverzeichnisse? Wenn ich auf meiner Karte nur eine einzelne Datei im root Verzeichnis liegen habe, auf die ich schreiben und lesen will, wie sieht es dann aus mit den Dir. Table? Wenn ich jetzt nur eine Datei im root Verzeichnis habe und diese Suchen möchte, dann müßte es doch reichen, wenn ich mir die Adresse des Directory Tables des root Verzeichnisses nehme und dann diesen Table (32 Byte x 512 Einträge) nach dem Namen meiner Datei durchsuche, oder? Danke, Bernd
>ich programmiere jetzt schon einige Zeit an einer Software herum, mit >der ich auf eine SD Karte mit FAT 16 eine Datei lesen/schreiben kann. >Nur irgendwie fehlen mir mal richtig gute Unterlagen, zu diesem Thema, ... Einführung: Tischer, PC_intern 3.0; von Microsoft gibt es ein (Beta)Dokument zu FAT, welches FAT beschreibt und "häufige" Fehler anderer Implementierungen, ist auch hier im Forum zu finden >Wenn ich auf meiner Karte nur eine einzelne Datei im root Verzeichnis >liegen habe, auf die ich schreiben und lesen will, wie sieht es dann aus >mit den Dir. Table? steht in der Hauptverzeichnistabelle >Wenn ich jetzt nur eine Datei im root Verzeichnis habe und diese Suchen >möchte, dann müßte es doch reichen, wenn ich mir die Adresse des >Directory Tables des root Verzeichnisses nehme und dann diesen Table (32 >Byte x 512 Einträge) nach dem Namen meiner Datei durchsuche, oder? richtig; Anzahl der Einträge ist nicht korrekt, diese muss nicht 512 sein. (Steht im Bootsektor)
> ...mal richtig gute Unterlagen, zu diesem Thema Hier ist die offizielle Microsoft Spec: http://www.microsoft.com/whdc/system/platform/firmware/fatgen.mspx Das ist eine Seite die einen ganz guten Überblick gibt: http://www.pjrc.com/tech/8051/ide/fat32.html > Wenn ich auf meiner Karte nur eine einzelne Datei im root Verzeichnis > liegen habe, auf die ich schreiben und lesen will, wie sieht es dann aus > mit den Dir. Table? Dann hat Du einen Eintrag im Root-Dir-Table. Da steht drin, wie die Datei heisst, wie gross sie ist, wann sie erstellt wurde, ... und bei welchem Cluster der Dateiinhalt zu finden ist. > Wenn ich jetzt nur eine Datei im root Verzeichnis habe und diese Suchen > möchte, dann müßte es doch reichen, wenn ich mir die Adresse des > Directory Tables des root Verzeichnisses nehme und dann diesen Table (32 > Byte x 512 Einträge) nach dem Namen meiner Datei durchsuche, oder? Nein, Du hast bei 512 Bytes pro Sektor 16 Einträge a 32 bytes. Vorsicht allerdings, wenn Du Dich auf einem FAT32 Dateisystem befindest, dort ist das Root-Dir ein normales Verzeichnis, dessen Startcluster Du im BPB findest.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.