selfkidding
驱动牛犊
驱动牛犊
  • 注册日期2007-08-29
  • 最后登录2007-09-03
  • 粉丝0
  • 关注0
  • 积分40分
  • 威望5点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
阅读:1001回复:2

请教usb等时传输问题

楼主#
更多 发布于:2007-08-29 20:11
最近在VxWorks下做一个ov511摄像头的驱动,主要是对linux下的驱动(即文件ov511.c和ov511.h)进行改写。现在设备已经能正确设置,能正确设置interface,建立isoc管道也没错,在向管道发出USB_IRP报老是出错,返回S_usbHcdLib_STRUCT_SIZE_FAULT,以下是我的USB_IRP初始化代码,请板上高手看看。

#define BUF_SIZE 961*100

char *pBuf = OSS_MALLOC(BUF_SIZE);
pIrp->irpLen = sizeof(USB_IRP);
pIrp->flags = USB_ISOC_ASAP;
pIrp->transferLen = BUF_SIZE;
pIrp->userCallback = pMyCallback;
pIrp->bfrCount = 1;
pIrp->bfrList[0].pid = USB_DIR_IN;
pIrp->bfrList[0].bfr = pBuf;
pIrp->bfrList[0].bufLen = BUF_SIZE;

在回调函数pMyCallback中pIrp->result即返回S_usbHcdLib_STRUCT_SIZE_FAULT错误,这到底是怎么回事啊。进行isoc传输还要注意些什么,往高手指教。谢谢!
chenzctyb
驱动牛犊
驱动牛犊
  • 注册日期2007-08-31
  • 最后登录2007-08-31
  • 粉丝0
  • 关注0
  • 积分90分
  • 威望10点
  • 贡献值0点
  • 好评度9点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2007-08-31 14:15
ding
擅长复杂的方法做复杂的事情
selfkidding
驱动牛犊
驱动牛犊
  • 注册日期2007-08-29
  • 最后登录2007-09-03
  • 粉丝0
  • 关注0
  • 积分40分
  • 威望5点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2007-09-03 16:06
问题已解决,原来是
pTempIrp->bfrList[0].pid = USB_DIR_IN;
应该为:
pTempIrp->bfrList[0].pid = USB_PID_IN;

This is really stupid!
游客

返回顶部