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

高橋和浩@nifty takahashi_kazuhiro @ nifty.com
2012年 1月 18日 (水) 10:19:16 JST


MLを拝見させていただいています。
アライブビジョンソフトウエアの高橋と申します。

SSPについて話が進んでいるようなのですが、少しついていけません。
「実行時優先度」とは何なのか、ちょっとわかりません。
ドキュメントに何か書かれたものがございますでしょうか?

ssp_spec.txtの
----------------------------------------------------------------------
○前提となる文書
[1] トロン協会: μITRON4.0仕様, Ver.4.02.00, 2004年.
[2] TOPPERSプロジェクト: TOPPERS新世代カーネル仕様書 Release 1.2.0
[3] TOPPERSプロジェクト: TOPPERS標準割込み処理モデル, 最終更新: 2008年
4月11日.
---------------------------------------------------------------------
の[1][2]を見ても「実行時優先度」は見当たりませんでした。
#SSPのR8Cのパッケージのデータも確認しましたが見当たりません。

[1]で記載がある用語では
起動時優先度
ベース優先度
現在優先度

かと思いますが、さらに実行時優先度はまた違うものなのでしょうか?

よろしくお願いします。

すいません
(toppers-users 3751) に書かれていることもよくわかりません。

> DEF_EPRIを使うと異なるタスク優先度を持つタスクに対して実行時に
> 同一のタスク優先度を設定できます。
単純に静的API(DEF_EPRI)で、CRE_TSKの起動時優先度の代わりに、実行時優先度と呼ばれるものが
が使われるだけのように思うのですが、たぶんここに誤解があると思っています。



On Wed, 18 Jan 2012 00:08:49 +0900
杉本明加 <asuka.choronos @ gmail.com> wrote:

> こいさんさん
> 
> 杉本です。
> 
> 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 });が関連しているのでしょうか。
> >  以上
> >
---
アライブビジョンソフトウエア株式会社
高橋和浩
673-0005兵庫県明石市小久保2-2-7幹線ビル4F
Email:takahashi_kazuhiro @ nifty.com
http://homepage3.nifty.com/ALVS/