U-Boot命令之(FAT 格式EXT 格式)文件系统操作命令
Posted 行稳方能走远
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了U-Boot命令之(FAT 格式EXT 格式)文件系统操作命令相关的知识,希望对你有一定的参考价值。
参考:U-Boot命令之FAT 格式文件系统操作命令
作者:一只青木呀
发布时间: 2020-10-20 17:42:33
网址:https://blog.csdn.net/weixin_45309916/article/details/109185273
参考:U-Boot命令之EXT 格式文件系统操作命令
作者:一只青木呀
发布时间: 2020-10-20 17:49:42
网址:https://blog.csdn.net/weixin_45309916/article/details/109185736
FAT 格式文件系统操作命令
有时候需要在 uboot 中对 SD 卡或者 EMMC 中存储的文件进行操作,这时候就要用到文件操作命令,跟文件操作相关的命令有: fatinfo、 fatls、 fstype、 fatload 和 fatwrite,但是这些文件操作命令只支持 FAT 格式的文件系统!!
命令 | 描述 |
---|---|
fatinfo | 用于查询指定 MMC 设置指定分区的文件系统信息 |
fatls | 用于查询 FAT 格式设备的目录和文件信息 |
fstype | 查看 MMC 设备某个分区的文件系统格式 |
fatload | 用于将指定的文件读取到 DRAM 中 |
fatwrite | 用于将 DRAM 中的数据写入到 MMC 设备中 |
1、 fatinfo 命令
fatinfo 命令用于查询指定 MMC 设置指定分区的文件系统信息,格式如下:
fatinfo <interface> [<dev[:part]>]
interface 表示接口,比如 mmc, dev 是查询的设备号, part 是要查询的分区。比如我们要查询 EMMC 分区 1 的文件系统信息,命令如下:
fatinfo mmc 1:1
结果如下图所示:
从上图可以看出, EMMC 分区 1 的文件系统为 FAT32 格式的。
2、 fatls 命令
fatls 命令用于查询 FAT 格式设备的目录和文件信息,命令格式如下:
fatls <interface> [<dev[:part]>] [directory]
interface 是要查询的接口,比如 mmc, dev 是要查询的设备号, part 是要查询的分区, directory是要查询的目录。比如查询 EMMC 分区 1 中的所有的目录和文件,输入命令:
fatls mmc 1:1
结果如下图所示:
从上图可以看出, emmc 的分区 1 中存放着八个文件: zimage 和 imx6ull-14x14-evk.dtb文件,这些文件分别是 linux 镜像文件和设备树。并且在 emmc 的分区 1 中有八个文件,没有目录.
3、 fstype 命令
fstype 用于查看 MMC 设备某个分区的文件系统格式,命令格式如下:
fstype <interface> <dev>:<part>
正点原子 EMMC 核心板上的 EMMC 默认有 3 个分区,我们来查看一下这三个分区的文件系统格式,输入命令:
fstype mmc 1:0
fstype mmc 1:1
fstype mmc 1:2
结果如下图所示:
从上图可以看出,分区 0 格式未知,因为分区 0 存放的 uboot,并且分区 0 没有格式化,所以文件系统格式未知。分区 1 的格式为 fat,分区 1 用于存放 linux 镜像和设备树。分区 2 的格式为 ext4,用于存放 Linux 的根文件系统(rootfs)。
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
操作过程如下图所示:
从上图可以看出在 222ms 内读取了 6786368 个字节的数据,速度为 29.2MiB/s,速度是非常快的,因为这是从 EMMC 里面读取的,而 EMMC 是 8 位的,速度肯定会很快的
5、 fatwrite 命令
注意! uboot 默认没有使能 fatwrite 命令,需要修改板子配置头文件,比如 mx6ullevk.h、mx6ull_alientek_emmc.h 等等,板子不同,其配置头文件也不同。找到自己开发板对应的配置头文件然后添加如下一行宏定义来使能 fatwrite 命令:
#define CONFIG_FAT_WRITE /* 使能 fatwrite 命令 */
fatwirte 命令用于将 DRAM 中的数据写入到 MMC 设备中,命令格式如下:
fatwrite <interface> <dev[:part]> <addr> <filename> <bytes>
interface 为接口,比如 mmc, dev 是设备号, part 是分区, addr 是要写入的数据在 DRAM中的起始地址, filename 是写入的数据文件名字, bytes 表示要写入多少字节的数据。我们可以通过 fatwrite 命令在 uboot 中更新 linux 镜像文件和设备树。
EXT 格式文件系统操作命令
uboot 有 ext2 和 ext4 这两种格式的文件系统的操作命令,常用的就四个命令,分别为:ext2load、 ext2ls、 ext4load、 ext4ls 和 ext4write。这些命令的含义和使用与 fatload、 fatls 和 fatwrit一样,只是 ext2 和 ext4 都是针对 ext 文件系统的。
命令 | 描述 |
---|---|
ext2ls | 用于查询 ext2 格式设备的目录和文件信息 |
ext4ls | 用于查询 ext4 格式设备的目录和文件信息 |
ext2load | 用于将指定的文件读取到 DRAM 中 |
ext4load | 用于将指定的文件读取到 DRAM 中 |
ext4write | 用于将 DRAM 中的数据写入到 MMC 设备中 |
ext2write | 用于将 DRAM 中的数据写入到 MMC 设备中 |
比如 ext4ls 命令, EMMC 的分区 2 就是 ext4格式的,使用 ext4ls 就可以查询 EMMC 的分区 2 中的文件和目录,输入命令:
这些命令的含义和使用与 fatload、 fatls 和 fatwrit一样,参考FAT命令
以上是关于U-Boot命令之(FAT 格式EXT 格式)文件系统操作命令的主要内容,如果未能解决你的问题,请参考以下文章