Forum: Projekte & Code FAT Dateisystem


von FAT USER (Gast)


Lesenswert?

Hallo Leute,

ich bin auf der Suche nach einer C-Source für ein einfaches
FAT-Filesystem. Es sollte Lesen UND Schreiben möglich sein. Gut wären
die "alten" elementare DOS-Befehle wie z.B. dir, cd, md, del,
copy...

Bisher habe ich nur die SD-Card FAT Sourcen entdeckt, die leider nur
lesen können.

Suche so was ähnliches wie emFile, welches mir für meine
Hobby-Anwendungen einfach zu teuer ist.

Danke für eure Hilfe.

von Netbandit (Gast)


Lesenswert?

Warum machst du das nicht selbst?

Das ist ein richtig tolles Projekt! Man lernt Unmengen über den Aufbau
von Dateisystemen und Massenspeichern.
Und vor allem ist es ein Projekt wo man richtig merkt an welcher Stelle
es im Kopf "klick" macht und plötzlich alles ganz logisch ist :)

von FAT USER (Gast)


Lesenswert?

@Netbandit
>Warum machst du das nicht selbst?
>Das ist ein richtig tolles Projekt!

Da hast du schon recht, aber es ist sinnvoller erst einmal zu schauen,
ob es schon eine Lösung gibt, anstatt das Rad neu zu erfinden.

Für mich ist es für die Planung eines Projektes wichtig zu wissen, ob
es so was schon als Freeware gibt. Ansonsten hat es die Priorität
"Nice to have", und in der Tat kann ich mir dann überlegen, ob ich es
dann versuche "Selber" zu implementieren.

von Daniel B. (khani)


Lesenswert?

Hallo Leutle,

dazu kann ich auch mal melden. Ein FAT-Dateisystem ((12)/16/32) ist im
Moment bei mir ind er Mache. Es kann schon lesen und schreiben in allen
Ausprägungen (also auch neue Dateien/Verzeichnisse) erstellen.
Leider ist es im Moment im Redesign. Das heißt, die Architektur wird im
Moment von mir umgestellt. Daher kann ich es im Moment nicht sinnvoll
hier vorstellen. Sollte die Architektur dann mal stehen  (mit API nach
oben und definierter Schnittstelle nach unten), dann will ich es
vielleicht im Rahmen einer Projektseite vorstellen. Dann bekommt man
auch die Sourcen dazu. Das liegt aber noch in mindestens
Wochenentfernung, da ich nur abends und am Wochenende daran arbeite und
dann nur, wenn ich nach der Arbeit noch motiviert genug bin.

Als Tips kann ich zur Implementierung mal Folgendes sagen :
Erst mal eine Schicht mit Hardware-Routinen erstellen.
Dann mit dem Whitepaper von Microsoft versuchen, Schritt für Schritt
lesen und schreiben zu implementieren.

Praktisch kann es auch sein, wenn man die Hardwareschicht erst mal über
eine Schnittstelle seiner Wahl an einen PC anbindet - dann kann man auf
dem PC erst mal nach Lust und Laune die prinzipiellen Funktionalitäten
implementieren, ohne jedes Mal gleich auf den Speicher schielen zu
müssen. Schritt für Schritt wird dann alles auf die
Microcontrollerseite hinüber gebracht.

Ich persönlich habe außer dem Whitepaper, der ATA-Spec und einer
Kurzbeschreibung des MBR (Mast Boot Records) keine Hilfsmittel
verwendet. Das habe ich so gemacht, da ich eh meine Routinen alle
selber schreiben wollte. Man kann dabei wirklich viel lernen - das
fängt beim Lesen von Timing-Diagrammen an und hört bei der
Implementierung eines Handle-Filesystems auf.

MfG, Daniel.

von SuperUser (Gast)


Lesenswert?

>Warum machst du das nicht selbst?

>Das ist ein richtig tolles Projekt! Man lernt Unmengen über den
>Aufbau
>von Dateisystemen und Massenspeichern.

Das ist ja gerade das Schöne, dass wir hier source code sharen. Dann
muss nicht jeder alles selber schreiben.

Das ermöglicht dir, auch komplexe Ideen zu realisieren. Ansonsten
würden viele Projecte am Software-Aufwand scheitern.

Auf der anderen Seite hat der - der seinen Code zur Verfügung stellt -
auch Vorteile (neben Ruhm und Ehre). Manchmal werden Bug's gefunden
oder der Code wird weiterentwickelt auf andere Platformen etc.

Z.B. würde ich gerne einen Daten-Austausch mit SD/MMC Karte in mein
Hobby-Projekt integrieren, ersticke aber schon im Software-Aufwand für
all die anderen Funktionen. Über eine FAT (read/write) Lib. würde ich
mich daher z.B. sehr freuen.

von beta-frank (Gast)


Lesenswert?

auf www.holger-klabunde.de finden sich FAT Dateisysteme, auch
SD/MMC-Anbindung f. AVR. Lesen, schreiben, erstellen, löschen etc
funzt. Das einzige, was ich vermissen würde ist, das man innerhalb
einer Datei nichts überschreiben kann - nur ranhängen.

Gruß Frank

von Jens D. (Gast)


Lesenswert?

beta-frank
hast du das schon getestet??
Ich bin diese Woche auch darauf gestossen..
Gib mal etwas Feedback

Gruss

von pittbull (Gast)


Lesenswert?


von beta-frank (Gast)


Lesenswert?

@Jens D.

Auch erst kürzlich entdeckt aber noch nicht getestet... wollte ich
demnäxt machen... :-o

Gruß Frank

von Marcus (Gast)


Lesenswert?

gibts hier was neues? bin mich auch gerade am einlesen in das thema...

von Daniel aka Khani (Gast)


Lesenswert?

Hallo,

update : Man kann nun über das Handle-File-System 16 Dateien
gleichzeitig öffnen (wenn man genug Speicher für die Handles übrig
hat). Außerdem kann man im Moment noch Verzeichnisse wechseln und Daten
in 16bit-Breite über das Handle-System lesen.
Das alles mit vollem FAT16/32-Support und langen Dateinamen. Schreiben
kann das neue API noch nicht (das alte konnte, also kommt das
demnächst).

Ich habe gestern abend einen Lesetest gemacht und bin mit einer
handelsüblichen Festplatte und einem ATmega32 @ 11,592 MHz auf 375 kB/s
gekommen. Testsituation war das Lesen einer 6,0MB großen Datei in
gestoppten 16 Sekunden.

Mehr darüber in Bälde. Ich werde dann auch mal einen Artikel dazu
verfassen und die Sourcen so darstellen, dass man sie auch
weiterverwenden (und -geben kann). Ergo : Im Moment noch keine Sourcen
:-(.

MfG, Daniel.

von Kalle (Gast)


Lesenswert?

Nun, es sind nun zweieinhalb Jahre vergangen. Daniel, wie weit bist Du 
denn nun? Ich vermisse einen Link zu Deiner Projektseite....

Gruß
Kalle

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
Noch kein Account? Hier anmelden.