開発にあたってのノウハウ
4. RAMサイズを小さくするには
4.1 RAMサイズの削減をプログラム的に検討する
alignによるRAM内の無駄な隙間をなくすことによって、効率よくRAMを使用することが可能です。
- 外部変数の隙間 -> varorder sort を利用
-varorder sort はコンパイラのオプション指定で、静的変数の配置方法を指定します。以下に例を示します。
(例)以下のように変数を定義した場合。
static int i;
static char k;
static int j;
static short m;
-varorder normal の変数配置
32bit(4Byte)
| i | |||
| k | * | * | * |
| j | |||
| m | * | * | |
-varorder sort の変数配置
32bit(4Byte)
| i | ||
| k | * | m |
| j | ||
合計16Byte(空き領域5Byte)
(*は、空き領域)
合計12Byte(空き領域1Byte)
(*は、空き領域)
よって、静的変数を無駄なく詰めるために、-varorder sortは積極的に使用することをお薦めします。
4.2 外部領域のチェック
無駄な外部変数、静的変数を確保していないかどうか、無駄な外部領域の確保が行われていないかチェックすることが有効です。(ただし、チェックツールはありません。)
外部変数である必要が無いのならば、ローカル変数に変えることによって、スタックの使用量は増えてしまいますが、プログラムトータルでのRAM消費量は減ります。
