[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

(itron-club 1767) Re: dly_tsk(0)



藤倉様

以下、あくまでも個人的な見解です。

>  dly_tskのスペックについて質問です。
>  相対待ち時間dlytimを0でdly_tskを呼び出した場合の動作は、0でも自タスクを待
> ち状態に遷移させるとのことなので、
>  1) 次のインタバルタイマ割込みまで、待ち状態になる。
>  2) dly_tsk実行中にタイマ割込みが入れば、E_OKで直ぐに帰る。
> の二通りと考えて良いのでしょうか。

実質的にはそのように考えて差し支えないと思いますが、2)については、厳密
には次のようになります。

μITRON仕様上は、サービスコールの実行は不可分に行われるのが原則ですの
で、dly_tskの実行の途中にタイマ割込みが入る状況は規定されません。実装
上、dly_tskの実行途中でタイマ割込みを受け付ける場合には、dly_tskの実行
直前に受け付けた場合か、実行直後に受け付けた場合の、いずれかと一致すれ
ば良いということです(μITRON4.0仕様の3.5.3節のサービスコールの不可分
性の議論をご覧ください)。

上の2)の振舞いは、実行直後に受け付けた場合と一致しますので、差し支えあ
りません。逆に、さらに次のタイマ割込みまで待ち状態としても差し支えあり
ません。

高田広章
名古屋大学