(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では無くなっていますが、従来と同じ作りで良いような気 
> がしています。変わった理由がありましたら、お教え願いたいと思っています。
> 
>  どのような経緯でこのようになったのでしょうか。
> 
>  以上