Hallo,
eine kurze Frage an euch.
Fast alle SD-Karten-Projekte, die ich gefunden habe, basieren auf einem
Beschreiben der Sektoren/Blöcke über SPI -> also ganz normal.
Wenn man das so macht, ohne ein Dateisystem (z.B. FAT16) zu erzeugen,
kann man dann den Inhalt der Karte irgendwie am PC auslesen ? Ich meine
erkennt Windows den Inhalt der Karte ?
Gibt es dafür irgendwelche Programme zum Auslesen ?
Ich frage nur deshalb, weil ich es für ein Projekt brauche.
Wenn das nähmlich nicht geht, dann müsste ich die SD-Karte erstmal FAT16
formtieren, um direkt Dateien erzeugen zu können. Windows dürfte diese
dann problemlos erkennen, oder ?
Das wäre ein erheblich höherer Aufwand, als ohne Dateisystem.
MfG
Thomas
Es gibt da so Leute, welche FAT auf nem Atmel implementiert haben, z.
B.:
* http://www.robs-projects.com/filelib.html
Damit kannst du dann SD-Karten so beschreiben, dass du das ganze auf nem
PC auch wieder wie gewohnt auslesen kannst. Habs aber selber noch nie
ausprobiert.
Kopieren über die Devicedatei also
cp /dev/usbdevice dateiname
So sichert man ja auch images von Festplatten und DVDs. Ist unabhängig
vom Dateisystem.
Eventuell gehts auch mittels dd.
Hallo,
ich kann meine SD-Karte mit dem µC auslesen und beschreiben.
Wenn ich aber nun den Inhalt an einem Windows Rechner auslesen will,
dann kommt immer eine Meldung, dass das Dateisystem unbekannt ist und
das ich den Datenträger formatieren soll.
Wie habt Ihr das gemeint mit dem Hexeditor ?
Oder soll ich die SD-Karte erst in Windows formatieren ?
Danke !
Thomas wrote:
> Oder soll ich die SD-Karte erst in Windows formatieren ?NEIN, dann macht Windoof sie ja platt.
Unter Windoof ist das absolute Kacke, weil Windoof unbedingt alles
selbst in die Hand nimmt. Sprich: kein Dateisystem --> "kaputt" -->
neuformatieren.
Wenn du Zugriff auf ne Linuxkiste hast, mach
und fertig. Geht auch mit nem bootbaren Linux (Knoppix und Konsorten).
Für Windoof gabs mal RAWRITE, damals wars nur für Disketten, obs sich
geändert hat, weiß ich nicht. Les selbst:
http://www.fdos.org/ripcord/rawrite/
http://mh-nexus.de/hxd/
HxD ist ein Hexeditor und ein Diskeditor. Mit dem geht das. Du kannst
Laufwerke im Rohformat öffnen, ohne dass das Dateisystem eine Rolle
spielt.
Man kann unter Windows aber auch direkt drauf zugreifen. Genau weiss ich
nicht mehr, wie es ging ab so ähnlich:
Um in C aus einer Datei zu lesen gibt es ja die fopen()... und zum lesen
eine andere Funktion. Ein Zeiger zeigt dabei auf die aktuelle Stelle in
der Datei. Und wenn man diesen Zeiger/Handle auf 0 setzt, dann liesst
man direkt das erste Byte des Laufwerkes.
rotzfrech wrote:
> Um in C aus einer Datei zu lesen gibt es ja die fopen()... und zum lesen> eine andere Funktion. Ein Zeiger zeigt dabei auf die aktuelle Stelle in> der Datei. Und wenn man diesen Zeiger/Handle auf 0 setzt, dann liesst> man direkt das erste Byte des Laufwerkes.
Was das Handle angeht: Falsch, "0" ist NULL und wird von fopen()
zurückgeliefert, wenn was schiefgeht (Fehler).
Was den "Zeiger" angeht: Das is kein Zeiger, sondern einfach eine ganze
Zahl. "0" bedeutet: Erstes Zeichen der Datei.
Unter Linux kann man ohne Weiteres mit "fopen" die Gerätedatei aufmachen
und Rohdaten lesen -- kein Thema. Nur Windows hat nunmal keine
Geräte-*Dateien*.
Hallo Forum,
weiß zufällig jemand, ob man einen einfachen CardReader "schlachten"
kann, um daraus den MMC/SD-Karten Slot an einem AVR über SPI zu
betreiben?
Die Slots kosten neu bei Reichelt zwischen 8€ und 14€. Einfache
CardReader bekommt man teilweise billiger...
Danke.
Hallo,
Winhex funktioniert top !
Ich kann ohne Dateisystem die Werte auslesen !
PS:
Im Datenblatt eines SD-Card Connectors steht keine Pinbelegung, da jede
SD-Karte die selbe hat, also sind auch alle Pads normiert, bis auf CARD
PRESENT und WRITE PROTECT. Diese werden je nach Hersteller
unterschiedlich ausgeführt.
Bei Schuricht gibt es exzellente SD-Card Connectors für ca. 1,50€ von 3M
!
> Nur Windows hat nunmal keine Geräte-*Dateien*.
Im Prinzip doch, denn mit der Win32-API-Funktion CreateFile kann man
sowohl physikalische als auch logische Laufwerke ansprechen; als
Dateiname ist dann entsprechend
\\.\PhysicalDrive0
bzw.
\\.\A:
zu verwenden. Schreib- und Lesezugriffe sollten dann nur noch auf
Sektorgrenzen (also in 512-Byte-Schritten) ausgerichtet durchgeführt
werden.
Ob die C-Standard-Funktion fopen diese "speziellen" Dateinamen
transparent an die darunterliegende Win32-API durchreicht, wird wohl vom
verwendeten Compiler abhängen.
Details sind in der Dokumentation enthalten
http://msdn.microsoft.com/en-us/library/aa363858(VS.85).aspx
Moin,
ich nutze um "low-level" also blockweise auf eine SD zuzugreifen das
Tool "DiskExplorer for Fat". Probiers doch mal aus!
http://www.runtime.org/
Gruss