u-boot操作指令之FAT 格式文件系统操作命令

FAT 格式文件系统操作命令

有时候需要在 uboot 中对 SD 卡或者 EMMC 中存储的文件进行操作,这时候就要用到文件
操作命令,跟文件操作相关的命令有: fatinfo、 fatls、 fstype、 fatload 和 fatwrite,但是这些文件操作命令只支持 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 中存放着八个文件: 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

如图所示:
在这里插入图片描述
从上图可以看出在 303ms 内读取了 6786368 个字节的数据,速度为 21.4MiB/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 镜像文件和设备树。

  • 5
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
第1 章  BOOTLOADER 的概念与功能.................................................................................................................... 4   1.1  嵌入式LINUX软件结构与分布 ........................................................................................................................... 4   1.2  在嵌入式LINUX中B OOT LOADER 的必要性............................................................................................................. 4   1.3  BOOT LOADER的功能和选择 ............................................................................................................................... .. 5   第2 章  U‐BOOT简介............................................................................................................................................ 6   2.1  U‐BOOT的起源............................................................................................................................... .......................... 6   2.2  U‐BOOT的开发情况和资源 ............................................................................................................................... ...... 6   第3 章  开发环境搭建......................................................................................................................................... 8   3.1  交叉编译工具链的安装 ............................................................................................................................... ....8   3.2  网路服务的设置 ............................................................................................................................... ................8   3.2.1安装配置TFTP 服务............................................................................................................................... ............. 8   3.2.2安装配置NFS服务............................................................................................................................... ............... 9   3.3  串口终端程序的安装配置 ............................................................................................................................. 10  3.3.1  C‐kermit 的安装配置(推荐安装) ................................................................................................................ 10  3.3.2  minicom的安装配置 ............................................................................................................................... ....11  第4 章  熟悉U‐BOOT的使用与烧写.................................................................................................................... 13  4.1  烧写U‐BOOT到MINI2440开发板 ....................................................................................................................... 13  4.2  常用U‐BOOT命令详解............................................................................................................................... ....... 13  4.2.1获取帮助 ............................................................................................................................... ........................... 13  4.2.2环境变量与相关指令 ............................................................................................................................... ....... 15  4.2.3串口传输命令 ............................................................................................................................... ................... 17  4.2.4网络命令 ............................................................................................................................... ........................... 19  4.2.5  Nand  Flash操作指令 ............................................................................................................................... ... 21  4.2.6  内存/ 寄存器操作指令 ............................................................................................................................... 24  4.2.7  Nor Flash指令............................................................................................................................... .............. 26  4.2.8  USB 操作指令 ............................................................................................................................... .............. 29  4.2.9  SD卡(MMC) 指令 ............................................................................................................................... .......... 32  4.2.10   FAT文件系统指令 ............................................................................................................................... ........33  4.2.11 系统引导指令 ............................................................................................................................... ................. 34  4.2.13   其他指令............................................................................................................................... ................. 36  4.3  下载与烧写 ............................................................................................................................... ...................... 37   4.3.1  通过SD卡烧入Nand Flash:..................................................................................................................... 37   4.3.2  通过U盘烧入N or Flash:......................................................................................................................... 37   4.3.3  通过TFTP 服务烧入Nand  Flash:............................................................................................................... 38  4.3.4  通过NFS  服务烧入Nand  Flash:................................................................................................................ 38  4.4  内核引导............................................................................................................................... .......................... 39  4.4.1  通过SD卡引导内核: ............................................................................................................................... . 40  4.4.2  通过TFTP 服务引导内核 ............................................................................................................................. 41  4.4.3  通过NFS服务引导内核: .......................................................................................................................... 41  4.4.4  通过Nand  Flash引导内核:....................................................................................................................... 42  第5 章  U‐BOOT源码简要分析........................................................................................................................... 44  5.1  U-BOOT 源码整体框架............................................................................................................................... ..... 44  5.2  U‐BOOT代码的大致执行流程(以S3C24 X0 为例)............................................................................................. 45  第6 章  U‐BOOT在MINI2440上的移植............................................................................................................... 53  6.1  建立开发板文件,测试编译环境 ................................................................................................................. 53  6.1.1  修改顶层Makefile ...................................................................................................................................... 53  6.1.2  在/board 中建立mini2440 目录和文件 ..................................................................................................... 54  6.1.3  在include/configs/ 中建立开发板配置文件 ............................................................................................... 54  6.1.4  测试编译环境 ............................................................................................................................... ............. 55  .2  第一阶段: 探索启动代码 ............................................................................................................................... . 55  6.2.1  关闭为AT9200 写的LED 跳转 ...................................................................................................................... 56  6.2.2  修改CPU 频率初始化设置 .......................................................................................................................... 56  6.2.3  修改lowlevel_init.S 文件............................................................................................................................. 57   6.2.4  修改代码重定向部分............................................................................................................................... .. 58  6.2.5  增加LED 的点亮操作 ............................................................................................................................... ... 66  .3  第二阶段: 修改初始化代码 ............................................................................................................................ 67  6.3.1  修改lib_arm/board.c 文件.......................................................................................................................... 68  6.3.2  修改board/tekkamanninja/mini2440/mini2440.c 文件。 .......................................................................... 69  .4  第三阶段:完善目标板外设驱动 ................................................................................................................. 73  6.4.1  Nand  Flash相关代码的修改....................................................................................................................... 73  6.4.2  添加Yaffs(2)镜像烧写功能 ........................................................................................................................ 75  6.4.3  修改Nor  Flash写入功能的代码 ................................................................................................................. 79  6.4.4  修改网络相关代码............................................................................................................................... ...... 84  6.4.5  添加串口Xmodem 传输协议(可不修改) .............................................................................................. 85  6.4.6  添加LCD 显示功能 ............................................................................................................................... ....... 87   6.4.7  添加SD卡(MMC)读取功能 ................................................................................................................... 92  .5  第四阶段:修正配置文件 ........................................................................................................................... 108   6.5.1  添加CONFIG_S3C2440条件定义 ............................................................................................................. 108   6.5.2  修改配置文件include/configs/mini2440.h .............................................................................................. 116   .6  重新编译并测试 ............................................................................................................................... ............121   章  下载最新的源代码.............................................................................................................................. 121  

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值