vxWorks lptDrvドライバを使用して初めてパラレルポートに書き込もうとしていますが、write()の呼び出しで常に-1が返されるようです。私が使用しているコードは次のとおりです。vxWorksパラレルポートwrite()エラー
#define PARALLEL_PORT "/lpt/0"
/* Create a device for the parallel port */
lptDevCreate(PARALLEL_PORT,0)
/*open the parallel port*/
parallelPortFD = open(PARALLEL_PORT, O_CREAT|O_WRONLY, 0))
LOCAL UINT32 watchdogBit = 0x01;
if (write(parallelPortFD, (char*) watchdogBit, sizeof(UINT32)) == -1)
{
/* Always hits this block */
}
lptDevCreateとopen returnはどちらも大丈夫です。私は現在、パラレルポートにハードウェアを接続していないので、テストするのが難しくなりますが、書き込みに失敗するとは思われません。いくつかの詳細情報については
、私はlptShow()を呼び出すことができましたが、私は私が探しているかわからないんだけど:
controlReg = 0xff
statusReg = 0xff
created = TRUE
autofeed = TRUE
inservice = FALSE
normalInt = 0
defaultInt = 0
retryCnt = 1
busyWait (loop) = 10000
strobeWait (loop) = 10000
timeout (sec) = 1
intLevel (IRQ) = 7
vxWorksのどのバージョン、ボード&BSPですか?これらはハードウェアの問題を扱う際に不可欠な要素です。ショールーチンを見ると、あなたがポートハードウェアと話しているように見えず、割り込みが接続されていない。 lptドライバのソースコードを見てください。 – Benoit
クックフォレストボード上のIntel Core 2 BSPを使用するvxWorks 6.7おもう。私はコードから自分の情報を引き出していますが、初期のハードウェア/ BSPセットアップ(やり方は分かりません)はしませんでした。私は1つの問題を修正したと信じている。カーネルの設定にはBIOSとは異なるポート番号があるので、カーネルの設定を一致させるように更新しました。私は "controlReg = 0xe"と "statusReg = 0x78" lptShow()を行うときに表示されます。しかし、私はまだwrite()を呼び出すときにエラーが発生します。 – bjsample