Forum: Mikrocontroller und Digitale Elektronik Loggen mit FatFS auf SD-Karte (Wie lange geht das gut) ?


von Werner (Gast)


Lesenswert?

Hallo,

ich wollte ein paar Daten auf SD-Karte loggen und die dann Periodisch zu 
einem PC schicken. Das Problem bei den Karten sind die Schreibzyklen. 
Aus diesem Grund wollte ich "fertig" übertragene Dateien einfach 
umbenennen um nicht immer auf den gleichen Bereich zu schreiben.

Nun, wie sieht es denn bei FatFs aus, wird da nicht immer eine Tabelle 
am Anfang der SD-Karte bei jedem schreiben und umbenennen neu 
geschrieben ? Gibt es auch Filesysteme die diese Probleme umgehen, die 
auch auf Embedded-Systemen, laufen ?


Grüße.

von Μαtthias W. (matthias) Benutzerseite


Lesenswert?

Hi

der Controller in der Karte sorgt dafür das die Schreibzyklen 
gleichmäßig über den gesamten Flash verteilt werden 
(http://de.wikipedia.org/wiki/Wear-Leveling#Wear-leveling) Brauchst dir 
also keine Gedanken machen.

Matthias

von Werner (Gast)


Lesenswert?

Meinst du mit SSD auch die SD-Karte ? Ich steck da leider nicht so tief 
in der Materie. Ich bin bisher davon ausgegangen das der Flash-Speicher 
auf einer SD-Karte über Sektoren angesprochen wird und aus diesem Grund 
immer auf den gleichen Sektor zugegriffen werden kann.

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

Die Sektoren die du über das SD-Interface siehst entsprechen nicht den 
physischen Blöcken im Flash. Der Controller sorgt durch eine variable 
Zuordnung dafür dass alles möglichst gleichmäßig abgenutzt wird. Wenn du 
deine Karte schonen willst kannst du nur darauf achten immer möglichst 
große Datenblöcke auf einmal zu schreiben, weil bei jedem Schreibvorgang 
immer ein ganzer Block (z.B. 64 kB) geschrieben werden muss.

Umbenennen würde sowieso nichts bringen, da sich dadurch nur der 
FAT-Eintrag ändert, nicht der Speicherort der Datei.

von MarioT (Gast)


Lesenswert?

Es muß mindestens ein kompletter Sektor mit mindestens 512 Byte 
geschrieben werden. Benennst Du die Datei um, müssen wieder 512 Byte 
geschrieben werden. Also alles was in dem Sektor steht wo der Dateinamen 
drinsteht mus neu geschrieben werden. So kenne ich es. Hoffe ich täusche 
mich nicht.

von Marius S. (lupin) Benutzerseite


Lesenswert?

wie soll denn das mit dem wear leveling funktionieren? die sd karte kann 
ja nicht einfach die physischen speicherblöcke nach belieben neu 
zuordnen (die Blöcke sind ja unter Umständen bereits beschrieben). Die 
SD Karte weiss ja nicht welcher Block genutzt wird und welcher frei ist.

von holger (Gast)


Lesenswert?

>wie soll denn das mit dem wear leveling funktionieren? die sd karte kann
>ja nicht einfach die physischen speicherblöcke nach belieben neu
>zuordnen

Oh doch, das kann sie.

von ... ... ... (Gast)


Lesenswert?


von Werner (Gast)


Lesenswert?

Danke Leute, die Infos helfen mir bei den Überlegungen weiter.

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.