Renesas Synergy™

FAQ 3000259 : CS+でのスタックの使用量の確認方法について

Q: 質問

RXコンパイラCC-RXを使用しています。
HEWでスタックを見積もるツールの「Call Walker」を使用していましたが、CS+で同様の機能を探しても見つかりません。


A: 回答

CS+でスタック見積もりツールを使用される際には以下のように進めてください。

  1. CC-RX(ビルド・ツール)プロパティの「リンク・オプション」タブ内 にある
    「その他」->「スタック使用量情報ファイルを出力する」を「はい」に設定してビルドを実行して下さい。

  2. CS+の「ツール」->「プラグインの管理」で「追加機能」タブの「スタック見積もりツール」に チェックが入っていることをご確認下さい。

  3. その後、CS+のメニュー より「ツール」->「スタック見積もりツールの起動」でCall Walkerを起動してスタック使用量をご確認下さい。

  4. スタックオーバーフローの可能性がある場合は、スタック使用量のMax値がスタック領域のサイズを超えていないかご確認下さい。

  5. Call walkerでは、割り込み関数に関しては最大のスタック使用量には加算されていません。各割り込み関数で使用するスタック使用量が個別に表示されますので、この割り込み関数で使用するスタック使用量を全体で使用するスタック使用量に手計算で加算してスタック領域を確保ください。

尚、Call walkerのツール上(左側のウィンドウ)で割り込み関数を選択してドラッグ&ドロップで移動することで加算した数値を表示することも可能です。しかし、割り込み関数がどのタイミングで呼ばれるかにより値が異なってしまいます。表示されているスタック使用量の最大値に割り込み関数のスタック使用量を加算していただくのが確実と考えております。加算するのはすべての割り込み関数のスタック使用量ではなく、最大の使用量か多重割り込みを考慮した使用量になります。

 

適用製品

RXファミリ用C/C++コンパイラパッケージ
統合開発環境(High-performance Embedded Workshop)
CS+ (旧 CubeSuite+)
他にご質問がございましたら、リクエストを送信してください