USB Host
主设备驱动
USB存储设备(Storage)
USB Gadget
USB File Storage Gadget
- USB File Storage Gadget on DavinciDSP: 一篇关于如何在Davinci开发板上使用CF卡作为USB存储设备的wiki
- File-backed Storage Gadget on Blackfin Platform: 如何使用IDE硬盘,RAMDISK和NAND Flash作为USB存储设备
- 内核中的源代码: drivers/usb/gadget/file_storage.c
在SMT255中使用USB File Storage Gadget
定义udc_info 结构体如下:
static struct pxa2xx_udc_mach_info smt255_udc_info __initdata = { .gpio_vbus = SMT255_GPIO_UDC_GPIOn, .gpio_pullup = SMT255_GPIO_UDC_GPIOx, };
并在初始化代码中注册设备:
pxa_set_udc_info(&smt255_udc_info);
- 内核编译选项
- make menuconfig 中依次使能:CONFIG_USB_SUPPORT=y -> CONFIG_USB_GADGET=y -> CONFIG_USB_FILE_STORAGE=m
- 使用块设备
- 可以通过USB连接块设备
- dd if=/dev/zero of=usb.disk bs=1M count=32
- mkfs.vfat usb.disk
- 连接 USB 到主机
- modprobe g_file_storage file=usb.disk stall=0
- 此时在主机会自动挂载该U盘,可以 copy 文件试一试
- mount -o loop -t vfat usb.disk /mnt
- 使用MMC/SD卡
- modprobe g_file_storage file=/dev/mmcblk0p2 stall=0
- 即可。
- 需要注意的是,如果根文件系统也在 /dev/mmcblk0p2 上,则此时从主机往该分区写的数据无法看到,需要重启才可以看到。