Wie erfolgt die Daten-I / O auf einem USB-Flash-Speicher?

406
user35704

Ich möchte wissen, wie die Daten-E / A auf Flash-Laufwerken erfolgt, die normalerweise EEPROMs sind. Ich dachte so, als ich ein C-Programm schrieb, das die Dateibehandlung beinhaltet. Bei einer normalen Festplatte würde dies dazu führen, dass der Dateizeiger zurückgegeben wird und Daten auf die Platte geschrieben oder gelesen werden, was durch einen Lese- / Schreib-KOPF erfolgen würde. In EEPROMs gibt es keinen Schreib- / Lesekopf, da er mit mnemonischen Befehlen arbeitet. Wie kommt es, dass das C-Dateibearbeitungsprogramm funktioniert, wenn ich es auf eine Datei auf einem Flash-Laufwerk anwende?

0

1 Antwort auf die Frage

2
Brian

Wenn Sie nicht über das Schreiben eines Gerätetreibers sprechen, ist die Dateibehandlung für ein Flash-Laufwerk die gleiche wie für eine Festplatte, da das Betriebssystem und das Dateisystem alle untergeordneten Details entfernt haben. Sie müssen sich nur um das Öffnen einer Datei kümmern und darin lesen oder schreiben.

Selbst bei einem niedrigen Pegel benötigt jedes Gerät im Allgemeinen eine Adresse und einige Bytes zum Schreiben (oder eine Adresse zum Lesen). Festplatten erledigen intern die Konvertierung von Adresse zu Zylinder, Spur, Sektor usw.

Grundsätzlich möchte ich auf den ECC-Code jedes Blocks zugreifen, in dem die Datei gespeichert ist, und ein zufälliges Bit darin umdrehen. Also wollte ich auf dieser Ebene darauf zugreifen. Im Falle einer Festplatte fand ich einige Boot-Speed-Tools wie Ureadahead FIEMAP ioctl, aber da Flash-Laufwerke elektronisch sind, wie wäre es dann hilfreich? user35704 vor 13 Jahren 0