- 新内核已经把usbfs废弃掉了,udev使用/dev/bus/usb代替
- 使用testusb必须sudo ./testusb
- composite框架:
.composite.c重复的代码
.f_xyz.c可重用的函数实现(f_sourcesink.c)
.g_xyz.c是写死的,函数,配置,身份,参数(你要是用hid的话,直接用g_hid.c) - 没有端口那就是设备没有枚举成功,
熟悉枚举协议,用bushound看一下枚举过程,走到哪一步了
协议写的都是0 - 自己改驱动g_xyz.c或者通过functionfs写驱动
- zero.c可以自己注册字符设备或misc设备
- usb的udc应该自己支持dma
- aio_multibuff.c里的双缓存,让读或写的请求排队。
当主机正在操作一个请求时,另外一个请求在准备。当第二个transfer发生时,ffs的程序处理数据并让另一个请求排队。 - dnw.c 和sam3u_benchmark.c有最后测速的功能
- 使用libcomposite必须先选中伪文件系统
- 以前写的一个PC和开发板USB通讯的,PC上直接用usb-socket.c的例子就行,开发板就得自己写驱动了,最终还是字符设备驱动。两边打开设备节点进行读写就OK了,测试没问题。
- 只能在mkdir有权限的情况下才能./configure,一个用户