3.10.6 Freier Speicher

Eine interessante Frage ist, wieviel Speicherplatz zur Verfügung steht. Die Funktionen LibGetFlash und LibGetFreeBlock stellen diese Information bereit.

Dabei gilt zu beachten:

Diese Werte sind anscheinend auch der Ausgangspunkt für die eingebaute Kapazitätsanzeige des PV.

Gesamtgröße des Flash-RAM

Der von LibGetFlash gelieferte Wert ändert sich natürlich nicht. Er ist auch für die X- und die S-Modelle gleich.

ModellFlashLibGetFlash
PV-2502 MByte = 2097152 Byte1561600 Byte
PV-4504 MByte = 4194304 Byte3497984 Byte

Man sieht, daß rund ein Sechstel des Speichers fehlt. Wo ist der geblieben? Jedes Dateisystem benötigt zusätzlichen Speicherplatz für die Verwaltung. Hier liegen üblicherweise solche Informationen wie Name, Erstellungsdatum und Dateiattribute.

Der PV zweigt wahrscheinlich auch noch Speicher für einige andere Daten ab, die nicht als Datei organisiert sind, beispielsweise die Namen der Kategorien und Textfelder.

Freier Speicher

Wie man auch bei der Kapazitätsanzeige beobachten kann, nimmt im "normalen Betrieb" der freie Bereich ständig ab. Auch das Löschen von Einträgen ändert daran nichts. Erst der Aufruf der "Speicherverwaltung" (C-Funktion LibFileRemake) führt dazu, daß der Speicher umorganisiert und gelöschte Bereiche wirklich freigegeben werden.

Diese Form der Organisation trägt der Besonderheit des Flash-Speicher Rechnung: Speicher kann nur in größeren Speicherblöcken gelöscht werden. Damit ist es prinzipiell nicht sinnvoll, nach jedem Freigeben eines Datensatzes diesen Speicher echt löschen zu wollen. Es würde ja erfordern, daß die verbleibenden Datensätze im gleichen Block zunächst gerettet werden, ehe dann der Speicherblock gelöscht werden kann. Aber anscheinend wird auch nicht getestet, ob vielleicht ein ganzer Block freigegeben ist und gelöscht werden kann. Wahrscheinlich wäre auch hierfür der Aufwand zu groß.

Für Ergänzungen wenden Sie sich bitte an: Jürgen Wagner