0

私は Raspberry Pi ベースのプロジェクトに取り組んでいます。このプロジェクトには、上司がシステム クロックの時刻を取得するよう求めている GPS モジュールがあります。ただし、GPS が修正されていない可能性がある間は、さまざまなセンサーで読み取り値を取得する必要があり、これらの読み取り値がいつ取得されたかをミリ秒の精度 (50 ~ 100 ミリ秒の許容範囲で問題ありません) で知る必要があります。

個人的にはハードウェア RTC が必要ですが、回避するように指示されています。私の考えは、システム起動からの相対時間で各読み取り値をマークすることです。システム時間は信頼できず、利用可能な場合はNTP /衛星時間によって更新されます(その後、相対時間を使用して同期された時間が利用可能な場合、レコードを修正できます時間)。

では、ユーザー空間の C コードから Linux でミリ秒単位の正確なアップタイムを取得するにはどうすればよいでしょうか? カーネルで利用可能な jiffies 値のようなものが最適です。

4

1 に答える 1

0

ボードのメインコントローラー(CPU)を確認する必要があると思います。通常、CPU に統合されたハードウェア タイマー モジュール、または CPU コアのデクリメンター レジスタの実装があります。

CPU にハードウェア タイマーまたは DEC レジスタがある場合は、それを使用して定期的な割り込みを実装します (周波数は 1000HZ またはそれ以外の場合があります)。割り込みハンドラーは、必要なリアルタイム作業を行うために、ユーザー空間プロセスに通知/ウェイクアップできます。

于 2013-07-26T01:48:52.427 に答える