SOLID SOLIDコミュニケーションフォーラム

SOLIDコミュニケーションフォーラム

SOLIDスターターキットについては、購入したお客様と直接に個別での電話やメールでのユーザーサポートは行っておりません。
お問い合わせについては、本掲示板についてトピックを作成のうえ、ご記入ください。トピック作成については、購入時に同梱されている技術サポート用のIDとパスワードを用いてログインが必要にです。参照については、ログインの必要ありません(ただし、ボード固有フォーラムは、参照にもIDが必要です)。

ログインはこちら

スタックサイズの算出方法について教えて...
 
通知
すべてクリア

スタックサイズの算出方法について教えてください。

2 投稿
2 ユーザー
0 Reactions
11.6 K 表示
(@skit-rz)
メンバー
結合: 8年前
投稿: 46
トピックスターター  
スタックサイズはどのように算出しているのでしょうか?
再帰関数なども正確に測定出るのでしょうか?


   
引用
(@tokuyama)
メンバー
結合: 8年前
投稿: 44
 

RTOSビューアの現在時点スタックサイズについては、以下のように算出しています。

- Running 状態のタスクについては、スタックの底と SP の値の差分

- 上記以外の状態のタスクについては、スタックの底と、SOLID-OSのディスパッチャにより非Running状態にされた時点(レジスタ保存領域を含めた)で、TCB に保存されている値との差分

 

ご質問にある再起呼出し関数を使ったとしても、正確に判定されます。

スタックフェンスによるスタック突き抜け検知は、スタックの上端が、MMUによって物理メモリがマップされた論理アドレスの境界になっていますので、突き抜けた時点でMMUによって検出されます。

 

ご質問にある、再起呼出し関数があったとしても正確にサイズの算出がされますし、突き抜けの判定も問題なく厳密に行われます。



   
返信引用
共有: