读书人

自娱自乐六之Linux gadget驱动5(自编

发布时间: 2013-10-08 16:32:36 作者: rapoo

自娱自乐6之Linux gadget驱动5(自编gadget驱动,包涵与之通讯的主机usb驱动,已调试通过)

这个代码调试,你首先要保证你的udc驱动没用问题,这个有些矛盾,应为我本来要用gadget驱动来调试udc驱动,结果反过来了。

这是在zero基础改的,大概的改动

1. 去掉loop。

2. sink的读写去掉了。

3. 增加了一个misc,通过fs去读写数据。

4. setup的特殊请求去掉了。

之前的文章已经把大部分的东西说完了,所以代码没有太多的注释。请结合之前的文章阅读。

我用了一个完成量,在没有数据时,读可能会死在那。这个可以优化一下,我就不做了。

还有就是主机是虚拟机的usb,linux-2.6.18(无耻的告诉你就是usb-skeleton驱动),gadget是板子的,linux-3.2.36


gadget_transfer.c //linux-3.2.36


有些答应打印是我加的,不要管,还有我的内核usb这块什么都没选,所以加载的多。


自娱自乐六之Linux gadget驱动5(自编gadget驱动,包涵与之通讯的主机usb驱动,已调试通过)

有gadget_transfer设备文件

Windows的提示

自娱自乐六之Linux gadget驱动5(自编gadget驱动,包涵与之通讯的主机usb驱动,已调试通过)

虚拟机有0ff0:0ff0 usddevice

自娱自乐六之Linux gadget驱动5(自编gadget驱动,包涵与之通讯的主机usb驱动,已调试通过)


在虚拟机装载

自娱自乐六之Linux gadget驱动5(自编gadget驱动,包涵与之通讯的主机usb驱动,已调试通过)

板子提示

自娱自乐六之Linux gadget驱动5(自编gadget驱动,包涵与之通讯的主机usb驱动,已调试通过)

虚拟机

自娱自乐六之Linux gadget驱动5(自编gadget驱动,包涵与之通讯的主机usb驱动,已调试通过)


有个skel0 设备文件

虚拟机执行

如果板子不动作,最后

自娱自乐六之Linux gadget驱动5(自编gadget驱动,包涵与之通讯的主机usb驱动,已调试通过)

现在执行cat /dev/skel0

板子执行

自娱自乐六之Linux gadget驱动5(自编gadget驱动,包涵与之通讯的主机usb驱动,已调试通过)


虚拟机

自娱自乐六之Linux gadget驱动5(自编gadget驱动,包涵与之通讯的主机usb驱动,已调试通过)

反过来

板子读,虚拟机写

自娱自乐六之Linux gadget驱动5(自编gadget驱动,包涵与之通讯的主机usb驱动,已调试通过)


自娱自乐六之Linux gadget驱动5(自编gadget驱动,包涵与之通讯的主机usb驱动,已调试通过)


当你拔去usb是你会发现/dev/skel0消失

基本就这样,下期会回到我的udc驱动上来,下期再见!


读书人网 >UNIXLINUX

热点推荐