usb_bulk_msg传输失败的问题

WInScar WInScar 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
大家好。
我的问题是这样的:

我将板子的端口设置设置成如下情况:

pipe 0 : bulk endpoint 2 , out , maxpacketsize 0x200

我在驱动程序中,我的部分代码如下:


BulkWriteData *bwd = (BulkWriteData *)arg;
int retval;
int *actual_length = (int *)kmalloc(sizeof(int));

struct usb_ezusb *dev = (struct usb_ezusb *)filep->private_data;

printk(KERN_INFO "Begin to send bulk msg !\n");
retval = usb_bulk_msg(dev->udev,
usb_sndbulkpipe(dev->udev,bwd->pipeNum),
bwd->data,
bwd->dataLength,
actual_length,
0
);


其中,BulkWriteData是我自己设计的结构体,pipeNum的值为2。

在这种情况下,我写应用程序向板子发送数据,用的是ioctl函数。每次retval的返回值-108,并且用lsusb命令会发现usb hub 2.0不见了。实在疑惑不解,请高手赐教。
同时,我改变pipeNum的值,则会返回-22错误,这说明pipeNum为2应该是正确的吧?根据板子的设置。

诚请大家帮忙,看看问题出在哪里。
...全文

相关推荐

微软RNDIS协议

#### 五、RNDIS到USB的映射RNDIS协议通过USB总线实现网络功能,需要考虑与USB标准的兼容性问题。

kilocolor

STM32H7实现PCAN-USB Pro设备端驱动:USB枚举、批量传输与CAN桥接实战

USB设备端驱动开发常让工程师困惑,尤其当需要复刻PCAN-USB Pro这类商业CAN分析仪时,涉及USB描述符、端点调度、设备枚举和CAN数据流转等多层技术。STM32H7凭借Cortex-M7高主频、内置USB OTG HS与双FDCAN控制器,成为实现高速USB-CAN桥接的理想平台。理解USB枚举机制、批量传输原理和端点FIFO配置,是让设备被主机正确识别的关键。通过HAL库与中间件搭建固件框架,实现CAN报文与USB数据的双向打包转发,并优化中断优先级、DMA与Cache一致性,可稳定实现高速数

weixin_33901641

winform 检测USB设备的拔插

if (m.Msg == WM_DEVICECHANGE) { // 处理设备变化 switch (m.WParam.ToInt32()) { case DBT_DEVICEARRIVAL: // 设备插入

indexcqq

USBHost_driver-levelup

USBHost API使用:Linux提供了丰富的USBHost API供开发者使用,如`usb_get_device_list()`, `usb_claim_interface()`, `usb_bulk_msg

北京动点飞扬软件

libusb 源码(win32 & linux USB开发)

驱动开发向来是内核开发中工作量最多的一块,随着USB设备的普及,大量的USB设备的驱动开发也成为驱动开发者手头上做的最多的事情。本文主要介绍Linux平台下基于libusb的驱动开发,希望能够给从事L

rendao0563
评论 4
收藏 已收藏
分享
返回顶部
WInScar
Linux_Kernel 4,469 成员 17,458 内容