最近在做2410的usb mass storage gadget驱动。g_file_storage.ko挂载的是开发板上的flash的一块分区(insmod g_file_storage.ko file=/dev/mtdblock6 stall=0 removable=1)。盘符出来了,也可以读写了,不过发现了一个奇怪的bug~
这个bug是这样的:当我在板子的flash上读写整个的文件(比如copy,delete)没问题。建立一个doc或者是bmp之类的文件,修改,保存,也没问题。问题出在txt文本文件的修改保存上。发现会出现没法正确保存的问题。有时候不能保存(即板子重启后再插,就发现没保存。但是单单如果拔了usb线再插,是可以保存的,奇怪就奇怪在这。)。但是有时候就可以保存。我试验了很多次,好像也没有明显的规律,能不能保存修改的内容,是随机的。
然后,我在bus hound里面,把txt修改了成功保存的,和没有成功保存的,截到的PC端的各种SCSI命令做了一个比较,发现没啥区别。。。。。又把file_storage.c里面的do_write()函数的相关的信息printf()出来,也就是显示写的地址,长度等等,也没啥区别。。。线索就此中断
不知道做过usb gadget mass storage的各位大侠能不能提供一些建议~?谢过了!
--------------------next---------------------
阅读(322) | 评论(0) | 转发(0) |