在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配置文件中加入这几个配置即可:
    
  1. #define CONFIG_USB_OHCI
  2. #define CONFIG_USB_STORAGE
  3. #define CONFIG_CMD_USB
  4. #define CONFIG_CMD_FAT
  5. #define CONFIG_DOS_PARTITION
  6. #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 /)
用法: <interface> <dev[:part]> [directory]
interface就是指哪种类型的设备,我们用的是usb,dev就是设备号,我们的设备号是0,默认的directory是根目录
执行: fatls usb 0
列出U盘上的文件系统目录结构
 
fatinfo: print information about filesystem
用法: <interface> <dev[:part]>
执行: fatinfo usb 0
 
fatload:load binary file from a dos filesystem
用法: <interface> <dev[:part]>  <addr> <filename> [bytes]
从U盘中读取文件到指定内存地址,比如我U盘上有一个名为uboot.bin的文件,读到0x30000000的地址处
执行: fatload usb 0 0x30000000 uboot.bin
读完后就可以用nand write命令将30000000处理的数据写到bios分区中,这就实现了用U盘烧写系统功能
 

转载于:https://www.cnblogs.com/pengdonglin137/p/3339419.html

表情包
插入表情
评论将由博主筛选后显示,对所有人可见 | 还能输入1000个字符
相关推荐
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页