Hallo Leute, ich habe mir einen 8GBit NAND Flash von Mircon (MT29F8G08AAA) geholt und an das PMP (Parallelinterface) meines PIC32 gehängt. Mircochip bietet auch einen Treiber an, mit dem man auf den Flash schreiben, lesen und einen Block löschen kann. Dabei ist ein Block 256kByte, eine Seite 4kByte. Löschen ist nur blockweise möglich. Das Schreiben Lesen Löschen funktioniert auch soweit, habe das mit einem Logicanalyzer nachvollzogen. Jetzt zu meinem eigentlichen Problem. Ich würde den Flash gerne mit meinem FAT Dateisystem nutzen, und da ist ja bekanntlich alles auf 512Byte großen Sektoren aufgebaut. Die meisten Dateisystem für Microcontroller lesen und schreiben immer nur einen Sektor von dem Datenträger, so auch das von mir wendendete Dateisystem. Das Datenblatt das NAND Flash sagt nun folgendes bezüglich Schreiben: Micron NAND Flash devices are inherently page-programmed devices. Pages must be programmed consecutively within a block, the from the least significant page address to the most significant page address (that is, 0, 1, 2, …63). Random page address programming is prohibited. Micron SLC NAND Flash devices support partial-page programming operations. This means that any single bit can only be programmed one time before an erase is required; however, the page can be partitioned such that a maximum of four programming operations are allowed before an erase is required. Das bedeutet doch, dass ich immer 256kByte Blöcke (64 Blöcke x Pagesize) im RAM cachen müsste und die dann auf den Controller schreiben, sogar nur dann, wenn ich nur einen Sector verändern möchte. Sehe ich das richtig? Leider hat mein Controller nur 128kB RAM... Kennst sich da jemand mit aus oder hat sowas schon mal implementiert? Gruß Stampede
Du brauchst einen Umsetzungslayer, der FAT-Cluster auf Flash-Pages mappt. Damit umgehst Du das Problem, dass Du nur ganze Blöcke löschen kannst und dass die FAT sehr oft geändert wird und die diese Blöcke daher sehr oft löschen müßtest, was (a) langsam und (b) fürs Flash nicht gut ist. Du hast richtig erkannt, dass FAT nicht das passende Filesystem für Flash ist. Jetzt solltest Du auch tunlichst die Konsequenzen daraus ziehen. fchk
YAFFS JFFS2 sind so Flash File Systeme, die auf Wear Leveling (u.A.) Rücksicht nehmen.
Hallo, danke für die Antworten. Ich schaue mir das YAFFS mal genauer an, könnte für meine Anforderung passen. Die von Mircon angebotene Firmware ist ja leider kostenpflichtig, also keine wirkliche Alternative. Gruß Stampede
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.