Quetscht mehr in den Speicher: Em-Compress packt Dateien platzsparend und geht auch beim Dekomprimieren sparsam mit dem RAM um.

Quetscht mehr in den Speicher: Em-Compress packt Dateien platzsparend und geht auch beim Dekomprimieren sparsam mit dem RAM um.Segger

Em-Compress spart Speicherplatz, den statische Daten belegen. Beispiele für solche statische Daten sind FPGA-Images, die das Embedded-System während des Bootvorgangs kopiert, Firmware-Images, die vom Data Memory in den Instruction-RAM kopiert werden, Firmware-Updates oder Sprachpakete für verschiedene Sprachen oder HTML-Seiten.

Um den Speicherbedarf seiner Embedded-Anwendung zu verringern, komprimiert der Entwickler die statischen Dateien vorab auf seinem PC, verlinkt sie dann mit der Ziel-Applikation und speichert sie direkt im Filesystem des Targets. Das Target extrahiert die Daten dann wann immer notwendig; dafür braucht die Software nur wenig RAM. Auch der ROM-Bedarf von Em-Compress ist sehr gering, vor allem im Vergleich mit dem Speicherplatz, der dem Entwickler für neue Firmware-Features zur Verfügung steht. Die komprimierte Version liegt im Flash des Targets.

Die Komprimierungssoftware ist in der Lage, Daten mit vielen Redundanzen wie HTML-Seiten auf weniger als 10 % der ursprünglichen Größe zu reduzieren. Dazu nutzt sie einen Group-Modus, der die Komprimierungsraten bei kleinen Dateien wie etwa HTML-Dateien für Embedded-Webserver noch weiter erhöht. Segger beachtet bei der Lösung auch, dass auf dem Target für die Extrahierung nur wenig Speicher zur Verfügung steht und liefert Em-Compress daher mit zahlreichen Komprimierungsalgorithmen aus, die sich an den vorhandenen Speicher anpassen lassen. Das Extrahieren kann direkt in den Speicher schreiben oder im Streamed-Modus die Daten an andere Prozesse übergeben.

Em-Compress enthält die Komprimierungsapplikation für Windows und den Sourcecode für alle Dekompressions-Algorithmen. Die Software ist in ANSI-C geschrieben und nicht abhängig von bestimmten Compilern oder Hardware. Je nach unternehmerischen Bedürfnissen wird die Software durch eine Einmal-Zahlung lizensiert.