FAT auf eigener Hardware
-
@Bashar, ich programmiere direkt auf dem Mikrokontroller. ein Betriebssystem in dem sinne gibt es eigentlich nicht
Achso, ich hatte es so verstanden, dass du das Gerät an den PC anschließen und darauf "rumsurfen" willst, etwa wie ein USB-Stick oder eine Digitalkamera.
Ich würde trotzdem nochmal überlegen, ob du dich nicht verrannt hast: Wenn das Dateisystem nur intern angesprochen wird ... muss es dann unbedingt fopen() usw. sein? Was sprich dagegen, eigene, aber ähnliche Funktionen zu benutzen? Und zweitens: Warum FAT, oder anders, wie genau willst du dich an die FAT-Spezifikation halten? Du hast theoretisch komplette Freiheit ... oder?
-
Theoretisch ist das richtig, jedoch wird die Karte an einem PC in einem Standard-Kartenleser ausgelesen, wenn die Messungen abgeschlossen sind. Daher muss ich mich an die FAT halten. Die Medien sind im übrigen schon vom Hersteller mit FAT formatiert, wenn also die 25ct dann hat die der Hersteller gezahlt.
-
Ah OK
Hast du schonmal gesucht, obs sowas vielleicht schon fertig gibt? Eventuell kann man sich auch Anregungen von Linux oder FreeDOS o.ä. holen. Ich denke, ein FAT zu implementieren, ist in erster Linie Arbeit (viel Arbeit), aber ansonsten relativ straight-forward ...
-
Hab mich in der tat schon mal bei Linux umgesehen, aber nicht gerade den großen durchblick erlangt, bei der riesen auswahl an Sourcecodes. Ausserdem stehen mir nur rund 2kbyte RAM und 32k Flash zur verfügung, was nicht gerade viel ist und mich vom übernehmen anderer Codes mit grosser Funktionalität abstand nehmen lässt. Ausserdem lerne ich betimmt mehr, wenn ich es selbst mal versuche. Nur einen anfang zu finden ist schwer, da ich nicht weis, wo ich anfangen soll ?
-
Bei LINUX sourcecodes wäre vor allem das FAT Modul von Interesse das ist eine einzige C datei, also relativ überschaubar. Du brauchst nur eine beliebige LINUX Distribution und im src verzeichnis irgentwo unter drivers/filesystems müsste das FAT Modul im Quelltext sein (hab grad Windoze gebootet sonst könnt ich dirs schicken).
Dann noch viel Glück.
MFG ChockoCookie
-
@ChockoCookie: Hab bei meinem Linux (SUSE 8.2) mal in den SRC's nachgesehen, aber leider nicht herausgefunden, welche Datei du genau meintest. Weis ja net, vielleicht bin ich auch nur blind ? Könntest du mir das von dir angesprochene FAT-Modul bitte bei Zeiten mal zusenden?
MfG Volker
-
OK ich sags gleich mal vorweg: es ist schlimmer. präzisiert gesagt ist es nicht nur eine C-Datei, sondern mehrere. das verzeichnis ist übrigens nicht drivers, sondern fs. war wohl beides mein fehler, sorry. wenn du willst kann ich dir die Dateien von meiner Red Hat Distro schicken. Musst mir nur deine E-mail oä geben. Sonst findest es viell jetz eh auf deiner SuSe Version. Tip: schau mal mit lsmod, welche module geladen sind, wenn du auf ein fat system zugreifst, von denen suchst du dann die sourcen.
MFG Chocko Cookie
-
Danke ChockoCookie, letzterer Tipp war echt gut. Wegen den Fehlern bin ich net böse, weiss ja selbst, dass die Distributionen alle etwas unteschiedlich sind. Bei mir sind es, soweit ich es jetzt überschauen kann, 8 Dateien mit Source-Code. Hab jetzt einfach mal die Multimediakarte als SCSI-Drive gemountet und schon war das FAT-Modul geladen. Nach einem kurezen blick in die Source-Codes muss ich nun sagen, das sie in sachen Dokumentation nicht gerade das "non plus ultra" sind. Gerade mal 3-4 Zeilen Doku zu beginn und so alle 30-40 Code-Zeilen mal ein kurzer hinweis. Würde mich mal interessieren, ob der, der den Code geschrieben hat heute noch was damit anfangen kann
. Nja, werd mal sehn, ob ich damit was anfangen kann. Werde mich die Tage mal wieder melden, wenn ich mehr weiss.
Nochmals danke.
MfG Volker
-
hi
beim 2.4.18 kernel sind es nur 2 files(usr/src/linux/fs/msdos)
hab leider keine ahnung ob es das ist was du suchst, aber mit knapp 16KB ist es noch recht überschaubar
-
@VW-elektron: Wenn du kein OS hast, kannst du nicht direkt einen Treiber schreiben. Dann musst du die fopen, etc-Funktionen in einem eigenen Modul realisieren und dann dieses Modul deinem Projekt hinzufügen...
Schau auch mal bei der LIB-C deines Compiler-Packets nach, ob fopen bereits implementiert ist und ob du dich da irgendwie dazwischen hängen kannst (ich vermute nicht)...
-junix