Hallo, ich habe ein CF-Karte bzw. eine SD-Karte FAT32 (oder FAT16) formatiert und nur eine Datei darauf. Meine Frage: Wie bekomme ich die Startadresse dieser Datei mit einem µC heraus, ohne dass ich FAT vollständig implementiere? (Klar mit einem HEX-Editor ist das recht simple - aber ich möchte es mit einem µC lösen...) Oder: Ist es unter Windows möglich, eine Karte "unformatiert" zu lesen und zu beschreiben? Also nur RAW-Daten? (Ohne Verwendung eines Hex-Editors). Gibt es Beispielcode für C++ beispielsweise um auf eine Karte "direkt" zugreifen zu können? Hintergrund: Ich möchte ein eigenes Filesystem implementieren. Gruß Michi
Die FAT ist nicht notwendig um die Startadresse der Datei zu bestimmen solange sich diese im Root Dir befindet. Du must dazu den/die Root Dir Sektoren einlesen und den Dateieintrag anhand des Dateinamens suchen, dieser enthält dann auch den Startpunkt der Datei. Aber: Du wirst um die FAT nicht drum kommen wenn die Datei länger als ein Sektor ist, und wenn die Root Dir länger als ein Sektor ist. Schau Dir diesen Code an http://www.codeproject.com/file/Translation.asp ich habe den als Basis benutzt, um den First Sektor aller Dateien auf einer SD Card zu bestimmen die mit FAT32 formatiert ist, um daraus eine Playlist zu erstellen. Vorteil ist, Du brauchst Dich nicht um das Directory Handling zu kümmern, da Du schon weist wo die Datei beginnt, ein FAT Look-up ist aber trotzdem nötig. /Michael
Defragmentieren und alle Sektoren der Datei liegen hintereinander.
Vielen Dank für die Antworten. Ich habe mich jetzt für ein "eigenes Dateisystem" entschieden. Ich muss das ganze unter Windows machen, da Linux mein im Notebook integrierter SD-Card-Reader (noch) nicht erkennt. Bin gerade dabei in C++ ein Programm für Windows zu schreiben. Damit kann ich dann sämtliche Daten auswählen und es wird eine Art "Image" erstellt. Dieses kann ich dann auf die SD-Karte übertragen (auch mit dem C++-Programm) Die ersten Versuche waren ganz erfolgreich, jetzt muss ich nur noch den Code für den µC schreiben... Gruß Michi
> Ich muss das ganze unter Windows machen, da Linux mein im Notebook > integrierter SD-Card-Reader (noch) nicht erkennt. Kauf dir doch einen externen. Die werden einem doch für'n Appel und'n Ei nachgeworfen. Ist zwar nicht optimal, den statt des internen einzusetzen, aber dafür geht der RAW-Zugriff auf die Karte unter Linux schön einfach.
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.