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

(itron-club 1733) Re: 周期ハン ドラの時間単位



小南です。

On Thu, 12 Aug 2004 18:00:05 +0900
masato-fujiwara __at__ jdkc.co.jp wrote:

> 周期ハンドラの定義を以下のAPIで行いますが、
> 周期時間はどのような単位となっていますでしょうか?
 
> TOPPERSを用いまして簡単なプログラムを作成し、
> コンフィギュレータファイルで以下のように周期ハンドラを
> 生成しました。
 
> CRE_CYC(CYC_TIMER , { TA_HLNG, 1, hndl_Cycle  , 2000, 0 });
 
> ここではJSPサンプルプログラムと全く同じ時間設定としました。
> (時間の単位がわからなかったので・・・)
> 
> user.txtのほうもみたのですがわかりませんでした。
 
以下はTOPPERS/JSP 1.4についてお尋ねされているとして書きます。

結論から言いますと、TOPPERS/JSP 1.4の周期イベントの時間の単位は、
ミリ秒です。
 
ただしユーザーズマニュアル(依存部のユーザーズマニュアルを含めて)には、周期
ハンドラの時間の単位をそのものずばりとは書いてありません。
したがって、この点はソースで確認するしかありません。

kernel/time_event.cには以下のように記述されています。

/*
 *  現在のシステム時刻(単位: ミリ秒)
 *
 *  厳密には,前のタイムティックのシステム時刻.
 */
SYSTIM	current_time;

このファイルではタイムイベントハンドラが実装されています。
処理内容を追って行くと、このcurrent_timeを基準にして、処理すべきか
否かを決めています。
周期ハンドラもタイムイベントハンドラの一種ですので、current_time
の単位が、指定する時間の単位になります。
つまり、TOPPERS/JSP 1.4の周期イベントの時間の単位は、ミリ秒です。

ただし、タイムイベント処理の実装方式からの制約により指定時刻よりも遅れて処理さ
れる場合が有ります。
たとえばxstormy16はタイムティックが標準で5ミリ秒です。これは5ミリ秒
単位でしか処理されないということです。
例えば6ミリ秒と指定しても、5ミリ秒の次の10ミリ秒にならないと処理をしてくれ
ません。
これは各依存部のユーザーズマニュアルに書かれていますので、お使いの依存部のユー
ザーズマニュアルで御確認ください。

それからJSPではタイムティックを変更することも可能です(具体的な変更方法や、
変更の容易さは依存部での実装に依る)。

#この件に関しては、JSPのユーザーズマニュアルの該当部分の記述が、実装の観点か
#らしか書かれておらず、サービスコールを使用するために必要な情報が欠けていますね。

----------- 
小南 靖雄
ykominami __at__ nifty.com
(NBC00224 __at__ nifty.com)