Hallo zusammen, ist es möglich JFFS2 für On-Chip-Flash bei einem Mikrocontroller einzusetzen? Wie groß ist der Footprint? Habe leider keine Erfahrungen mit Linux! Gruß Stefie
> Habe leider keine Erfahrungen mit Linux Dann sammle die erstmal... (hust) > JFFS2 für On-Chip-Flash bei einem Mikrocontroller Klingt eher nicht überzeugend, es sei denn Dein "Micro" ist ein ARM-Multi-Chip- SOC. Bei "echten" Micro darfst Du den Flash i.d.R. auch nur 10000 mal überschreiben, deshalb würde ich für veränderliche Daten immer eine (µ)SD Karte benutzen. Schreibe lieber mal, was Du wirklich erreichen willst...
JFFS2 macht hier keinen Sinn. Das ist für Massenspeicher gedacht, wo man wahlfrei Sektoren lesen und (bei Flash begrenzt) schreiben muss. Das Flash in einem Mikrocontroller ist aber als Programmspeicher gedacht, der direkt im Adressraum des Prozessors liegt. Der Programmcode muss dort direkt ausführbar bereitliegen. Linux macht bei klassischen Mikrocontroller-Systemen, die vergleichsweise viel Flash und wenig RAM und dazu oft keinen externen Adress-/Datenbus haben, keinen Sinn. Dafür gibt es geeignetere Systeme. Linux im Embedded-Umfeld erfordern (a) einen Prozessor mit externem Speicherinterface, (b) relativ wenig Flash, ggf extern, (c) relativ viel RAM (4MB Minimum, besser so in der Richtung 32MB und mehr, was bei klassischen Mikrocontrollersystemen ungewöhnlich viel ist), und (d) eine MMU, wenn man nicht auf ucLinux beschränkt sein will. Eine MPU reicht nicht. fchk
Hallo zusammen, besten Dank für eure Antwort! @Jim:Ich habe einige Artikel über JFFS2 gelesen. Aber konnte keine Footprint-Informationen finden. @Frank: Ich habe gelesen, dass JFFS2 für NOR-Flash entwickelt wurde. Und Viele Mikrocontroller haben ein NOR-Flash.Ich will kein Linux-OS verwenden und wollte wissen ob jemandem schon mal JFFS2 ohne RTOS eingesetzt hat. P.S.: Ich suche nach einem Dateisystem für einen Mikrocontroller ohne RTOS.Und es muss auf dem On-Chip-Flash laufen. Grüße Stefie
Android verwendete früher im (NAND-) Flash das YAFFS. Es wurde dann abgelöst, weil der YAFFS-Code sich nicht gut mit den aufkommenden Multicore-Prozessoren vertrug.
Brauchst du ein Dateisystem, um Daten zu lesen und zu schreiben oder reicht lesen zu?
Hallo zusammen, für das schreiben und lesen! Grüße Stefie
Um wieviel Flash (JFFS2 ist was für 1..32 MB) geht es, wieviele Dateien welcher Größe sollen da rein, welche Metadaten sind wichtig und wie oft muss an den Dateien was geändert werden? Wenn du nur ein paar hundert KB Flash für Logdaten o.ä. nutzen willst, ist vermutlich ein handgestricktes, den Anforderungen angepasstes Dateisystem mit einer EEPROM-Emulation (vgl. STM32-Firmware-Lib) für das Wear-Levelling das sinnvollste.
Hi Svenska, es geht um 64Kbytes und die Dateien dürfen nicht größer als 1Kbytes sein. Wie kommst Du auf die 1...32 MB? Grüße Stefie
A. K. schrieb: > Android verwendete früher im (NAND-) Flash das YAFFS. Ja, aber nur für die System und Userspace-Partition. Der Bootloader und Kernel ist auch bei Android nicht im YAFFS. Zum Lesen/Schreiben einer YAFFS(Partition) muss der Kernel die YAFFS- Treiber eincompiliert haben. Der Bootloader läd den Kernel und erst nachdem dieser gestartet ist, ist ein Zugriff auf die YAFFS- Partitionen möglich. Auch bei UBIFS (weit schneller als YAFFS) erfolgt der r/w Zugriff erst durch den Kernel.
Es macht keinen Sinn für 64kb Flash ein Dateisystem wie JFFS2 zu verwenden. Da ist dein Flash allein schon mit den Verwaltungsinformationen des Dateisystems komplett gefüllt. JFFS2 ist für größeres gedacht. Was genau ist deine Aufgabe? Gehts um eine Hausaufgabe? Wear leveling etc. brauchst du nicht. Bei deinem Kenntnisstand solltest du es erstmal ganz einfach versuchen. Teile die 64kb in 64 Teile zu 1kb Größe. Damit hast du Platz für 64 Dateien mit max. 1kb Größe. Du musst irgendwo noch speichern, wie die Datei heißt und ob der Speicherplatz belegt ist und mit wieviel Bytes.
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.