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Í_s3ÀÍOuí¾£ëӾ¿þ}=UªuÇõê|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
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
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
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
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.