emCompress-Embed
組込みシステムのファームウェアイメージでは、システムのフラッシュメモリにすべてを適合させるために、少なくともROM要件を有することが重要です。しかし、一般的に、ファームウェアのアップグレードは、デバイスの存続期間に亘ってサイズが拡大するだけです。機能はソフトウェアに追加され、削除されません。最終的に新しいアップデートが利用可能なメモリの限界にぶつかることがあります。
ファームウェアイメージの重要な部分は、FPGA構成ビットストリーム、Webサーバーの静的コンテンツ、GUIに使用されるイメージ、フォント、および変換などの静的データです。
emComress-Embedを使用すると、このデータをファームウェアイメージに圧縮してメモリを節約できます。emCompress-Embedは、Webページをブラウザに送信するなどのためにデータが使用されると、データをRAMに解凍したり、出力先に直接送信したりします。
emCompress-Embedは、圧縮解除のためにターゲット側の小さなRAMで使用できます。圧縮解除中にデコンプレッサに使用可能なRAMの量が考慮され、適切な圧縮アルゴリズムが自動的に選択されます。
emCompress-Flex
システムに送信されるか、またはそのメモリに動的に格納されるデータのサイズは、システムの複雑さにも影響する可能性があります。
データを送信するために、通信チャネルおよびその帯域幅が、システムによってどのくらい速く受信されるかを決定する。フィールド内ファームウェアのアップグレードのための比較的小さなファームウェアイメージの送信でさえ、セルラーネットワーク接続を介して送信されるとかなり遅延する可能性がある。このような遅延を短く抑えるために、目標は可能な限り少量のデータを送信することです。
システムにダイナミックデータを格納するには、システムを設計する際に最大ストレージ使用量を把握し、内蔵または外付けフラッシュの必要サイズを決定する必要があります。動的データは、例えば、表示される画像や外部ソースから更新されるウェブサーバコンテンツなど、ユーザがシステム上に保存するファイルであり得る。フラッシュサイズの要件を小さく保つには、必要なだけ多くのデータを保存する必要があります。
送信または格納するデータは、通常、それ以上小さくすることはできません。ファームウェアイメージにはすべてが含まれる固定サイズがあります。
emCompress-Flexでは、これらのデータを送信と格納のために小さくし、必要に応じて展開することができます。emCompress-Flexは、送信または格納される前にデータを圧縮します。
システムでは、圧縮されたデータをメモリから読み出すか、または任意の利用可能なチャネルを通じて受信することができます。データは、emcompress-Flexによってメモリに解凍されるか、直接処理のためにユーザー定義関数に渡されます。圧縮されたファームウェアイメージは、イーサネット接続を介してemCompress-Flexが直接受け取って解凍するシステムに送られ、解凍されたチャンクをファームウェア更新機能に送ることができます。
emCompress-ToGo
最も一般的な圧縮アルゴリズムでは、圧縮と解凍に多くのRAMが必要です。これは、ギガバイトのメモリを搭載したコンピュータで問題ありません。しかし、組み込みシステムでは、数キロバイトのRAMしか使用できない場合があります。したがって、emCompress-FlexとemCompress-Embedのデコンプレッサの実装は、最小限のRAMで実行するように既に調整されています。
SEGGERは、RAM要件をさらに低く抑えるために、最小のマイクロシステムで動作するのに適した圧縮アルゴリズムを開発しました。小型マイクロコントローラAdvanced Super High(SMASH)コンプレッサー。SMASHは、スタック上のわずか数バイトでデータを圧縮解除できます。
emCompress-ToGoには、任意のシステムで圧縮を使用できるSMASHが含まれています。emCompress-ToGoとSMASHを使用すると、データをターゲット上で解凍できるだけでなく、コンプレッサーの音源も含まれています。
IoTセンサやデータロガーなどの動的データを生成または収集するシステムであれば、emCompress-ToGoによるデータ圧縮の利点があります。システムは、収集されたデータを保存するために必要なメモリが少なくて済み、Bluetooth 5 Long Range接続など、帯域幅の限られたデータをさらに送信できます。