Forum: Mikrocontroller und Digitale Elektronik JFFS2 für Mikrocontroller (On-Chip-Flash)


von Stefie (Gast)


Lesenswert?

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

von Jim M. (turboj)


Lesenswert?

> 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...

von Frank K. (fchk)


Lesenswert?

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

von Stefie (Gast)


Lesenswert?

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

von (prx) A. K. (prx)


Lesenswert?

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.

von ... (Gast)


Lesenswert?

Brauchst du ein Dateisystem, um Daten zu lesen und zu schreiben oder 
reicht lesen zu?

von Stefie (Gast)


Lesenswert?

Hallo zusammen,

für das schreiben und lesen!

Grüße
Stefie

von Svenska (Gast)


Lesenswert?

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.

von Stefie (Gast)


Lesenswert?

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

von kawa0815 (Gast)


Lesenswert?

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.

von ... (Gast)


Lesenswert?

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