Hallo,

momentan beschäftige ich mich mit der Schnittstelle µC - Computer. Hierzu möchte ich Daten auf einer SD-Karte vom µC lesen oder schreiben. Dazu möchte ich das Dateisystem FAT32 verwenden da er hier sehr viele Bibliotheken gibt. Aus Geschwindigkeitsgründen (1 MByte/s) schreibe/wandle ich die Funktionen ab. Das funktioniert soweit ohne Probleme. Doch das Verzeichnis macht mir Probleme.

Wenn ich im Verzeichnis neben dem Namen des SD-Karte Einträge schreibe (8 Großbuchstaben Namen + 3 Buchstaben Erweiterung, Archiv aktiviere, Schreibschutz deaktiviere, Erstellzeitpunkt schreibe, die Größe in Byte und die Position der Datei festlege) scheitere ich beim Öffnen der Dateien auf dem Rechner. Der Texteditor bringt die Meldung "Die Datei xxx kann nicht geöffnet werden", obwohl wenn ich mir die Eigenschaften per Rechtsklick angucke, Datum, Uhrzeit, Größe stimmen. Sporadisch erhalte ich von Windows einen Fehler bezüglich der SD-Karte. Beim Beheben von Windows wird die Datei aus dem Verzeichnis gelöscht, also nicht erkannt.
Um die Einträge möglichst fehlerarm zu gestalten verwende ich nur einfache Namen ohne das nutzen von VFAT oder ähnlichem.

Wenn ich die SD-Karte in HxD-Hexeditor öffne stimmt auch alles. Größe und Datenbereich stimmen überein. Ich erkenne, dass die Daten korrekt und mit der richtigen Größe geschrieben sind.
Sporadisch hat das ganze gestern Funktioniert, seid heute geht garnichts mehr.

Zum Vergleich habe ich mir Dateien manuell mit dem Texteditor erstellt und konnte keine Unterschiede im Verzeichnis und der Lage im Speicher ausmachen!
Für den Angabe des Startsektors der Datei habe ich den Offset berücksichtigt: Verzeichnis 8192, Anfang der Datei 8193 = +1 + 2 = 3

Gruß Erik


Anbei Auszüge aus dem Hex-Verzeichnis:

Code:
Sektor 8192 Verzeichnis (Sektorgröße 512 Byte)

4D 45 53 53 44 41 54 45 4E 20 20 08 00 00 00 00 00 00 00 00 00 00 C5 48 78 47 00 00 00 00 00 00     // MESSDATEN
4B 41 54 5A 45 20 20 20 54 58 54 20 10 3A CE 48 78 47 7A 47 00 00 CF 48 78 47 03 00 5A 02 00 00    // KATZE.TXT, Archiv, Zeit: xxxx, Startsektor: 3, Größe: 0x025A (602 Byte/Zeichen) 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
....
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00


Sektor 8193

44 61 73 20 69 73 74 20 65 69 6E 20 54 65 73 74 20 7A 75 6D 20 42 65 73 63 68 72 65 69 62 65 6E    // Das ist ein Test zum Beschreiben
...


Sektor 8194

...
65 72 73 63 68 72 69 65 62 65 6E 2C 20 62 7A 77 2E 20 67 65 6C F6 73 63 68 74 00 00 00 00 00 00   // erschrieben, bzw. gelöscht......