mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik CF-Karte MBR


Autor: Ralf (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich bin zur Zeit daran, eine Compact Flash Karte mit einem Mega 128
auszulesen. Ich habe den Eindruck, dass meine Funktion zum Sector lesen
funktioniert, da ich zusammenhängende Sätze ausgelesen bekomme und die
Daten, die ich empfange auch wiederholt die gleichen sind. Ich betreibe
die Karte im memory mapped mode. Nun habe ich meine CF-Karte über einen
Kartenleser mit dem FAT32 Dateisystem formatiert und versuche nun die
Daten auszuwerten. Leider stimmen diese soweit ich das sehen kann nicht
mit der FAT32 Spec. überein.

Ich lese die folgenden Daten (LBA = 0) aus:
ú3ÀŽÐ¼|‹ôPPûü¿¹ò¥ê¾¾³€<€t€<uƒÆþËuïÍ‹‹L‹îƒÆþËt€<tô¾‹¬<t 
V»´Í^ëðëþ¿»|¸WÍ_s3ÀÍOuí¾£ëӾ¿þ}=UªuNjõê|Invalid
partition tableError loading operating systemMissing operating
system€Ðà àЖ

Hexadezimal sieht das ganze so aus:
FA 33 C0 8E D0 BC 00 7C 8B F4 50 07 50 1F FB FC BF 00 06 B9 00 01 F2 A5
EA 1D 06 00 00 BE BE 07 B3 04 80 3C 80 74 0E 80 3C 00 75 1C 83 C6 10 FE
CB 75 EF CD 18 8B 14 8B 4C 02 8B EE 83 C6 10 FE CB 74 1A 80 3C 00 74 F4
BE 8B 06 AC 3C 00 74 0B 56 BB 07 00 B4 0E CD 10 5E EB F0 EB FE BF 05 00
BB 00 7C B8 01 02 57 CD 13 5F 73 0C 33 C0 CD 13 4F 75 ED BE A3 06 EB D3
BE C2 06 BF FE 7D 81 3D 55 AA 75 C7 8B F5 EA 00 7C 00 00 49 6E 76 61 6C
69 64 20 70 61 72 74 69 74 69 6F 6E 20 74 61 62 6C 65 00 45 72 72 6F 72
20 6C 6F 61 64 69 6E 67 20 6F 70 65 72 61 74 69 6E 67 20 73 79 73 74 65
6D 00 4D 69 73 73 69 6E 67 20 6F 70 65 72 61 74 69 6E 67 20 73 79 73 74
65 6D 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 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 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 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 80 01 01 00 0B 07 D0 E0 20 00
00 00 E0 D0 03 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 96

Habe ich da ein Verständnisproblem, oder ist der MBR bei CF-Karten
anders aufgebaut?

Habe euch mal meinen Code angehängt.

Hoffe ihr könnt mir Helfen,

viele Grüße,

Ralf

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

wenn das eine Partitionstabelle sein soll dan fehlt da schonmal die
Kennung 0x55aa am Ende. Es ist also keine Partitionstabelle.

Deswegen würde ich mal tippen das die CF als SuperFloppy formatiert ist
und damit keine Partitionstabelle sondern der BootSektor der
Partition.

Matthias

Autor: Ralf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

danke für deine Hilfe! Habe den Fehler denke ich gefunden. Ich habe
einfach zu wenig an den PC gesendet. Das mit der Endekennung hatte mich
auch stutzig gemacht. Die Karte sollte richtig formatiert sein, dass
zeigt Windows zumindest an. Habe die Karte auch nochmal neu formatiert
und darauf geachtet, dass FAT32 eingestellt war.

Kann es denn sein , dass Windows bei der Formatierung diese Strings
einfügt?

'partition tableError loading operating systemMissing operating
system'

Logisch kommmt es mir ja eigentlich schon vor, da ja kein
Betriebssystem drauf ist und die CF-Karte nicht partitioniert ist, ich
habe es aber nicht in der Spec gefunden.

Viele Grüße,

Ralf

Autor: Florian Pfanner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das stimmt schon so. Der erste teil wäre der BOOT-Block der Partition.
d.h. Das BIOS lädt dieses Programm und führt es dann aus. Dieses
Programm schaut dann die Partitionstabelle an und bootet dann. Wenn
aber keine Partitionstabelle vorhanden ist, wird der Fehlerstring
ausgegeben. Schau mal unter http://www.master-boot-record.de/ dort ist
das ganze ein bischen erklärt.

Gruß, Florian

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.