Chinaunix首页 | 论坛 | 博客
  • 博客访问: 311307
  • 博文数量: 101
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 774
  • 用 户 组: 普通用户
  • 注册时间: 2018-10-15 14:13
个人简介

搭建一个和linux开发者知识共享和学习的平台

文章分类

全部博文(101)

文章存档

2024年(15)

2023年(24)

2022年(27)

2019年(8)

2018年(27)

分类: LINUX

2022-09-29 16:59:40

urb=usb_alloc_urb(npackets,GFP_KERNEL);

urb->dev=field_uvc_udev;
urb->context=NULL;
urb->pipe=usb_rcvisocpipe(field_uvc_udev,field_uvc_bEndpointAddress);
urb->transfer_flags=URB_ISO_ASAP|URB_NO_TRANSFER_DMA_MAP;
urb->interval=1;
urb->transfer_buffer=field_uvc_queue.urb_buffer[i];
urb->transfer_dma=field_uvc_queue.urb_dma[i];
urb->complete=field_uvc_video_complete;
urb->number_of_packets=npackets; //要传输的数据次数
urb->transfer_buffer_length=size; //总共的数据量

 usb_submit_urb(urb,GFP_ATOMIC);


struct usb_device *dev    ---- urb所发送的目标设备
unsigned int pipe    ---- 管道号码,记录了目标设备的端点及管道的类型
unsigned int transfer_flags    ---- 启动DMA时,传输标志
 int interval    ---- urb被调用的间隔
void *transfer_buffer    ---- 数据接收和发送的缓冲区
u32 transfer_buffer_length    ---- 数据长度
 void *context    ---- 上下文,用户自定义
usb_complete_t complete    ---- urb完成回调函数入口
int status    ---- 当一个urb把数据送到设备时,这个urb会由系统返回给驱动,并调用驱动的urb完成回调函数,status记录这次数据传输的状态


阅读(696) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~