Forum: PC Hard- und Software SD Karte & FAT


von Marco H. (hmarco)


Lesenswert?

Hallo zusammen

Ich steuere eine SD Karte (<2 GB) über die SPI Schnittstelle meines 
MSP430 an - das funktioniert soweit auch wunderbar.

Nun möchte ich ein FAT16 darauf implementieren und verwende dazu 
MikroFat16 (http://www.mikro-control.de/).
- Die Initialisierung funktioniert
- Lesen/Schreiben funktioniert grundsätzlich.

ich habe nun das Problem, dass mir das Filesystem offenbar nicht an die 
richtigen Adressen schreibt, denn die erstellten Files sind nicht 
erkennbar unter Windows XP. Wenn ich mir das ganze mit dem Hex Editor 
anschaue sehe ich, dass die Daten geschrieben wurden! Einfach nicht an 
der richtigen Adresse.
Hat da jemand Erfahrungen gemacht?

Ich habe nun mal einfach bei der SD Karte angefangen und versuche zu 
verstehen, wo genau welche einzelnen Bereiche beginnen.
Durch zurückrechnen bin ich auf folgendes gekommen:

Datenbereich:        0x480000
Verzeichniseinträge: 0x03C000
FAT-Einträge:        0x01E800
Volume Boot Record:  0x00DA00
MBR:                 0x000000

Nun... der MBR ist korrekt. Aber wie kommt man auf den VBR? Wo steht 
diese Adresse?
Im MBR habe ich folgende Werte ausgelesen, mit welchen ich tatsächlich 
auf die anderen Bereiche komme:
Anzahl Reservierte Sektoren: 0x87
Anzahl Sektoren pro FAT: 0xEC00
Anzahl FAT kopien: 2

Vielen Dank im voraus
Marco

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

FAT16 kann maximal* 2 GiB adressieren (maximale Clustergröße 32 kiB).

Wenn Du versuchst, die Karte mit mehrern Partitionen zu betrieben, 
schlägt dies fehlt, weil Windows keine Wechseldatenträger mit mehreren 
Partitionen akzeptiert.


*) die Variante mit 64 kiB-Clustern ist nicht spezifikationskonform, 
auch wenn sie von den ernstgemeinten Windows-Versionen ausnahmsweise 
unterstützt wird

von Marco H. (hmarco)


Lesenswert?

da ist mir ein Fehler unterlaufen, meine SD Karte ist natürlich kleiner 
wie 2GB. Ich verwende 1 Partition mit 32k clustern.

Sorry!

von oszi40 (Gast)


Lesenswert?

Mach doch einfach mal eine Gegenprobe: erstelle mit Windows eine Fat 16 
und vergleiche oder lese diese dort wieder ein als Muster.

Es ist nicht ungewöhnlich, daß man Original-Dateisysteme auch mit 
Origial-SW erstellt. Dann hat man später wenigstes ein bekanntes 
Dateiformat wo möglichst viele allgemein verfügbare Tools anwendbar 
sind.

von MeinerEiner (Gast)


Lesenswert?

> weil Windows keine Wechseldatenträger mit mehreren Partitionen akzeptiert.

Wenn USB-Sticks auch als Wechseldatenträger gelten, dann scheint mein XP 
das nicht zu wissen....
(Das Teil hat 2 Partitionen)

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Dann tut das Dein USB-Stick nicht. Auch per USB angeschlossene 
Festplatten sind keine Wechseldatenträger. CF-Karten aber schon, selbst 
wenn diese in CF-zu-IDE-Adaptern stecken.

von Roland Praml (Gast)


Lesenswert?

Das hat damit zu tun, wie er formatiert wurde.
Stichwort zum googlen: Superfloppy

Gruß
Roland

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Nein, hat es nicht. Die Information, ob es sich um Wechseldatenträger 
handelt, oder nicht, hängt nicht vom Vorhandensein einer 
Partitionstabelle ab, sondern ist in den Device-Inquiry-Daten 
abgespeichert.

Mit dem Thema habe ich mich hier 
Beitrag "Re: SD Karte partitionieren/formatieren Windows" schon mal 
auseinandergesetzt.

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.