一、FAT格式文件系统操作命令
有时候需要在uboot中对 SD卡或者EMMC中存储的文件进行操作,这时候就要用到文件操作命令,跟文件操作相关的命令有:fatinfo、fatls、fstype、fatload和fatwrtie,这些文件操作命令只支持FAT格式的文件系统。
1、fatinfo命令
fatinfo命令用于查询指定MMC设置指定分区的文件系统信息,格式如下:
fatinfo <interface> [<dev[:part]>]
interface:表示接口,如mmc;
dev:是查询的设备号;
part:是要查询的分区。
比如我们要查询EMMC分区1的文件系统信息,命令如下:
fatinfo mmc 1:1
结果如下图所示:
从图中显示的信息可以知道EMMC分区1的文件系统格式是FAT16。
2、fatls命令
fatls命令用于查询FAT格式设备的目录和文件信息,命令格式如下:
fatls <interface> [<dev[:part]>] [directory]
interface:表示接口,如mmc;
dev:是查询的设备号;
part:是要查询的分区;
directory:是要查询的目录。
比如查询EMMC分区1中的所有的目录和文件,命令如下:
fatls mmc 1:1
结果如下图所示:
从图中显示的信息可以知道EMMC分区1中存放了两个文件,分别是Linux镜像文件zImage和设备树文件imx6ull-14x14-evk.dtb。
3、fstype命令
fstype用于查看MMC设备某个分区的文件系统格式,命令格式如下:
fstype <interface> <dev>:<part>
interface:表示接口,如mmc;
dev:是查询的设备号;
part:是要查询的分区。
比如笔者开发板的EMMC默认有3个分区,查看3个分区的文件系统格式命令如下:
1 fstype mmc 1:0 2 fstype mmc 1:1 3 fstype mmc 1:2
结果如下图所示:
从图中的信息可以知道EMMC分区0的文件系统格式无法识别,原因是未格式化;分区1的文件系统格式为fat;分区2的文件系统格式为ext4。
4、fatload命令
fatload命令用于将指定的文件读取到DRAM中,命令格式如下:
fatload <interface> [<dev[:part]>[<addr> [<filename> [bytes [pos]]]]]
interface:表示接口,如mmc;
dev:是查询的设备号;
part:是要查询的分区;
addr:是保存在DRAM中的起始地址;
filename:是要读取的文件名字;
bytes:表示读取多少字节的数据,如果bytes为0或者省略表示读取整个文件;
pos:是要读的文件相对于文件首地址的偏移,如果为0或者省略表示从文件首地址开始读取。
比如笔者将EMMC分区1中的zImage文件读到DRAM中的0x80800000地址处,命令如下:
fatload mmc 1:1 80800000 zImage
结果如下图所示:
5、fatwrite命令
fatwrite命令用于将DRAM中的数据写入EMMC设备中,命令格式如下:
fatwrite <interface> <dev[:part]> <addr> <filename> <bytes>
interface:接口,比如mmc;
dev:设备号;
part:分区;
addr:是要写入的数据在DRAM中的起始地址;
filename:是要写入的数据文件名字;
bytes:表示要写入多少字节的数据。
首先要确认uboot是否有fatwrite命令,默认uboot没有使能fatwrite命令,需要修改板子的配置头文件,比如mx6ull_fire_emmc.h(文件路径:uboot根目录:/include/configs/mx6ull_fire_emmc.h),板子不同对应的头文件也不同,请根据个人实际情况设置。找到开发板对应的配置头文件后在配置文件中添加如下一行宏定义来使能fatwrite命令:
#define CONFIG_FAT_WRITE /* 使能fatwrite命令 */
添加的位置如下图所示:
比如使用tftp命令将zImage下载到DRAM的0x80800000地址处,命令如下:
tftp 80800000 zImage
下载过程如下图所示:
zImage的大小为5614872(0x55AD18)个字节。
接下来使用fatwrite命令将其写到EMMC设备分区1中,命令如下:
fatwrite mmc 1:1 80800000 zImage 0x55AD18
结果如下图所示:
待添加。。。。。。
完成后使用如下命令查看EMMC分区1里面的文件:
fatls mmc 1:1
结果如下图所示:
待添加。。。。。。
end