メインコンテンツまでスキップ
Knowledgebase
Home
Renesas Electronics Japan - Knowledgebase

アプリケーションタイマの使用に関するFAQ

最終更新日:2017/07/05

質問1.アプリケーションタイマとは何ですか?

回答
非同期な外部イベントへの高速な応答は、リアルタイム組み込みアプリケーションにおいて、最も重要な機能です。
しかしながら、このようなアプリケーションの多くは、事前に決められた一定時間間隔の作業も実行しなければなりません。
ThreadXのアプリケーションタイマは、特定の時間間隔でアプリケーションのC関数を実行可能な機能をアプリケーションに提供します。
アプリケーションタイマを一回のみの使用で終了させることも可能です。この種のタイマが“ワンショットタイマ”と呼ばれるのに対して、繰り返しインターバルタイマは“周期タイマ”と呼ばれます。

各アプリケーションタイマは、公開リソースです。ThreadXでは、アプリケーションタイマの使い方に制限を設けていません。

質問2.アプリケーションタイマ間隔とは何ですか?

回答
ThreadXでは、周期タイマによる割り込みによって時間間隔を計測します。各タイマの割り込みは、“ タイマチック”と呼ばれます。
タイマチック間の実時間はアプリケーションによって指定されますが、ほとんどの実装において10msが標準となっています。
周期タイマの設定は、通常はtx_initialize_low_levelファイル内で行います。
重要なことは、基盤となるハードウェアはアプリケーションタイマを機能させる周期割り込みを発生させることができなければならないということです。
プロセッサに周期割り込み機能が内蔵されている場合もあります。
この機能がプロセッサに内蔵されていない場合は、周期割り込みを発生させることができる周辺デバイスを、ユーザのボードが備えている必要があります。
ThreadXは、周期割り込みソースがなくても機能しますが、その場合、タイマ関連の処理がすべて使えなくなります。
このタイマ関連の処理には、タイムスライス、中断タイムアウト、タイマ処理などがあります。

質問3.アプリケーションタイマの精度とは何ですか?

回答
タイマの終了はチック で指定されます。指定された終了値は、タイマチックごとに1つずつ減っていきます。
アプリケーションタイマは、タイマ割り込み(もしくはタイマチック)直前に有効にできるため、実際の終了時間は、最大で1チック分早くなる可能性があります。

タイマチックレートが10msなら、アプリケーションタイマが最大で10ms早く終了する可能性があります。これは、1秒タイマよりも10msタイマのほうに大きな影響を与えます。
もちろん、タイマ割り込み周期を増やせば、この誤差の範囲は小さくなります。

質問4.アプリケーションタイマはいつ実行されるのでしょうか?

回答
アプリケーションタイマは、アクティブになった順に実行されます。
たとえば、同じ終了値を持つ3つのタイマを作成して動作させると、対応する終了関数が動作した順番に必ず実行されます。

質問5.アプリケーションタイマの使用中に何か制限事項はありますか?

回答
デフォルトで、アプリケーションタイマは、通常は他のアプリケーションスレッドよりも優先度が高い優先度“0”で実行される隠れたシステムスレッド内から実行されます。
そのため、アプリケーションタイマ内の処理を最小限にとどめるよう推奨しています。
可能であれば、タイマがタイマチックごとに終了しないようにすることも重要です。
このような状況では、アプリケーション内で過大なオーバヘッドを引き起こす可能性があります。すでに述べたとおり、アプリケーションタイマは隠れたシステムスレッドから実行されます。
このため、アプリケーションタイマの終了関数から発行されるThreadXのサービスコールでの、中断を選択しないことが重要になります。

質問6.さらに詳しい情報はどこにありますか?

回答
さらに詳しい情報は、ThreadXユーザマニュアルをご参照ください。

©1997-2016 Express Logic, Inc. All rights reserved.本文書と関連するThreadXソフトウェアは、Express Logic, Inc.の独占所有物です。各々にExpress Logic, Inc.の専有情報が含まれています。

 

適用製品

Renesas Synergy™ プラットフォーム
Renesas Synergy™ ソフトウェア
Renesas Synergy™ マイクロコントローラ