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
Les mal den entsprechenden Artikel in der Wiki, da steht viel.
ist echt verdammt schwer selbst einmal nachzudenken, ne? http://de.wikipedia.org/wiki/File_Allocation_Table
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.
>Fang damit an, Sektoren zu lesen und zu schreiben.
Hast du nen Link?
'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...
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.
> 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.
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.
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
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
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.
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
> 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.
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
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.
Bei SD ist das mit der Spezifikation ja nicht so ein Problem, aber die MMC ist nicht so einfach zu bekommen.
Hi, also meines Wissens ist die MMC und SD Spezifikation die selbe. GRUSS
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.