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