自己对usb otg gadget的理解

来源:互联网 发布:科学数据geodata 编辑:程序博客网 时间:2024/05/30 23:09

http://www.armadeus.com/wiki/index.php?title=USB_Gadget

http://e2e.ti.com/support/embedded/linux/f/354/t/106554.aspx

1.usb 有host和otg之分,host只能当主控来用,即去识别u盘;

  而otg既可以当主控来用,也可以当从来用。

  当otg当主的时候,就主动去之别u盘;当otg当从的时候,有以下几种种功能:

                    1.打开 Serial Gadget (with CDC ACM and CDC OBEX support) ,这个时候选用 mv_gadget.c   pxa_comp.c   serial.c  ,把核心盘模拟成usbclient,把设备当成一个串口来用。 会在/dev/下生成一个设备节点,/dev/ttyGS0.通过映射之后,用getty /dev/ttyGS0 115200 ,这样就可以在pc上看到我们的串口,其实就是把我们的串口映射到pc上;

另外,当我们把usbmMode设为client之后,就可以在pc上安装驱动,这样就会在pc端被模拟成串口,这个时候就可以用串口工具进行通讯了。 

       设备端建议采用minicomm测试,而不是用cat

                  2.打开File-backed Storage Gadget ,这个时候选择mv_gadget.c  pxa_comp.c   file_storage.c,这个时候,其实是把核心板模拟成upan,具体做法如下;

                             1.生成文件 dd if=/dev/zero of=./vfat.bin bs=1M count=10
                             2.格式化./newfs_msdos -F 32 ./vfat.bin
                             3.建立目录 mkdir vfat_mount
                             4.挂载目录mount -t vfat vfat.bin ./vfat_mount/    
                             5.加载驱动 insmod g_file_storage.ko file=./vfat.bin stall=0 removable=1
                             6.cd vfat_mount  ,写一个文件,sync  ,插拔usb先,pc上可以看到实时看到设备上写的新东西。
                             7.电脑上些东西 ,设备端sync ,然后 umount ./vfat_mount/   mount -t vfat ./vfat.bin ./vfat_mount/,这样就可以在设备端实时看到pc端更新的东西

                  目前在marvel166上面就是做了这两个功能。

原创粉丝点击