Forum: Compiler & IDEs Files im RAM anlegen


von USB_Help (Gast)


Lesenswert?

Hallo,

ich habe den USB key von ATMEL mit dem AT90USB1287. Auf diesem befinden 
sich auch 16MB Flash. Nun möchte ich das beiliegende Beispielprogramm so 
erweitern, dass der Key selbsständig Dateien anlegen und schreiben/lesen 
kann. Leider funktioniert fopen... nicht.
Kennt jemand eine einfache möglichkeit Daten in form von Files im Flash 
abzulegen?

Schon mal Danke im voraus

von Tilo (Gast)


Lesenswert?

Ich denke du stellst dir das Flash falsch vor.
Es gibt kein Dateisystem, ergo keine Dateien.
Du kannst dir selbst einen Bereich definieren, der als
"Datenträger" verwendet werden soll.
Je nach vorhaben kann das aber schnell sehr umfangreich werden.

Bis dann,

von USB_Help (Gast)


Lesenswert?

Hallo Tilo,

Sicher hast Du recht. Mir ist durchaus bewusst, das ein Flash kein 
Windows formatierter Datenträger ist, und das Files und Verzeichnisse in 
der gewohnten Art nicht existieren. Noch nicht. Eine CF oder MMC oder 
sonstige Speicherkarte kann auch als FAT formatierter Datenträger 
verwendet werden. Diese Bausteine sind nichts anderes als Flash 
Speicher. Das Problem das ich nun habe ist, das es keine vorgefertigten 
Routinen gibt, die mein am SPI Bus hängendes Flash nach den "Regeln" 
behandeln damit Windows so angelegte Dateien und Ordner erkennt. Als 
Hinweis: Das ATMEL AT90USBKEY Demokit hat eine erweiterbare Firmware 
drauf, in der das Handling zwischen Windows und dem Flash geregelt ist. 
Heißt Windows erkennt das Flash als Wechseldatenträger.
Zusammengefasst: Mir fehlt der Ansatz bzw. eine Erklärung wie ich Daten 
im Flash ablegen muss, damit diese von Windows als Datei/Ordnerstruktur 
erkannt werden.

Gruß

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

USB_Help wrote:

> Zusammengefasst: Mir fehlt der Ansatz bzw. eine Erklärung wie ich Daten
> im Flash ablegen muss, damit diese von Windows als Datei/Ordnerstruktur
> erkannt werden.

Es gibt massig freie FAT-Filesystem-Implementierungen für den AVR.
Wirf mal Gugel an.

von USB_Help (Gast)


Lesenswert?

Es gibt massig freie FAT-Filesystem-Implementierungen für den AVR.
Wirf mal Gugel an.

Toller Tipp!

Leider hab ich das Problem, dass ich verstehn will was ich da tue. Kann 
jemand eine Ordentliche Erklärung für das FAT16 System empfehlen?

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Gugel?  Warum erwartest du, dass dir das hier jemand haarklein nochmal
abtippt?

von Martin Thomas (Gast)


Lesenswert?

http://www.microsoft.com/whdc/system/platform/firmware/fatgen.mspx
Text erläutert auch FAT16. Würde das Rad (eine FATxy-Library) nicht neu 
erfinden, sondern etwas fertiges nehmen. Es gibt viel freien und 
käuflichen Code, der einem viele (richtig viele) Stunden Arbeit spart 
und auch mehr oder weniger gut von vielen Anwendern getestet wurde (vgl. 
Artikelsammlung für Links). Lieber versuchen zu verstehen, wie eine 
FAT-Library auf dem Controller auf das "Block-Device" zugreift und wie 
das bei einem MSB-Mass-Storage-Device funktioniert. Dies ordentlich zu 
synchronisieren scheint mir die eigentliche Aufgabe bei einem solch 
Projekt und nicht eine FAT-Library selbst.

von USB_Help (Gast)


Lesenswert?

Danke Martin für den Link. Das ist genau was ich gesucht habe.
Das Rad will ich natürlich nicht neu erfinden, aber ich brauche tiefe 
Einblicke in jedes Detail, um meine Applikation genau auf meine 
Bedürfnisse zuzuschneiden. Ich habe höchsten Respekt für die Leute, die 
ein sehr austauschbares Projekt geschrieben haben (z.B. 
www.holger-klabunde.de oder Roland Riegel und alle weiteren), jedoch 
liegt meine angestrebte Applikation weit unter einem solchen Umfang.

Danke für eure Hilfe.

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
Noch kein Account? Hier anmelden.