Problem mit FAT16 und SD Karte!

OP #709106
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
Gast #709991
>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)
#710954
> ...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.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 18 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.