由于工作的需要,实现板卡通过Micro USB线与PC连接,作为PC的 外设存储,PC拷贝数据到板卡中,或者把板卡中的数据通过USB线拷贝到PC端,实现数据的交互,板卡采用Linux操作系统,笔者采用的是AM335X 处理器平台:
开发过程中修改文件顺序记录如下:
如果板卡作为PC的外设,通过USB线连接,那么板卡处于USB Device工作模式,也即是USB Gadget工作模式,这种模式下常见的功能是PC识别板卡为U盘(USB Gadget Mass Storage Class),双方交换数据,还有板卡通过PC上网(USB Gadget CDC),板卡端虚拟出一个网络设备。本篇文章主要介绍板卡作为PC的外部存储设备。
1. Linux Kernel支持usb gadget 设备中的MSC
MSG即 Mass Storage Class.
需要把该驱动配置为模块加载方式,因为在文件系统中要灵活识别SD卡,或者NandFlash,或者Ramdisk为 PC的一个外设。
内核配置路径:
make menuconfig -> Device Driver-> usb support -> usb gadget support
注意: MiniUSB 口需要配置成USB OTG模式,或着USB Device工作模式,一般在板级文件进行USB工作模式的配置。
2 配置完成后,make uImage编译内核,然后 make modules编译模块,在 /driver/usb/gadget/下面形成驱动模块 g_mass_storage.ko文件,把这个文件拷贝到文件系统的 “/lib/modules/3.2.0/kernel/drivers/usb/gadget/” 目录下面, modprobe 命令会在lib/modules路径下面搜索要加载的驱动模块库文件。
3 PC识别板卡中的SD卡:
在超级终端里面执行:
modprobe g_mass_storage file=/dev/mmcblk0 removable=1
以上命令加载gadget msc驱动,传递SD卡为模块参数,使用