ホーム フォーラム Texas Instruments マイコン MSP430 スタックサイズの設定について 返信先: スタックサイズの設定について

#20417 返信
umamiti
umamiti
従業員

ご投稿ありがとうございます。

MSP430FR5859、コンパイラーTI v15.12.3.LTSを使っています。

同じプロジェクトをCCS6.2とCCS12で開くと、StackUsageで確認する数字が一致しない現象があります。

CCS12:mainProcessのInclusiveSizeは120

CCS6.2: mainProcessのInclusiveSizeは1532

原因は何でしょうか。

上記につきましては、CCS v12の内容が適切かと存じますが、念のためメーカーに確認させていただきますので、少々お時間頂けますと幸いです。

また、スタックサイズは今256の設定ですが、InclusiveSizeが256超える場合(黄色い表示)はスタックのオーバーフロー発生する可能性があるというサインでしょうか。この場合、スタックサイズをInclusiveSize以上の値に設定し直すべきでしょうか。

ご認識の通り、InclusiveSizeが256超える場合は、システムに合わせてスタックサイズの再設定をご検討ください。

ExclusiveSizeは、その関数が必要とするスタック量であり、その関数が呼び出す可能性のある関数は無視されます。
Inclusive Sizeは、その関数が必要とするスタック量に、その関数が呼び出すすべての関数が必要とするスタック量を加えたもので、再帰的に適用されます。つまり、f1がf2を呼び、f3がf4を呼び…というように、それぞれの関数が必要とするスタック量が加算され、Inclusive Sizeとなります。

詳細につきましては、「Code Composer Studio User’s Guide – 6.8.5. Stack Usage View」を合わせてご参照ください。

以上、よろしくお願いいたします。