微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于USB设备的Linux网络驱动程序开发

基于USB设备的Linux网络驱动程序开发

时间:05-21 来源:互联网 点击:

求的URB

dev->udev,

usb_sndbulkpipe(dev->udev, 2), //指定写端点

skb->data,

512,//count,

write_bulk_callback, //使用write_bulk_callback做为URB的回调函数。

dev

);

if((result = usb_submit_urb(dev->tx_urb, GFP_ATOMIC))){ //将URB发送给

…… //USB Core

}

写请求URB完成时,write_bulk_callback回调函数被内核调用。该函数判断写请求URB是否成功完成。根据URB的完成情况,驱动程序需要更新网络接口的相应统计数据,例如成功/失败发送包的数目等。

5. 小结

本文从工程应用出发,介绍了Linux的体系结构及其网络子系统,并结合USB设备在Linux下的访问机制,研究了USB驱动程序实现异步通知的方法,并给出了USB网络驱动程序的设计框架和实例。在实际测试中,本文分析的驱动程序运行稳定,并且达到了预期的网络传输速度。

参考文献:

[1] J. Corbet, A. Rubini, and G. Kroah-Hartman. Linux Device Drivers, Third Edition. 2005, O'Reilly Media, Inc.

[2]毛德操 胡希明. Linux内核源代码情景分析. 2001. 浙江大学出版社.

[3]Daniel P. Bovet, M. Cesati. Understanding the Linux Kernel, Second Edition. 2002, O'Reilly Media, Inc.

[4]李少甫 何小庆 江文瑞.The Development of Embedded Wireless LAN Application System Based on MontaVista Linux.微计算机信息. 2002年11期49-51

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top