(toppers-users 3845) Re: SSPのスタックの記述
Naoki Saito
nsaito.nmiri @ gmail.com
2012年 1月 30日 (月) 12:56:52 JST
こいさんさん
斉藤です.
ありがとうございます.
> 私の意見は、従来と同じようにスタックサイズはCRE_TSKに書けばCFGが処理し
> てくれることを望んでいます。CRE_TSKとDEF_ICSでスタックサイズを算出される
> のがマート(?)だし、従来の考え方が継続できると思います。
はい.そうですよね...
現状の実装においては,CRE_TSK の設定値は DEF_ICS の設定値が
足りないことをチェックするためにしか使われていません.
これでは全体のスタックの必要量をユーザ責任で計算しなければならないなど
何かとメンドウですよね.
CRE_TSK で指定したサイズが最終的なスタックサイズに反映される方が
使いやすいかもしれませんね.
ご意見ありがとうございました.
(12/01/30 11:27), koizumi yoshiyuki wrote:
> 斉藤さん
> 私の意見は、従来と同じようにスタックサイズはCRE_TSKに書けばCFGが処理し
> てくれることを望んでいます。CRE_TSKとDEF_ICSでスタックサイズを算出される
> のがマート(?)だし、従来の考え方が継続できると思います。
> こうして於いて、スタックの共用を説明するのが分かり易いと思っています。
> Cortex-MではタスクのスタックをPSP、DEF_ICSをMSPに割り当てる実装もある
> でしょう。
> 以上
>
> 2012年1月30日10:58 Naoki Saito <nsaito.nmiri @ gmail.com
> <mailto:nsaito.nmiri @ gmail.com>>:
>
> こいさんさん
>
> 斉藤です.
> お答え出来そうなものだけ回答致します.
>
> > Sample1の場合スタックサイズはDEF_ ICS+各タスク割り当てたスタッ
> クの合
> > 計(INIT_TASK、MAIN_TASK、TASK1 ,TASK2)になると思っていましたが、
> 即値で記
> > 述されているようです。TASK3のスタックはTASK2と共用する。
>
> この点については...
>
> SSPでは一つのスタック領域を全ての処理単位で共用しますので,
> そのサイズをどのように算出するかが問題となりました.
>
> 仕様検討時の候補としては2通りありました.
> 1.CRE_TSK の設定値をもとにタスクの最大使用量を見積り,それに
> DEF_ICS の設定値を加えたものを全体のスタックサイズとする.
>
> 2.DEF_ICS は本来でならば非タスクコンテキスト用のスタック領域を
> 指定する静的APIであるが,SSPに限っては「共有スタック領域」を
> 指定するための静的APIとして使うことにする.
> つまり,DEF_ICS にはタスク分と非タスク分の両方を合わせた値を
> 指定し,その値が全体のスタックサイズとしてそのまま使われる.
>
> 結果として,第2案になりました.CRE_TSK を変更しても
> 結果のスタックサイズは変更されないことになります.
>
> というのが現状なのですが,どのようにお感じになりますでしょうか?
>
> > 又、INTHDR_ENTRYの展開がASPとは異なっています(prc_config.h)、
> > LOG_ISR_ENTER()がSSPでは無くなっていますが、従来と同じ作りで良い
> ような気
> > がしています。変わった理由がありましたら、お教え願いたいと思って
> います。
>
> この点につきましては,当方のミスです.
> 次期リリース版では出力するように致します.
>
> 以上,よろしくお願い致します.
>
>
> (12/01/30 10:15), koizumi yoshiyuki wrote:
> > こいさんです
> > SSPのスタックの記述について疑問があります。というか、CFGでの
> サービスが
> > 欲しいと思っています。
> >
> > 公開されている資料とASPを使って見ての経験かするとSSPのsample1の
> スタッ
> > クは*.cfgで記述するCRE_TSKとDEF_ ICSからcfg.exeがkernel_cfg.cに自
> 動生成
> > してくれると思っていましたが、ssp-1.1.0.tar.gzではそのように作ら
> れていな
> > いようです。
> >
> > DEF_ ICSは記述は有りませんし。CRE_TSKのスタックサイズを変更しても
> > kernel_cfg.c、マップファイル共変化がありませんでした。
> >
> > Sample1の場合スタックサイズはDEF_ ICS+各タスク割り当てたスタッ
> クの合
> > 計(INIT_TASK、MAIN_TASK、TASK1 ,TASK2)になると思っていましたが、
> 即値で記
> > 述されているようです。TASK3のスタックはTASK2と共用する。
> >
> > 又、sample1のスタックサイズはtarget\cq_starm_gcc\target_test.h
> > の#define STACK_SIZE (128)が使われていますが、target_test.h では無く
> > sample1.hで指定すべきものだと思っています。
> >
> > 別件です。
> >
> > 又、INTHDR_ENTRYの展開がASPとは異なっています(prc_config.h)、
> > LOG_ISR_ENTER()がSSPでは無くなっていますが、従来と同じ作りで良い
> ような気
> > がしています。変わった理由がありましたら、お教え願いたいと思って
> います。
> >
> > どのような経緯でこのようになったのでしょうか。
> >
> > 以上
>
>