(toppers-users 3841) Re: SSPのスタックの記述
Naoki Saito
nsaito.nmiri @ gmail.com
2012年 1月 30日 (月) 10:58:57 JST
こいさんさん
斉藤です.
お答え出来そうなものだけ回答致します.
> 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では無くなっていますが、従来と同じ作りで良いような気
> がしています。変わった理由がありましたら、お教え願いたいと思っています。
>
> どのような経緯でこのようになったのでしょうか。
>
> 以上