インテルのみ表示可能 — GUID: gbv1655905524786
Ixiasoft
インテルのみ表示可能 — GUID: gbv1655905524786
Ixiasoft
7.7.1. システム・クロック・ドライバー
HAL システム・クロック・ドライバーは定期的なハートビートを提供し、システムクロックが各ビートで増加します。ソフトウェアは、システムクロック機能を使用して、指定された時間に関数を実行し、タイミング情報を取得できます。BSP 設定を操作して、特定のハードウェア・タイマー・ペリフェラルをシステム・クロック・デバイスとして選択します。
BSP 設定を制御する方法の詳細については、HAL BSP 設定の章を参照してください。
HAL は、gettimeofday()、settimeofday()、および times() のような標準 UNIX 関数の実装を提供します。これらの関数によって返される時間は、HAL システムクロックに基づいています。
システムクロックは、クロックティックで時間を測定します。ハードウェアとソフトウェアの両方を使用している場合は、HAL システムクロックを、 Nios® V プロセッサーのハードウェアを駆動するクロック信号と混同しないでください。HAL システム・クロック・ティックの周期は、ハードウェア・システムクロックよりも大幅に長くなります。system.h はクロックティック周波数を定義します。
実行時に、alt_nticks() 関数を呼び出すことにより、システムクロックの現在値を取得できます。この関数は、リセット後の経過時間をシステム・クロック・ティックで返します。alt_ticks_per_second() 関数を呼び出すことで、1 秒あたりのティック数でシステム・クロック・レートを取得できます。HAL タイマードライバーは、システムクロックのインスタンスを作成する際、ティック周波数を初期化します。
現在時刻を取得するには、標準の UNIX 関数 gettimeofday() を使用できます。まず settimeofday() を呼び出して時刻を調整する必要があります。さらに、times() 関数を使用して、経過したティック数に関する情報を取得できます。 これらの関数のプロトタイプは、times.h に表示されます。