uboot中的fatload mmc和bootm是什么意思?

What does fatload mmc and bootm means in the uboot?

我无法理解这些命令,例如

fatload mmc 0 0x3000000 uImage
fatload mmc 0 0x2A00000 devicetree.dtb
bootm 0x3000000 - 0x2A00000

#fatload mmc 0 0x3000000 uImage。 它在做什么?是否将uImage加载为fat分区并加载到RAM地址0x3000000?

bootm 0x3000000 - 0x2A00000 - ? 这是否意味着从 RAM 地址 0x3000000 到 0x2A00000 启动?

U-Boot 运行放置在(处理器的)RAM 中的代码,尽管它也可以从其他媒体读取数据。引导过程通常分两步进行:

  1. 正在将 OS 图像从媒体(以太网、闪存、USB、MMC)读入 RAM
  2. 正在跳转到 RAM 中图像的第一条指令

uImage 是(很可能 Linux)内核。

xxx.dtb 是编译后的设备树。它包含硬件信息,因此可以将这些信息与内核分开保存。

现在,要从 FAT 格式的 MMC 卡中读取图像,命令是:

fatload mmc <dev>[:partition] <loadAddress> <bootfilename>

因此 2 fatload 命令将 2 个文件从 MMC 卡加载到处理器的 memory/RAM。

现在,关于 bootm :此命令启动内核映像 运行。语法是:

bootm <address of kernel> <address of ramdisk> <address of dtb>

ramdiskand/ordtb的地址可以省略,如果内核被配置成不需要it/them.

在你的情况下,你没有使用 ramdisk,因此中间有破折号 -