织梦如何临时关闭网站,湖南建设长沙网站建设价格,应用软件下载app,网站流量赚钱文章目录 一、FAT 格式文件系统操作命令1.fatinfo 命令2.fatls 命令3.fstype 命令4.fatload命令-将EMMC数据复制到DRAM中4.fatwrite命令-将DRAM数据复制到EMMC中 二、Boot操作指令1.bootz2.boot命令 一、FAT 格式文件系统操作命令
#x1f4a6; 有时候需要在 uboot 中对 SD 卡… 文章目录 一、FAT 格式文件系统操作命令1.fatinfo 命令2.fatls 命令3.fstype 命令4.fatload命令-将EMMC数据复制到DRAM中4.fatwrite命令-将DRAM数据复制到EMMC中 二、Boot操作指令1.bootz2.boot命令 一、FAT 格式文件系统操作命令 有时候需要在 uboot 中对 SD 卡或者 EMMC 中存储的文件进行操作需要文件操作命令部分命令有fatinfo、fatls、fstype、fatload 和 fatwrite但是这些文件操作命令只支持 FAT 格式的文件系统。
1.fatinfo 命令 fatinfo 命令用于查询指定 MMC 设备分区的文件系统信息格式如下
fatinfo interface [dev[:part]]interface 表示接口比如 mmcdev 是查询的设备号part 是要查询的分区。 i举例 我们要查询 EMMC 分区 1 的文件系统信息命令如下
fatinfo mmc 1:1EMMC的分区1的系统是FAT32格式的。
2.fatls 命令 fatls 命令用于查询 FAT 格式设备的目录和文件信息命令格式如下
fatls interface [dev[:part]] [directory]interface 是要查询的接口比如 mmcdev 是要查询的设备号part 是要查询的分区directory是要查询的目录。 举例查询 EMMC 分区 1 中的所有的目录和文件输入命令
fatls mmc 1:1emmc 的分区 1 中存放着 8 个文件
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命令-将EMMC数据复制到DRAM中
fatload 命令用于将指定的文件读取到 DRAM 中命令格式如下
fatload interface [dev[:part] [addr [filename [bytes [pos]]]]]interface 为接口比如 mmcdev 是设备号part 是分区addr 是保存在 DRAM 中的起始地址filename 是要读取的文件名字。bytes 表示读取多少字节的数据如果 bytes 为 0 或者省略的话表示读取整个文件。pos 是要读的文件相对于文件首地址的偏移如果为 0 或者省略的话表示从文件首地址开始读取。 举例我们将 EMMC 分区 1 中的 zImage 文件读取到 DRAM 中的0X80800000 地址处命令如下
fatload mmc 1:1 80800000 zImage4.fatwrite命令-将DRAM数据复制到EMMC中
注意uboot 默认没有使能 fatwrite 命令需要修改板子配置头文件比如 mx6ullevk.h、 mx6ull_alientek_emmc.h 等等板子不同其配置头文件也不同。找到自己开发板对应的配置头文件然后添加如下一行宏定义来使能 fatwrite 命令
#define CONFIG_FAT_WRITE /* 使能 fatwrite 命令 */fatwirte 命令用于将 DRAM 中的数据写入到 MMC 设备中命令格式如下
fatwrite interface dev[:part] addr filename bytesinterface 为接口比如 mmcdev 是设备号part 是分区addr 是要写入的数据在 DRAM中的起始地址filename 是写入的数据文件名字bytes 表示要写入多少字节的数据。我们可以通过 fatwrite 命令在 uboot 中更新 linux 镜像文件和设备树。 举例我们以更新 linux 镜像文件 zImage为例下载镜像到DRAM中 使用命令 tftp 将 zImage 下载到 DRAM 的 0X80800000 地址处命令如下
tftp 80800000 zImagezImage 大小为 5636216(0X560078)个字节接下来使用命令 fatwrite 将其写入到 EMMC 的分区 1 中文件名字为 zImage命令如下
fatwrite mmc 1:1 80800000 zImage 560078完成以后使用“fatls”命令查看一下 EMMC 分区 1 里面的文件可以看到zImage文件已经存在了。 二、Boot操作指令
uboot 的功能是引导 Linux所以 uboot 肯定有相关的 boot(引导)命令来启动 Linux。常用的跟 boot 有关的命令有bootz、bootm 和 boot
1.bootz
要启动 Linux需要先将 Linux 镜像文件拷贝到 DRAM 中如果使用到设备树的话也需要将设备树拷贝到 DRAM 中。可以从 EMMC 或者 NAND 等存储设备中将 Linux 镜像和设备树文件拷贝到 DRAM也可以通过 nfs 或者 tftp 在Ubuntu系统中将 Linux 镜像文件和设备树文件下载到 DRAM 中。不管用那种方法只要能将 Linux 镜像和设备树文件存到 DRAM 中就行然后使用 bootz 命令来启动bootz 命令用于启动 zImage 镜像文件bootz 命令格式如下
bootz [addr [initrd[:size]] [fdt]]命令 bootz 有三个参数addr 是 Linux 镜像文件在 DRAM 中的位置initrd 是 initrd 文件在DRAM 中的地址如果不使用 initrd 的话使用‘-’代替即可fdt 就是设备树文件在 DRAM 中的地址。 现在我们使用网络和 EMMC 两种方法来启动 Linux 系统 方法1通过网络启动Linux使用tftp命令,记住传送的文件要赋予权限。 a)首先将开发板的 Linux 镜像和设备树发送到 Ubuntu 主机中的 tftpboot 文件夹下。 2)使用 tftp 命令将zImage 下载到DRAM的0X80800000地址处然后将设备树imx6ull-14x14-emmc-7-1024x600-c.dtb 下载到 DRAM 中的 0X83000000 地址处最后之后命令 bootz 启动命令如下:
tftp 80800000 zImage
tftp 83000000 imx6ull-14x14-emmc-7-1024x600-c.dtb
bootz 80800000 - 83000000方法2通过文件系统操作指令在EMMC中将Linux系统镜像和设备树加载到DRAM中。
fatload mmc 1:1 80800000 zImage
fatload mmc 1:1 83000000 imx6ull-14x14-emmc-7-1024x600-c.dtb
bootz 80800000 - 830000002.boot命令
boot 命令也是用来启动 Linux 系统的只是 boot 会读取环境变量 bootcmd 来启动 Linux 系统bootcmd 是一个很重要的环境变量其名字分为“boot”和“cmd”也就是“引导”和“命令”说明这个环境变量保存着引导命令其实就是启动的命令集合具体的引导命令内容是可以修改的。 举例比如我们要想使用 tftp 命令从网络启动 Linux 那么就可以设置 bootcmd 为“tftp 80800000 zImage; tftp 83000000 imx6ull-14x14-emmc-4.3-800x480-c.dtb; bootz 80800000 - 83000000”然后使用 saveenv 将 bootcmd 保存起来。然后直接输入 boot 命令即可从网络启动Linux 系统命令如下
setenv bootcmd tftp 80800000 zImage; tftp 83000000 imx6ull-14x14-emmc-7-1024x600-c.dtb;
bootz 80800000 - 83000000
saveenv
boot设置从EMMC启动也是同样道理
setenv bootcmd fatload mmc 1:1 80800000 zImage; fatload mmc 1:1 83000000 imx6ull-14x14-
emmc-7-1024x600-c.dtb; bootz 80800000 - 83000000
savenev
boot