[ 530.420623] usb 5-1: pl2303_read_int_callback - usb_submit_urb failed with result -19 [ 530.666674] pl2303 ttyUSB0: pl2303 converter now disconnected from ttyUSB0 [ 530.670750] pl2303 5-1:1.0: device disconnected [ 531.014372] usb 5-1: new full-speed USB device number 3 using sw-...
//返回值 : 如果成功分配足够内存给 urb , 返回值为指向 urb 的指针. 如果返回值是 NULL, 则在 USB 核心中发生了错误, 且驱动需要进行适当清理 如果驱动已经对 urb 使用完毕, 必须调用 usb_free_urb 函数,释放urb。函数原型: void usb_free_urb(struct urb *urb); //struct urb *urb : 要释放的 stru...
然后调用usb_submit_urb函数想目标端口提交写入的数据。 read函数与write函数稍有不同在于,read并没有用urb将数据从设备传送到驱动程序,而是用usb_bulk_msg函数代替,所以read能够不需要创建urbs和操作urb函数的情况下来读取设备数据到驱动程序,或者发送数据给设备。当对usb设备进行一次读或者写是,usb_bulk_msg函数是非...
struct list_head urb_list;//list pointer to all active urbs 双向指针,用于将此USB联结到处于活动的URB双向链表中,在内核结构模型中很多地方都有到这个结构体,这个结构体有两个指针,一个指向下一个 list_head结构体,一个指向前一个list_head结构体,在进程列表,工作队列中都用到这个结构体。 struct urb *nex...
如果usb_submit_urb()函数调用成功,即URB的控制权被移交给USB核心,该函数返回0,否则返回错误号。 4)提交由USB核心指定的USB主机控制器驱动。 5)被USB主机控制器处理,进行一次到USB设备的传送。 第4)~5)步由USB核心和主机控制器完成,不受USB设备驱动的控制。
int usb_submit_urb(struct urb *urb, int mem_flags); mem_flags有几种:GFP_ATOMIC、GFP_NOIO、GFP_KERNEL,通常在中断上下文环境我们会用GFP_ATOMIC。 当我们的卡车运货之后,系统会把它调回来,并调用urb完成回调函数,并把这辆车作为函数传递给驱动程序。我们应该在回调函数里面检查status字段,以确定数据的成功...
5. result = usb_register(&skel_driver); 6. if (result) 7. err("usb_register failed. Error number %d", result); 8. 9. return result; 10. } 11. 12. static void __exit usb_skel_exit(void) 13. { 14. /* deregister this driver with the USB subsystem */ ...
(14, USBDEVFS_SUBMITURB, 0x1de3058) = 0 poll([{fd=8, events=POLLIN}, {fd=10, events=POLLIN}, {fd=14, events=POLLOUT}], 3, 60000) = 1 ([{fd=14, revents=POLLOUT}]) ioctl(14, USBDEVFS_REAPURBNDELAY, 0xbeaf1810) = 0 timerfd_settime(10, 0, {it_interval={tv_sec=0, tv...
(2) 在 USB 设备驱动程序中调用 IoBuildDeviceIoControlRequest 函数,为该URB 创建一 个 IRP,此IRP 的主功能代码为IRP_MJ_INTERAL_DEVICE_CONTROL,IOCTL 代 码为IOCTL_INTERNAL_USB_SUBMIT_URB; (3) 调用IoCallDriver 函数将该IRP 发送到USB 总线驱动程序; (4) 在USB 总线驱动程序处理结束后,返回必要的信息给...
2.2.9 TS_URB Structures 2.2.10 TS_URB_RESULT Structures 2.2.11 USB_DEVICE_CAPABILITIES 2.2.12 USB IO Control Code 2.2.13 USB Internal IO Control Code 2.2.13 USB Internal IO Control Code 2.2.13.1 IOCTL_TSUSBGD_IOCTL_USBDI_QUERY_BUS_TIME 3 Protocol Details 4 Protocol Examples 5 S...