一. FAT 格式文件
本文承接上一篇 FAT格式文件操作命令的学习,如下:
IMX6ULL移植篇-FAT 格式文件系统操作命令一_凌肖战的博客-CSDN博客
IMX6ULL的 zImage(即内核) 与 设备树(.dtb)文件在 EMMC或 SD卡中都是以 FAT格式存在的。
这里所用的 阿尔法开发板的存储芯片是 NAND-FLash,而非 EMMC。
所以,本文对 SD卡进行操作来学习 FAT格式文件操作命令。主要有如下两个操作命令;
二. FAT 格式文件操作命令
(1) fatload 命令
fatload 命令用于将指定的文件读取到 DRAM 中,命令格式如下:
fatload <interface> [<dev[:part]> [<addr> [<filename> [bytes [pos]]]]]
interface 为接口,比如 mmc,dev 是设备号,part 是分区,
addr 是保存在 DRAM 中的起始地址,
filename 是要读取的文件名字。
bytes 表示读取多少字节的数据,如果 bytes 为 0 或者省 略的话表示读取整个文件。
pos 是要读的文件相对于文件首地址的偏移,如果为 0 或者省略的 话表示从文件首地址开始取。
如果开发板上的存储芯片是 EMMC,我们把系统烧写到 EMMC中去,那么,uboot启动它就是使用了 fatload命令。
这里是 存储芯片是 EMMC的开发板。
例如,将
EMMC
分区
1
中的
zImage
文件读取到
DRAM
中的
0X80800000
地址处。
操作如下:
=> fatload mmc 1:1 80800000 zImage
reading zImage
6785272 read in 148 ms (38.8 MiB / s)
(2) fatwrite 命令
注意:
uboot 默认没有使能 fatwrite 命令。
需要修改板子配置头文件,比如 mx6ullevk.h、 mx6ull_alientek_emmc.h 等等,板子不同,其配置头文件也不同。
找到自己开发板对应的配置头文件然后添加如下一行宏定义来使能 fatwrite 命令:
#define CONFIG_FAT_WRITE /* 使能 fatwrite 命令 */
fatwrite 命令 用于将
DRAM
中的数据写入到
MMC
设备中,命令格式如下:
fatwrite <interface> <dev[:part]> <addr> <filename> <bytes>
interface
为接口,比如
mmc
,
dev
是设备号,
part
是分区,
addr
是要写入的数据在
DRAM
中的起始地址,
filename
是写入的数据文件名字,
bytes
表示要写入多少字节的数据。
可以通过 fatwrite 命令在 uboot 中更新 linux 镜像文件和设备树。
举例说明
我们以更新 linux 镜像文件 zImage为例。
(1) 首先,将正点原子
I.MX6U-ALPHA
开发板提供的
zImage
镜像文件拷贝到
Ubuntu
中的
tftpboot
目录下,
zImage
镜像文件存放目录:
拷贝完成以后,使用命令
tftp
将
zImage
下载到
DRAM
的
0X80800000
地址处。
开发板的 uboot 命令模式下,输入如下命令如下:
=> tftp 80800000 zImage
Using FEC1 device
TFTP from server 192.168.1.66; our IP address is 192.168.1.50
Filename 'zImage'.
Load address: 0x80800000
Loading: #################################################################
##
2.4 MiB/s
done
Bytes transferred = 983040 (f0000 hex)
=>
(2) 接下来使用命令 fatwrite 将其写入到 EMMC 的 分区 1 中,文件名字为 zImage。
注意:由于开发板系统在不断的更新中,因此,zImage
大小不是固定的,一切以实际大小为准。
操作如下:
fatwrite mmc 1:1 80800000 zImage 6788f8
writing zImage
6788f8 bytes written
完成以后使用 “
fatls
” 命令查看一下
EMMC
分区
1
里面的文件,
结果如下:
=> fatls mmc 1:1
6785272 zimage
38859 imx6ull-14x14-emmc-4.3-480x272-c.dtb
38859 imx6ull-14x14-emmc-4.3-800x480-c.dtb
38859 imx6ull-14x14-emmc-7-800x480-c.dtb
38859 imx6ull-14x14-emmc-7-1024x600-c.dtb
38859 imx6ull-14x14-emmc-10.1-1280x800-c.dtb
39691 imx6ull-14x14-emmc-hdmi.dtb
39599 imc6ull-14x14-emmc-vga.dtb
8 file(s) , 0 dir(s)
=>