(toppers-users 3728) Re: SSPの制約タスクの待ちについて

杉本明加 asuka.choronos @ gmail.com
2012年 1月 16日 (月) 22:47:12 JST


こいさんさん

杉本です.

制約タスクの仕様はμITRON4.0と同等です.

>  と有ります。sample1でtask()が動作している時に、周期ハンドラのcyclic_handler()からmain_taskタスクが起動され、taskの動作中にmain_taskタスクが動作してます。これはtaskが待たされていることにはならないのでしょうか。(私は、待たされていると思います)

TOPPERS新世代カーネル仕様(及び基となっているμITRON4.0仕様)では,これは
待ち状態に該当しません.挙げていただいた例ではtaskは実行可能状態であり
待ち状態ではありません.taskは実行可能ではありますが,より優先度の高いmain_taskが
実行可能状態であるため実行できないだけです.

いわゆる待ち状態は,タスクが実行できない条件(何らかのイベントを待っている)であることを
指します.ASPのサンプルのmain_taskですとシリアルドライバからの受信が
来ないためにCPUが割り付けられることがありません.

タスクが動作しないという事象は同じですが,その理由が異なります.
このあたりはタスク状態遷移について熟読いただくとよいと思います.

>  優先度の高いタスクが優先度低いタスク動作中に動作することになると、制約タスクのスタックは  【補足説明】 の
> 「各タスクのスタックサイズの最大値」ではスタック不足が発生してしまうと思いますが、如何でしょうか。
>

SSPのスタックはシステム全体で共有しており,各タスクと割込みハンドラが使用する
スタックの最大値を求めて確保しています.


SSPの仕様はTOPPERS統合仕様書にマージ作業を終えて確認中ですので
近いうちに公開になるかと思います.それまでお待ちください.
といっても多くの部分はμITRON4.0仕様と互換になっていますので,基本的な部分は
そちらでまず確認頂ければ幸いです.

以上,よろしくお願いします.

2012年1月16日20:34 koizumi yoshiyuki <koizumiyoshiyuki @ gmail.com>:
>  こいさんです
>
>  SSPの制約タスクの仕様ですが、μITRON4.0仕様5.2.1 制約タスク が原典で良いのでしょうか。
>
>  であるなら、制約タスクは
>
> * 待ち状態に入ることができない.
>
>  と有ります。sample1でtask()が動作している時に、周期ハンドラのcyclic_handler()からmain_taskタスクが起動され、taskの動作中にmain_taskタスクが動作してます。これはtaskが待たされていることにはならないのでしょうか。(私は、待たされていると思います)
>
>  優先度の高いタスクが優先度低いタスク動作中に動作することになると、制約タスクのスタックは  【補足説明】 の
> 「各タスクのスタックサイズの最大値」ではスタック不足が発生してしまうと思いますが、如何でしょうか。
>
>  SSPの仕様書の類がまだ非公開(?)なので、理解できずにいます。
>
>  何かヒントになる情報が入手できないでしょうか。
>
>  以上
>