IMX6ULL移植篇-FAT 格式文件系统操作命令二

一.  FAT 格式文件

本文承接上一篇 FAT格式文件操作命令的学习,如下:

IMX6ULL移植篇-FAT 格式文件系统操作命令一_凌肖战的博客-CSDN博客

IMX6ULL的 zImage(即内核) 与 设备树(.dtb)文件在 EMMC或 SD卡中都是以 FAT格式存在的。

这里所用的 阿尔法开发板的存储芯片是 NAND-FLash,而非 EMMC。

所以,本文对 SD卡进行操作来学习 FAT格式文件操作命令。主要有如下两个操作命令;

二.  FAT 格式文件操作命令

 (1)   fatload 命令

fatload 命令用于将指定的文件读取到 DRAM 中,命令格式如下:

fatload  [ [ [ [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 为接口,比如 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)

=>

你可能感兴趣的:(嵌入式C开发,Linux系统相关,linux,arm开发)