オプションを変更した場合のメモリの使用状況を調べてみた。
1.何も変更せず配布されたものを解凍してプロジェクトに読み込んだだけでBuildした場合
Total program memory used (bytes): 0xab72 (43890) 67%
Total data memory used (bytes): 0x16c2 (5826) 71%
ということだが、それ以前にBUILD FAILEDだ。
2.optionフォルダ内のunicode.cをプロジェクトに登録してBUILDは出来るようにしたもの。
Total program memory used (bytes): 0xb9f4 (47604) 72%
Total data memory used (bytes): 0x16c2 (5826) 71%
BUILDの失敗はLong File Name用の設定に由来するらしいので、Long File Name だけで5%も増加ってことか。
3.Long File Name は止めてみる。
Total program memory used (bytes): 0x9cb1 (40113) 61%
Total data memory used (bytes): 0x14bc (5308) 64%
だいぶメモリ使用量が減るので、Long File Nameは使わないことにする。
使い道から考えても特に必要ないだろう。
4.さらに #define _USE_FIND 0 と #define _USE_MKFS 0 にしてみる。
Total program memory used (bytes): 0x88dd (35037) 53%
Total data memory used (bytes): 0x14bc (5308) 64%
これもそこそこ減るし、機能的に必要無いので、この設定で行くことにする。
5.文字列の扱いは便利なので、#define _USE_STRFUNC 1 を追加してみる。
Total program memory used (bytes): 0x9009 (36873) 56%
Total data memory used (bytes): 0x14bc (5308) 64%
当然、使用量は少し増えるが、この機能は便利なので生かすことにする。
6.メモリに無関係かもしれないが、内蔵クロックで動かすための、クロックまわりとUARTまわりの設定を変更する。
Total program memory used (bytes): 0x901b (36891) 56%
Total data memory used (bytes): 0x14bc (5308) 64%
この段階が私的にはデフォなので一応パッケージ化して保存しておく。
SD_GFatFs_ORG_05 (7275 ダウンロード )
7.コマンドの一覧を表示するオプションを追加する。
Total program memory used (bytes): 0x9099 (37017) 56%
Total data memory used (bytes): 0x14bc (5308) 64%
外部ファイルを読み込んで表示するだけなのでほとんど変化は無い。
8.#define _FS_MINIMIZE 1 にしてみる。
Total program memory used (bytes): 0x7c14 (31764) 48%
Total data memory used (bytes): 0x14bc (5308) 64%
f_stat、f_getfree、f_unlink、f_mkdir、f_chmod、f_utime、f_truncate、f_renameが削除される。
使えなくなった機能が多い割にはメモリの節約はそこそこという感じだ。
f_renameは残したいかなあ。
これだったら、#define _FS_MINIMIZE 0 のままの方がいいかもしれない。
もっとMINIMIZEのレベルを上げてみたらどうなるかは、いずれ気が向いたら。
ちなみに、Petit版のメモリ使用量は圧倒的に少ない。
Total program memory used (bytes): 0x3b1c (15132) 23%
Total data memory used (bytes): 0x19a (410) 5%
MINIMIZEのレベルを上げてった程度でPetitに到達するのかはわからない。
「PIC24FJ64GA002 + Generic FatFs + RTCC」へ
Tweet