Chinaunix首页 | 论坛 | 博客
  • 博客访问: 79902
  • 博文数量: 19
  • 博客积分: 325
  • 博客等级: 一等列兵
  • 技术积分: 197
  • 用 户 组: 普通用户
  • 注册时间: 2012-10-29 11:51
文章分类

全部博文(19)

文章存档

2013年(1)

2012年(18)

我的朋友

分类: LINUX

2012-11-23 14:37:02

1. 在probe中创建URB
  - struct urb *usb_alloc_urb(int iso_packets, gfp_t mem_flags)
  - void *usb_buffer_alloc(struct usb_device *dev, size_t size, gfp_t mem_flags, dma_addr_t *dma)
  - static inline void usb_fill_int_urb(struct urb *urb,
   struct usb_device *dev,
   unsigned int pipe,
   void *transfer_buffer,
   int buffer_length,
   usb_complete_t complete_fn,
   void *context,
   int interval)
2. 将URB分配给USB设备的指定endpoint
3. 在需要往endpoint写数据时,将URB提交到USB core
  - int usb_submit_urb(struct urb *urb, gfp_t mem_flags)
4. USB core将URB提交到特定的USB host controller
5. USB host controller发送到USB设备
6. 发送完成后,USB host controller通过回调通知到USB设备驱动

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