配置gadget驱动实现USB大容量存储,模拟U盘

博客介绍了嵌入式实验板模拟U盘的配置与使用方法。包括配置内核、编译生成uImage和驱动文件,修改uboot状态下的dr_mode,烧入内核并重启,利用tftp工具下载驱动到flash,插入驱动到内核,生成镜像文件模拟U盘并挂载,实现PC与Flash数据传递,还提及读取文件时的重新挂载操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

  • 配置内核(USB Gadget Support):
  • #make menuconfig 

  • 编译生成uImage文件和驱动文件(libcomposite.ko与g_mass_storage.ko)驱动位与/drivers/usb/gadget目录下。
#make modules

  • 在uboot状态下把dr_mode=host修改为dr_mode=peripheral,即输入以下指令:
#setenv hwconfig "fsl_p1010mux:tdm_can=can;usb1:dr_mode=peripheral,phy_type=utmi"
#saveenv
  • 烧入内核并重启实验板,利用tftp工具把libcomposite.ko与g_mass_storage.ko下载到flash中。

 

  • 执行insmod指令,将libcomposite.ko插入到内核中,即执行以下命令。
   #insmod libcomposite.ko

  • 依次执行以下指令,生成镜像文件模拟u盘,并挂载,实现PC与Flash之间的数据传递。
#mkdir /usbfile
#cd /usbfile
#mkdir files

/* 生成15M二进制镜像文件 */
#dd  if=/dev/zero  of=/usbfile/disk.img  bs=1M  count=15  

/* 格式化 */
#mkdosfs  disk.img 


/* 将镜像文件挂载到/usbfile/filesw文件夹 */
#mount -t vfat -o sync  /usbfile/disk.img   /usbfile/files  


/* 命令即可识别NandFlash的 disk.img 文件为PC的一个外部存储空间。*/
#insmod  g_mass_storage.ko file=/usbfile/disk.img  removable=1 stall=1

  • 这时候将实验板通过USB插入到电脑即可识别。
  • 如果需要从实验板中读取文件则需要重新挂载,即依次执行:
#umount /usbfile/files

#mount -t vfat -o sync  /usbfile/disk.img   /usbfile/files

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

运维贼船

你的鼓励将是我创作最大的动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值