VxWorksを使用する場合、リアルタイムプロセスからメモリマップドI/Oデバイスにアクセスしようとしています。
RTPにはメモリ保護があるので、どのようにしてI / Oデバイスにアクセスできますか?
3052 次
1 に答える
4
RTPからI/Oマップデバイスにアクセスするために使用できる方法は2つあります。
I / Oサブシステム(推奨)
基本的に、小さなデバイスドライバーを作成します。このドライバーは、VxWorksのI/Oサブシステムに統合できます。統合されると、ドライバーは、標準のI / O操作(開く、閉じる、読み取り、書き込み、ioctl)を使用するだけでRTPで使用できるようになります。
「デバイスドライバの作成」は複雑である必要はないことに注意してください。ioctl関数のラッパーを定義するのと同じくらい簡単かもしれません。詳細については、ioLibを参照してください。
メモリを直接マップする(非推奨)
sdOpen呼び出しを介して共有メモリ領域を作成できます。共有メモリを作成するときに、物理アドレスを指定できます。デバイスのI/Oマップ領域となるアドレスを指定すると、デバイスに直接アクセスできます。
問題は、共有メモリ領域が任意のスペースで使用できるパブリックオブジェクトであり、ハードウェアを直接突くことがRTPの背後にある哲学に反することです。
于 2008-09-22T03:21:49.540 に答える