(toppers-users 3847) Re: SSPのスタックの記述

高橋和浩@nifty takahashi_kazuhiro @ nifty.com
2012年 1月 30日 (月) 14:15:40 JST


斎藤様 MLの皆様
アライブビジョンソフトウエアの高橋です。

2点確認させてください。

1.ユーザ責任以外にスタックサイズ計算があり得るのか?
> これでは全体のスタックの必要量をユーザ責任で計算しなければならないなど
> 何かとメンドウですよね.
何がどう面倒なのかもわかりませんし、ユーザ責任以外でスタックサイズの算出ができるとも想像がつきません。
どのような仕組みなのでしょうか?

2.TOPPERSの会員内のレビューで議題にあがっいなかったのでしょうか?
なにか思惑があって、現状の仕様になっているかと思いますが、どのような思惑でこのような設計をしたのでしょうか?
その辺を説明いただけないでしょうか? また、これはTOPPERSの会員内のレビューで議題にあがらなかったのでしょうか?
あがったのであればその結論についても興味があります。
それでしたら、会員になってくださいは無で、開示可能な範囲でお答え願えないでしょうか?

よろしくお願いします。



On Mon, 30 Jan 2012 12:56:52 +0900
Naoki Saito <nsaito.nmiri @ gmail.com> wrote:

> こいさんさん
> 
> 斉藤です.
> ありがとうございます.
> 
> >  私の意見は、従来と同じようにスタックサイズは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では無くなっていますが、従来と同じ作りで良い
> >     ような気
> >      > がしています。変わった理由がありましたら、お教え願いたいと思って
> >     います。
> >      >
> >      >  どのような経緯でこのようになったのでしょうか。
> >      >
> >      >  以上
> > 
> > 
>