2

VxWorksを使用する場合、リアルタイムプロセスからメモリマップドI/Oデバイスにアクセスしようとしています。
RTPにはメモリ保護があるので、どのようにしてI / Oデバイスにアクセスできますか?

4

1 に答える 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 に答える