主题 : mini2440 sd gadget 复制链接 | 浏览器收藏 | 打印
2440
级别: 侠客
UID: 34266
精华: 0
发帖: 68
金钱: 350 两
威望: 70 点
综合积分: 136 分
注册时间: 2010-12-13
最后登录: 2015-07-01
楼主  发表于: 2011-07-28 20:57

 mini2440 sd gadget

下午终于可以实现mini2440当做sd卡用了,记录一下 ,2.6.32.2内核
1.编译内核时,关键设置,如下,编译成模块


2.将生成的g_file_storage.ko考到板子上,加载模块
[root@FriendlyARM /]# cd /lib/modules/2.6.32.2-FriendlyARM/
[root@FriendlyARM 2.6.32.2-FriendlyARM]# ls
g_file_storage.ko modules.dep.bb
[root@FriendlyARM 2.6.32.2-FriendlyARM]# modprobe g_file_storage file=/dev/sdcard stall=0 removable=1
g_file_storage gadget: File-backed Storage Gadget, version: 20 November 2008
g_file_storage gadget: Number of LUNs=1
g_file_storage gadget-lun0: ro=0, file: /dev/sdcard
说明:
首先板子本身要能识别读写sd卡,当然友善的板子已经帮我们搞好可以支持。然后再考虑在pc上对板载sd卡读写。
/dev/sdcard是sd卡的设备文件,插上sd卡板子会自动将/dev/sdcard挂载到/sdcard, 通过一个qtopia插件实现。
/dev/mmcblk0也是sd卡的设备文件,此处modprobe 指定他也行,但是在pc上操作sd卡之后,在板子上 ls /sdcard,看不到目录即时更新
3.用usb线连接上电脑,出现一下信息
[root@FriendlyARM 2.6.32.2-FriendlyARM]# g_file_storage gadget: full speed config #1
并在pc上多出一个盘符
4.在pc上操作sd卡,读写小文件,还可以,但是大文件出现目录太深的错误
修改s3c2410_udc.c


另一处,同一个函数里


修改file_storage.c


重新编译内核和模块......
现在sd卡读写就比较正常了
参考资料
http://wenku.baidu.com/view/ae88b33c0912a216147929eb.html
[ 此帖被shift在2011-10-13 15:41重新编辑 ]
级别: 新手上路
UID: 19031
精华: 0
发帖: 14
金钱: 70 两
威望: 14 点
综合积分: 28 分
注册时间: 2010-04-15
最后登录: 2014-06-06
1楼  发表于: 2011-08-02 20:42
楼主请把你的配置文件(.config)贴到附件里好吗?

我用的也是2.6.32.2内核,mini2440板,做到第3步以前的显示内容和你的完全一样。

usb接电脑后,pc没有任何反应,更没有新盘符出现,linux的控制台也无任何变化内容显示。

友善的两个发行版本都试验过了(linux-2.6.32.2-mini2440-20100921和linux-2.6.32.2-mini2440-20110413)
2440
级别: 侠客
UID: 34266
精华: 0
发帖: 68
金钱: 350 两
威望: 70 点
综合积分: 136 分
注册时间: 2010-12-13
最后登录: 2015-07-01
2楼  发表于: 2011-08-02 21:59
你试下先进入norflash的uboot,然后选择b  boot the system,这样进入linux
再去加载模块
因为我下载内核的时候是进入uboot选择z download zimage to ram,然后选择g boot linux from ram ,
所以是在进入linux之前曾路过uboot,这样windows会识别gadget设备
如果不路过uboot,windows貌似不买账,这个问题额也遇到过
级别: 新手上路
UID: 19031
精华: 0
发帖: 14
金钱: 70 两
威望: 14 点
综合积分: 28 分
注册时间: 2010-04-15
最后登录: 2014-06-06
3楼  发表于: 2011-08-02 22:43
谢谢楼主这么快就回复,按照你说的办法,还真tnnd管用!

问题似乎变得更玄妙了,要是开发出来的产品要求用户按个“B”,我估计他会在前面加个“S”
级别: 新手上路
UID: 19031
精华: 0
发帖: 14
金钱: 70 两
威望: 14 点
综合积分: 28 分
注册时间: 2010-04-15
最后登录: 2014-06-06
4楼  发表于: 2011-08-02 22:51
这么看来,似乎还差了某个初始化步骤没做,而正好uboot做过。
级别: 新手上路
UID: 19031
精华: 0
发帖: 14
金钱: 70 两
威望: 14 点
综合积分: 28 分
注册时间: 2010-04-15
最后登录: 2014-06-06
5楼  发表于: 2011-08-07 23:27
问题原因找到了,mimi2440的USB_EN用的是C5端口,把C5拉高就全通了。

经过测试,发现有一点点遗憾:
比如sd卡里面A文件,里面存了“123”,
开机,接通pc,pc看见的是A里面有“123”,
之后,arm板操作A文件末尾添加“456”,
但pc机那里看到的还是“123”,即使重新插拔也一样看不到新内容。
如果你把sd卡取下来看,A文件里面存的内容是“123456”
2440
级别: 侠客
UID: 34266
精华: 0
发帖: 68
金钱: 350 两
威望: 70 点
综合积分: 136 分
注册时间: 2010-12-13
最后登录: 2015-07-01
6楼  发表于: 2011-08-09 19:52
级别: 新手上路
UID: 40671
精华: 0
发帖: 12
金钱: 60 两
威望: 12 点
综合积分: 24 分
注册时间: 2011-03-21
最后登录: 2014-11-30
7楼  发表于: 2013-08-31 00:47
但是在pc上操作sd卡之后,在板子上 ls /sdcard,看不到目录即时更新

楼主解决了这个问题了吗?怎么解决呢?