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