www.mikrocontroller.net

Forum: PC Hard- und Software SD Karte & FAT


Autor: Marco H. (hmarco)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Marco H. (hmarco)
Datum:

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

Sorry!

Autor: oszi40 (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: MeinerEiner (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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)

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Roland Praml (Gast)
Datum:

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

Gruß
Roland

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.