- 博客(6)
- 资源 (4)
- 收藏
- 关注
原创 自娱自乐6之Linux gadget驱动5(自编gadget驱动,包涵与之通讯的主机usb驱动,已调试通过)
这个代码调试,你首先要保证你的udc驱动没用问题,这个有些矛盾,应为我本来要用gadget驱动来调试udc驱动,结果反过来了。这是在zero基础改的,大概的改动1. 去掉loop。2. sink的读写去掉了。3. 增加了一个misc,通过fs去读写数据。4. setup的特殊请求去掉了。之前的文章已经把大部分的东西说完了,所以代码没有太多的注释。请结合之前的文章阅读。
2013-08-29 15:13:44 4525 4
原创 自娱自乐5之Linux gadget驱动4(接受发送,complete函数,setup函数)
f_sourcesink.c里面在执行set_alt方法后就调用source_sink_start_ep(),这里面就有usb_ep_queue()可以认为开始进行数据交互。后期我要改一下这个过程,通过一个简单的misc驱动去分开调用接受发送我们现在看static int source_sink_start_ep(struct f_sourcesink *ss,boolis_in)
2013-08-28 17:08:45 3922
原创 自娱自乐4之Linux gadget驱动3(bind过程)
bind和字符串描述符一样也是有多级关系,首先说一下usb很基础的关系一个设备可能有多个配置一个配置可能有多个接口一个接口可能有多个端点或设置还记得我在自娱自乐2中说的的结构体吧我们先变通一下struct usb_function 相当于接口struct usb_configuration 相当于配置struct usb_composite_dev 相当于设备b
2013-08-28 10:00:24 2586
原创 自娱自乐3之Linux gadget驱动2(zero中的字符串描述符)
这个gadget驱动我会一部分一部分说(你可以对着zero.c看),最后给个完整的。今天说的是字符串描述符,struct usb_gadget_strings我之前说是字符串描述符并不准确,真正的描述符是struct usb_string_descriptor上一篇说的结构体中有很多都包涵了struct usb_gadget_strings,它们是struct usb_functi
2013-08-27 14:15:59 3342 1
原创 自娱自乐2之Linux gadget驱动1(linux-3.2.36的composite)
上期说要用之前的模板写udc驱动。事实我已经做了,等待测试。当我要测试时,我发现还是要用gadget驱动去时udc驱动。虽然有现成的,但是你如果搞不懂的话,出问题你根本不知道在哪。所以调试udc驱动之前我们要看gadget驱动。我看了linux-2.6.10没有composite的东西。还是直接操作struct usb_gadget_driver。那已经是过去式了。现在我用的linux-3.2
2013-08-17 17:43:21 2561
原创 自娱自乐1之Linux UDC驱动(形式模板)
首先,我不是做驱动的开发人员。所以只能用自娱自乐来表示我的行为。我不知道udc和gadget驱动是不是冷门的驱动,资料真是不多。我之前买了一本书,上面说到这些,就教你如何调试已写好的驱动。这样也可以写书,太坑了吧!我随便从网上搜搜都能写的比他好。难道现在的育人机构为了钱都变成了坑人机构。我以前就希望把自己写过的驱动总结成一个模板,让人能直观的看出linux提供的接口要我们做什么甚至怎么做。
2013-08-14 11:55:14 4181 1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人