新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > Linux USB gadget设备驱动解析(4)--编写一个gadget驱动

Linux USB gadget设备驱动解析(4)--编写一个gadget驱动

作者:时间:2012-08-06来源:网络收藏

.disconnect = zero_disconnect,

本文引用地址:http://www.eepw.com.cn/article/148655.htm

//.suspend = zero_suspend, //不考虑电源管理的功能

//.resume = zero_resume,

.driver = {

.name = (char *) shortname,

.owner = THIS_MODULE,

},

};

MODULE_AUTHOR(David Brownell);

MODULE_LICENSE(GPL);

static int __init init(void)

{

return usb__register_driver(zero_driver); //注册,调用bind绑定到控制器

}

module_init(init);

static void __exit cleanup(void)

{

usb__unregister_driver(zero_driver); //注销,通常会调用到unbind解除绑定, //在s3c2410_udc.c中调用的是disconnect方法

}

module_exit(cleanup);

三、总结

时间关系,上面的代码没有做太多的优化,但功能都是测试通过。希望能给大家的学习提供一点帮助。最后想谈谈学习的一些方法。

驱动比较难掌握,主要原因是:

复杂的协议,包括USB基本协议、类规范等

控制器包括主机端、设备端。控制器本身相对复杂,其对应的主、从控制器驱动比较复杂

Hub功能及驱动、管理程序比较复杂

需要专业的硬件测试工具,硬件信号调试较困难

主、从端上层驱动程序本身不难,但由于对硬件不理解,及不好测试程序。所以往往望而却步。 我觉得学习USB驱动前应该有比较好的思路,个人建议可以按下面的过程学习

熟悉USB协议。不用看完所有的协议,重点关注一些概念、配置过程及数据包格式

linux操作系统文章专题:linux操作系统详解(linux不再难懂)

linux相关文章:linux教程



上一页 1 2 3 4 5 下一页

评论


相关推荐

技术专区

关闭