ARM开发板模拟成U盘的问题(设备端gadget)

gaoxiang19870307 2016-08-08 03:39:28
最近在做一个实验:
我将6410ARM开发板的nandflash的mtdblock3(一个分区)通过USB模拟成一个U盘,是开发板的/dev/mtdblock3。
配置好内核make uImage,make modules,然后将/arch/arm/boot/uImage 拷贝到tftp目录下,将drivers/usb/gadget/g_file_storage.ko拷贝到网络文件系统目录下。然后将内核映像uImage烧写到nandflash中,打开开发板电源,启动成功。然后执行insmod g_file_storage.ko file=/dev/mtdblock3 stall=0 removable=1,开发板上出现
g_file_storage gadget: No serial-number string provided!
g_file_storage gadget: File-backed Storage Gadget, version: 1 September 2010
g_file_storage gadget: Number of LUNs=1
g_file_storage gadget-lun0: ro=0, nofua=0, file: /dev/mtdblock3
s3c-hsotg s3c-hsotg: s3c_hsotg_irq: USBRst
s3c-hsotg s3c-hsotg: bound driver g_file_storage

正常!

然后将USB线缆一端接到开发板device的小口,一端接到windows系统的usb口。然后在win上会多出一个盘符,在我的电脑上是I 盘,然后对I盘进行FAT32格式化,就可以在win上打开I盘,并可以在其中创建文件等操作。比如创建一个11.txt,里面写入123内容。在usb线缆插好后,在开发板串口终端(SecureCRT)会出现:
s3c-hsotg s3c-hsotg: new device is full-speed
s3c-hsotg s3c-hsotg: S3C_GINTSTS_USBSusp
s3c-hsotg s3c-hsotg: s3c_hsotg_irq: USBRst
usb 1-2: new full speed USB device number 2 using s3c2410-ohci
s3c-hsotg s3c-hsotg: new device is high-speed
hub 1-0:1.0: unable to enumerate USB device on port 2
s3c-hsotg s3c-hsotg: s3c_hsotg_irq: USBRst
s3c-hsotg s3c-hsotg: new device is high-speed
s3c-hsotg s3c-hsotg: new address 1
g_file_storage gadget: high speed config #1

正常!

然后执行mkdir /mnt/U_Storage,即在/mnt目录下创建U_Storage目录,然后执行mount -t vfat /dev/mtdblock3 /mnt/U_Storage/将/dev/mtdblock3挂载到/mnt/U_Storage目录下。进入/mnt/U_Storage目录,就可以看到刚刚PC机上创建的11.txt。
而且在PC机创建文件,在ARM就可以实时看到内容更新。而在ARM这边创建文件,PC机端就不能实时看到内容更新,得重新插拔USB线才能看到更新的内容。 为什么呢?求大侠们解答!
...全文
1949 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
CamillePC 2017-10-20
  • 打赏
  • 举报
回复
写完后,需要同步!在命令行敲:sync,数据就过去了

1,318

社区成员

发帖
与我相关
我的任务
社区描述
主要是开发驱动技术
社区管理员
  • 驱动程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧