PC和移动设备通过USB存取SD存储卡(mini2440上实现)

来源:互联网 发布:c语言入门到精通视频 编辑:程序博客网 时间:2024/05/17 20:36

/*******************************************************

原文地址:http://hi.baidu.com/deep_pro/item/370abc23dbd8ea0d76272c32
*********************************************************/

这个也算是手机、MP4、DV等的基本功能了,通过插一根USB识别手机为一个移动存储设备(U盘),然后向其中写入数据,这样PC和移动设备就能实现数据交换了。下载个桌面背景手机铃声,或者拷几部片子去打枪都很方便。

这个方面,我就觉得wm手机不好了,要在pc上装一个activesync,还是Linux方便。

参照前一篇 把arm开发板做成USB网卡(RNDIS /Ethernet Gadget)
http://hi.baidu.com/deep_pro/item/ec40c00ad48b8ef7a010340f

编译内核为
2.6.29内核 
Device Drivers ---> USB support --->   USB Gadget Support ---> 
其中 USB Peripheral Controller 选 S3C2410 USB Device Controller
然后再选一个内核自带的Gadget驱动程序来做演示,
这里是 File-backed Storage Gadget,需要传入参数,给一个M


注意内核zImage大小不要超过2M(kangear注:现在的mini2440不用考虑这个问题,已经是5M),mini1440默认分区内核只有2M,不需要的都删了吧,如无线什么的

make之后烧写新内核,同时把新生成的/driver/usb/Gadget/g_file_stroge.ko 想办法复制到开发板的文件系统中去。

插入sd卡,ls /dev|grep mmc发现识别为
mmcblk0

加载驱动:insmod g_file_stroge.ko file=/dev/mmcblk0 stall=0 removable=1
插拔一下USB slave口的USB接头,就会弹出发现新移动存储设备的框框
如果插入的sd卡已经有fat格式分区,就不需要格式化了,二者之间可以互访,
Linux设备也不需要关机什么的

mount -t vfat /dev/mmcblk0 /sdcard  
相信mini2440已经做了这一步了