Nios® V プロセッサー・ソフトウェア開発者ハンドブック

ID 743810
日付 7/08/2024
Public
ドキュメント目次

4.4.3.1.2. タイムスタンプ・タイマー

タイムスタンプ・タイマー・サービスは、システム内のイベントの期間を正確に測定する方法をアプリケーションに提供します。 Nios® V プロセッサー・サブシステムのデフォルトのタイムスタンプ・タイマーは、 Nios® V プロセッサーの組み込み内部カウンターです。代わりに、プラットフォーム・デザイナー のシステム内の他のタイマー・ペリフェラルにシステム・クロック・タイマーを設定することもできます。

注: BSP ライブラリー・ファイルで識別できるタイムスタンプ・タイマーのサービスは 1 つだけです。HAL 提供のルーチンのみがタイマーにアクセスします。

hal.timestamp_timer 設定は、タイマーの BSP コンフィグレーションを制御します。この設定は、プラットフォーム・デザイナー・デザインで使用可能なタイマーの 1 つをタイムスタンプ・タイマーとしてコンフィグレーションします。

インテル はタイムスタンプ API を提供します。タイムスタンプ API は非常にシンプルです。これには、タイマーを動作可能にする alt_timestamp_start() 関数と、現在のタイマーカウントを返す alt_timestamp() 関数が含まれます。

タイムスタンプ・タイマーを実装する前に、以下の一般的な問題および重要なポイントを考慮します。

  • タイマー周波数 — タイムスタンプ・タイマーは、プラットフォーム・デザイナー・システムでそれにクロックを供給するクロックのレートで減分します。この周波数はプラットフォーム・デザイナーで変更することができます。
  • ロールオーバー — タイムスタンプ・タイマーは、ロールオーバー・イベントを持っていません。alt_timestamp() 関数が値 0 を返す場合、タイマーが切れています。
  • 最大期間 — デフォルトの Nios® V プロセッサーの内部タイマーには、タイマー値を格納するために使用できる 64 ビットがあります。Avalon タイマー・ペリフェラルの場合、パラメーター化に応じて 32 ビットまたは 64 ビットになります。したがって、タイムスタンプ・タイマーがカウントできる最大期間は [(1/timer frequency) × 2bits_value] 秒です。(bits_value = 32 または 64)