Forum: Mikrocontroller und Digitale Elektronik Flash File System selber schreiben


von Mario (Gast)


Lesenswert?

Hallo,

ich würde gern ein Flash File System mit FAT16 und FAT32 für 
Mikrocontroller selber schreiben. Hierzu würde ich zuerst einmal eine SD 
Karte implementieren. Später dann noch CF und Flash.

Kann jemand hierzu vielleicht Hilfestellung geben wie maan damit am 
besten startet? Welche Bücher, Artikel und Spezifikationen solle man 
lesen (wenn möglich mit Link)

Ich weis, dass es schon hunderte Implementierungen gibt, aber ich möchte 
es selber machen um ein tieferes Verständnis darüber zu bekommen.

Gruß Mario

von Teplotaxl X. (t3plot4x1)


Lesenswert?

Les mal den entsprechenden Artikel in der Wiki, da steht viel.

von Mario (Gast)


Lesenswert?

Hast du nen Link?

von Gast (Gast)


Lesenswert?

ist echt verdammt schwer selbst einmal nachzudenken, ne?
http://de.wikipedia.org/wiki/File_Allocation_Table

von jo (Gast)


Lesenswert?

Fang damit an, Sektoren zu lesen und zu schreiben. Das ist die 
Grundlage, für den Anfang schwer genug und immer gleich, egal welches 
Dateisystem.

von Hast du nen Link? (Gast)


Lesenswert?

>Fang damit an, Sektoren zu lesen und zu schreiben.
Hast du nen Link?

von Jojo S. (Gast)


Lesenswert?

'efsl' ist ein recht ausgereiftes Projekt auf Sourceforge -> 
http://sourceforge.net/projects/efsl/
Und hier in der Codesammlung auch mal suchen, die Idee ist nicht neu...

von Simon K. (simon) Benutzerseite


Lesenswert?

Beitrag "Custom made file system: "uFS""
Da hab ich sowas schon mal gemacht. Aber ist beta und nur ein Proof of 
Concept gewesen ;)

EDIT: Ich seh gerade, dass ich die Sachen nicht mehr auf meiner Homepage 
habe. Aber die letzte Version habe ich ja noch angehangen in dem Thread.

von Peter (Gast)


Lesenswert?

> ich würde gern ein Flash File System mit FAT16 und FAT32
Was mit Fat16/32 mit einen Flash File System zu tun?

Entweder man entwicklent ein eigenes Flash File System oder man Nutzt 
das Fat16/32 mit eigenem Code. Das Fat Dateisystem hat ja genau die 
Schwäche das ist nicht für Flash geeignet ist. Aber die Flash werden 
immer Schlauer und gleichen das Mittlerweile aus.

von Simon K. (simon) Benutzerseite


Lesenswert?

Peter wrote:
> Aber die Flash werden
> immer Schlauer und gleichen das Mittlerweile aus.

Das stimmt so nicht. Es kommt drauf an was mit "Flash" gemeint ist. Eine 
SD-Karte beispielsweise hat einen Controller, der das so genannte 
Wear-Leveling durchführt. Bei ganz einfachen Flash-Speicherchips ist idR 
aber kein Controller drin, der Wear-Leveling betreibt.

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Mario wrote:

> ich würde gern ein Flash File System mit FAT16 und FAT32 für
> Mikrocontroller selber schreiben. Hierzu würde ich zuerst einmal eine SD
> Karte implementieren. Später dann noch CF und Flash.
                                                ^^^^^
http://elinux.org/File_Systems

von Mario (Gast)


Lesenswert?

Hallo Zusammen,

OK, die Frage war vielleicht etwas falsch formuliert. Ich möchte ein FAT 
16/32 Filesystem für einen Mikrokontroller implementieren, dass zuerst 
mit einer SD Karte und irgendwann einmal noch CF, USB Stick und ggf. 
auch NAND Flash unterstützen soll. Die frage ist immer noch, wie man da 
am besten rangeht?

Gruß Mario

von O. D. (odbs)


Lesenswert?

Geht es dir darum, was zu lernen? Dann fang mit den Hardware-Sachen an 
finde raus, wie du Sektoren auf dem Medium schreiben und lesen kannst.

Wenn es um die Sache an sich geht, also einen µC mit einem größeren 
Speichermedium auszurüsten, dann gibt es schon viele gute, fertige 
Lösungen, auch "freeware", die sich in kommerziellen Projekten einsetzen 
lassen würde. Es lohnt sich nicht, da selbst das Rad neu zu erfinden.

von Martin (Gast)


Lesenswert?

Nachdem du Sektoren lesen und schreiben kannst schau dir die 
FAT-Spetzifikation an. Die gibt es bei Microsoft. Den Link findest du 
mit ein wenig suchen hier im Forum oder Google auch.
Suchbegriff : fatgen

von Peter (Gast)


Lesenswert?

> dass zuerst mit einer SD Karte und irgendwann
> einmal noch CF, USB Stick und ggf. auch NAND Flash unterstützen soll

Wenn du es richtig machst ist dem Dateisystem egal auf was er zugreift, 
das Dateisystem kennt nur sektoren, ob es nun ein CF oder SD Sektor ist, 
ist dem Dateisystem egal. Darum muss sich dann der "hardware treiber" 
kümmern und der hat nichts mit dem Dateisystem zu tun.

von Mario (Gast)


Lesenswert?

Hallo,

also wenn ich das richtig verstehe, dann sollte ich erst einmal 
versuchen Sektoren auf eine SD Karte zu lesen und zu schrieben. Danach 
dann die FAT Schicht darüber legen. Ist es einfacher eine SD oder eine 
MMC Karte zu lesen und zu schreiben?

Gruß Mario

von Peter (Gast)


Lesenswert?

Such die doch einfach mal die Beschreibung der Schnittstellen von SD 
oder MMC. Dann lies sie dir mal durch und entscheide selber mit welcher 
du Anfängst.

von Mario (Gast)


Lesenswert?

Bei SD ist das mit der Spezifikation ja nicht so ein Problem, aber die 
MMC ist nicht so einfach zu bekommen.

von fubu1000 (Gast)


Lesenswert?

Hi,
also meines Wissens ist die MMC und SD Spezifikation die selbe.

GRUSS

von video (Gast)


Lesenswert?

MMC kann nicht so schnell wie SD, gerade beim initialisieren. Ansonsten 
verwendet MMC sowieso keiner mehr, aber die Beschreibung paßt auch für 
SD.

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.