MPLAB C30で調子よくプログラムを作って、デバッグモードで動かして確認を繰り返していた。
すると、動かしている途中でリセットがかかるようになってしまった。
MPLABには、画像のようなメモリーの使用量が表示できる機能がある。
これを見る限り、まだまだ余裕があると思っていたのだが、どうも違うようである。
マニュアルによると、ソフトウェアでスタック領域の監視を行っているようで、デフォルトのままだとスタックオーバーフローが発生したらリセットするようになっているのだ。
ここら辺が、一般的なPC上で開発するソフトウェアと組み込み用のそれとの大きな違いだ。普段PCのメモリーがたっぷりある環境で開発することに慣れているので、いつものように関数なんかはどんどん作ってしまうのだが、これがスタックの浪費につながってしまうのだ。
スタックの消費量を抑えるように、プログラムの見直しをしなくては。
0 件のコメント:
コメントを投稿