-
        

Ergebnis 1 bis 3 von 3

Thema: FAT: Freien/Belegten Speicher auslesen

  1. #1
    Erfahrener Benutzer Robotik Einstein Avatar von Jaecko
    Registriert seit
    16.10.2006
    Ort
    Lkr. Rottal/Inn
    Alter
    35
    Beiträge
    1.987

    FAT: Freien/Belegten Speicher auslesen

    Anzeige

    Moin.

    Eine zwar einfache Frage, aber evtl komplizierte Antwort...

    Hab bereits ne SD-Karte mit FAT16 am laufen. Grundlage waren die Sources von U.Radig. Ich bin gerade dabei, das ganze noch erweitern, u.a. um den freien/belegten/gesamten Speicherplatz der SD-Karte zu ermitteln.

    Für den belegten wäre meine Idee, einfach durch alle Ordner durchwühlen, alle Verzeichniseinträge auslesen und die Grössenangaben zu addieren.
    Den Freien gibts dann als Differenz zum Gesamten (den müsste ja man irgendwo im CSD/CID finden?)

    Gibts für den belegten Speicher noch was einfacheres oder evtl sogar schon was fertiges?

    mfG
    S.C
    #ifndef MfG
    #define MfG

  2. #2
    Erfahrener Benutzer Roboter Experte Avatar von sternst
    Registriert seit
    07.07.2008
    Beiträge
    672
    Nun, ich kenne den FAT-Aufbau nicht im Detail, aber jedes Dateisystem beinhaltet auch immer eine relativ einfache Möglichkeit (z.B. eine Tabelle), um zu erkennen, welche Blöcke frei und welche belegt sind. Das ist ein integraler Bestandteil des Dateisystems, denn es wäre schon ziemlich ineffektiv, wenn man sich auf der Suche nach einem freien Block (z.B. für eine neue Datei) durch alle existierenden Dateien hangeln müsste.
    Diese Tabelle/Liste/WasAuchImmer musst du nur durchgehen und die jeweiligen Blöcke (frei/belegt) aufaddieren.
    MfG
    Stefan

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    21.07.2008
    Ort
    Moosburg
    Alter
    39
    Beiträge
    49
    Hi!

    Ich hab mich früher zu DOS-Zeiten auch mal mit dem Aufbau von FAT16 beschäftigt. So einfach, wie Du meinst, funktioniert das mit dem Druchtraversieren durch den Verzeichnisbaum leider nicht: Der Datenträger wird in 512 Byte große Blöcke unterteilt, in denen die Dateien gespeichert werden. Dabei wird aber ein Block nur für eine Datei verwendet. Das hat zur Folge, dass der Inhalt einer Datei mit 1 Byte bereits die vollen 512 Byte verbrät. Und das ist wie gesagt nur der Inhalt. Du brauchst auch noch Blöcke für das gesamte Management des Datenträgers (Bootsektor, FAT-Tabelle(n), defekte Sektoren, etc.). Auch die Verzeichnisse schlucken mehr, als man bei erster Betrachtung meinen will. Die müssen nämlich speichern, welche Dateien sie enthalten.

    Das Beste, um den freien und belegten Speicher zu prüfen ist es, die belegten Sektoren zu zählen (aus der FAT nehmen) und gegen die gesamte Anzahl zu rechnen.

    Persönlich halte ich FAT16 für ein doch ganz brauchbares Dateisystem für kleine Anwendungen, da es alles enthält, was man so braucht und relativ einfach in der Implementierung ist. Wenn man geschickt und mit ein bisschen Tricks programmiert, sollte das auch relativ sparsam im Umgang mit RAM sein.



    Viele Grüße

    Markus

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •