それは、アプリケーションがタイマーで何をしたいのか、およびタイマーが発生する環境によって異なります。私はその特定のチップで動作していないので、レジスタの使用方法を説明することはできません.
操作の前後にカウンターを読み取り、2 つの違いを実行できるタイムスタンプのような関数が必要な場合、VxWorks ボード サポート パッケージは、関数の sysTimestamp ファミリを介してその機能を提供します。ドキュメントを参照してください。
ただし、sysTimestamp が要件を満たしていなくても、レジスタにアクセスして現在の時刻を読み取り、コードがカーネル空間 (対ユーザー空間 AKA RTP) で実行される場合は、関数を定義するだけで済みます。タイムスタンプを返す...
uint64 myTimestamp() {
uint64 ts;
ts = *read & massage the register*
*deal with overflows, etc... *
return ts;
}
一方、アプリケーションが RTP のコンテキストで実行される場合、Windows のプロセスと同様に、RTP はハードウェア機能に直接アクセスできないため、事態はさらに複雑になります。
可能性の 1 つは、物理カーネル メモリのページを RTP にマップして、レジスタに直接アクセスできるようにすることです。システムの保護メカニズムに穴を開けたので、非常に落胆します。タイムスタンプ レジスタを読み取るためのカスタム システム コールを実装することもできます。
これらのソリューションは両方とも、vxWorks に関する中級から上級のスキルを必要とします。