vxWorks并行端口write()失败

时间:2011-12-16 15:44:41

标签: port parallel-processing vxworks lpt

我正在尝试使用vxWorks lptDrv驱动程序首次写入并行端口,但是对write()的调用似乎总是返回-1。这是我正在使用的代码:

#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并打开返回没关系。我目前没有将硬件插入并行端口,因此难以测试,但我认为这不会导致写入失败。

有关更多信息,我可以调用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

1 个答案:

答案 0 :(得分:0)

内核配置的端口号与BIOS不同,因此我更新了内核配置以匹配。然后显示statusReg设置为0x78,表示1.端口忙,2。缺纸错误。由于没有插入并行端口,因此默认状态为0x78。我仍然没有硬件来测试端口,但风河支持在没有插入设备的情况下看到类似的结果,然后在连接到端口的东西时进行了纠正。 感谢Benoit的回应让我再次感动。