在XC2440的uboot中挂载U盘,利用FAT文件系统读写U盘文件

http://blog.chinaunix.net/uid-22030783-id-3347608.html

在XC2440的uboot_V1.3版本中已经支持USB HOST驱动和FAT文件系统,同时支持USB Storage,即U盘

关于使用U盘自动更新系统镜像,请看我的这篇博文:http://blog.chinaunix.net/space.php?uid=22030783&do=blog&id=3347599

在XC2440.h配置文件中加入这几个配置即可:

#define CONFIG_USB_OHCI
#define CONFIG_USB_STORAGE
#define CONFIG_CMD_USB
#define CONFIG_CMD_FAT
#define CONFIG_DOS_PARTITION
#define CONFIG_SUPPORT_VFAT
下面开始介绍USB和FAT相关命令的用法,通过大量的实际操作截图说明

和USB操作相关的文件是common/cmd_usb.c,这里定义了usb命令
在uboot中执行help usb查看支持的命令
在这里插入图片描述

先把U盘插在板上的USB HOST口,使用U盘之前要先执行usb start命令,或使用usb reset也是一样的动作
接着使用usb dev可以查看检测到的USB设备,如下图,检测到USB Storage,设备号是0(我用的是TF卡读卡器)
在这里插入图片描述

使用usb info可列出板上USB HOST接口的属性
在这里插入图片描述

使用usb storage可列出U盘设备信息,使用usb tree列出Device Tree
在这里插入图片描述

使用usb part列出U盘设备的分区信息
在这里插入图片描述

使用完U盘后,要使用usb stop停止设备
在这里插入图片描述

操作U盘中的文件需要借助FAT文件系统,实现文件是common/cmd_fat.c,不管是U盘或MMC,或其他存储设备,都可以用FAT文件系统统一操作。

执行help中可以看到有3个fat命令,fatls fatinfo fatload
在这里插入图片描述

fatls: list files in a directory(default /)
用法: [directory]
interface就是指哪种类型的设备,我们用的是usb,dev就是设备号,我们的设备号是0,默认的directory是根目录
执行:fatls usb 0
列出U盘上的文件系统目录结构
在这里插入图片描述

fatinfo: print information about filesystem
用法:
执行:fatinfo usb 0
在这里插入图片描述

fatload:load binary file from a dos filesystem
用法: [bytes]
从U盘中读取文件到指定内存地址,比如我U盘上有一个名为uboot.bin的文件,读到0x30000000的地址处
执行:fatload usb 0 0x30000000 uboot.bin
读完后就可以用nand write命令将30000000处理的数据写到bios分区中,这就实现了用U盘烧写系统功能
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值