「イメージ全体/ファイル個別の圧縮機能」を利用することで 2MB のFlashメモリ上により多くのアプリケーションを組み入れることが可能です。(カーネル/ユーザランドのサイズ制限も参照して下さい。)
ただし圧縮を行った場合「プログラムの起動」が遅くなります。
Armadillo-Jは2種類の圧縮方法を利用できます。
1. ファイル個別圧縮
個々のプログラム(実行ファイル)をGZIP形式で個別に圧縮する方法です。 プログラムのコンパイル時に以下のようにオプション指定を行うと、圧縮されたプログラムが作成されます。
[PC ~/sample]$ export FLTFLAGS=-z
[PC ~/sample]$ arm-elf-gcc -Wl,-elf2flt -o sample sample.c
プログラム起動時は、圧縮されたプログラムを自動的に伸張してから実行します。
2.イメージ全体圧縮
作成された書き込みイメージ全体(image.bin)を GZIP 形式で圧縮する方法です。 ブートローダーが圧縮されてFlashメモリに書き込まれたイメージを伸張しながらRAMにコピーした後、uClinuxカーネルが起動します。
[PC ~/sample]$ wc -c image.bin
1835008 image.bin 圧縮前のサイズ
[PC ~/sample]$ gzip image.bin
[PC ~/sample]$ wc -c image.bin.gz
729522 image.bin.gz 圧縮後のサイズ