Segger compresse fortement les fichiers statiques pour économiser les mémoires des systèmes embarqués

emCompress, tel est le nom de l’outil de compression lancé par l’allemand Segger, éditeur d’outils de développement pour systèmes embarqués. Objectif : réduire l’espace mémoire nécessaire pour stocker sur la cible ...les fichiers des images de démarrage (boot files), les fichiers HTML ou autres données statiques (bitstreams pour FPGA coîés au moment du démarrage, images de firmware transférées vers la RAM d'instructions…)

Concrètement l’outil emCompress, sur le PC de développement, sélectionne automatiquement le meilleur algorithme de compression vis-à-vis de la mémoire disponible et réduit ainsi de manière drastique la taille nécessaire en mémoire flash pour stocker les fichiers, ainsi que le temps de tranfert vers la mémoire. Quant à l’occupation en mémoire ROM de l’outil emCompress (nécessaire à la décompression sur la cible), elle est très faible, entre 0,5 et 2,1 Ko, selon le codec utilisé. Selon Segger, emCompress est capable de réduire des données redondantes, telles que les pages HTML, à moins de 10% de leur taille initiale.

L’outil est livré avec de nombreux algorithmes de compression qui peuvent être paramétrés pour régler le fonctionnement de la phase de décompression en RAM (avec une analyse des ressources disponibles), opération qui peut être réalisée dans la mémoire ou en mode streaming. Le logiciel emCompress, écrit en code C Ansi, est livré pour fonctionner sous Windows et est indépendant du compilateur et de la cible matérielle utilisés.

Exemple de compression d’un fichier “bitstream” d’une programmation sur FPGA passant de 112 Ko à 30 voir 23 Ko, selon le codec de décompression utilisé