(toppers-users 3760) Re: SSPの DEF_EPRI とは何でしょうか。

koizumi yoshiyuki koizumiyoshiyuki @ gmail.com
2012年 1月 18日 (水) 10:10:38 JST


  杉本さん

変な質問を多々出しましたが、私の疑問はこれで解消です。今の時点で細かな疑問は残っていますが、後は何とかなると思っています。
色々、有難うございました。

以上

2012年1月18日0:08 杉本明加 <asuka.choronos @ gmail.com>:

> こいさんさん
>
> 杉本です。
>
> DEF_EPRIはSSPで導入した実行時優先度を定義するための静的APIです。
>
> タスクに対してDEF_EPRIで実行時優先度を指定しておくと、タスクが
> 最初に実行状態になった時にCRE_TSKで指定したタスク優先度では
> なくDEF_EPRIで指定した値がタスク優先度に設定されます。
>
> DEF_EPRIを使うと異なるタスク優先度を持つタスクに対して実行時に
> 同一のタスク優先度を設定できます。
>
> これはタスク間の排他に用いたり(SEK/VDXやAUTOSAR OSでいう内部リソースと
> 同様の振る舞いと)、異なるタスク優先度を設定した(むしろSSPではそのように
> しか指定できませんが)タスク間でスタック領域を共有することができます。
>
>
> 実行時優先度の指定をどのように行うかはCRE_TSKを拡張する
> 方法などいくつか検討しましたが、他のカーネルとの互換性を考慮し
> 新たに静的APIを追加することとしました。
>
> 以上、よろしくお願いします。
>
>
> 2012年1月17日17:54 koizumi yoshiyuki <koizumiyoshiyuki @ gmail.com>:
> >  こいさんです
> >
> >  SSPの DEF_EPRI
> とは何でしょうか。CPU例外が発生したときの優先度のように見えるのですがよくわかりません。doc/*.txtにも特に記述がありません。
> >
> >  sample1.cfgには以下のような記述があります。
> > CRE_TSK(TASK3 , { TA_NULL , 3 , task , TASK3_PRIORITY , STACK_SIZE , NULL
> > });
> > DEF_EPRI(TASK3 , { TASK3_EXEPRIORITY });
> >  sample1.hで優先度の定義は
> > #define INIT_PRIORITY (1)
> > #define MAIN_PRIORITY (2)
> > #define TASK1_PRIORITY (3)
> > #define TASK2_PRIORITY (4)
> > #define TASK3_PRIORITY (5)
> > #define TASK3_EXEPRIORITY (4)
> >  です。
> >
> >  cfgで作成された、kernel_cfg.cは以下のようになっています。
> >
> > const uint_t   _kernel_tinib_epriority[TNUM_TSKID] = {
> >
> INT_PRIORITY(1),INT_PRIORITY(2),INT_PRIORITY(3),INT_PRIORITY(4),INT_PRIORITY(4)
> > };
> >
> >
> >  TASK3の優先度は5になって欲しい気がしています。
> >  DEF_EPRI(TASK3 , { TASK3_EXEPRIORITY });が関連しているのでしょうか。
> >  以上
> >
>
-------------- next part --------------
HTMLの添付ファイルを保管しました...
URL: <http://www.toppers.jp/pipermail/users/attachments/20120118/b9b13be1/attachment.html>