help 命令
你可以得到大部分命令的用法介绍,展示出来的一般都是已经在Uboot代码中实现了的,也有例外。
还可以help [想要的指令] 的方式查询指令详细用法。
mem命令
mem list: 列出当前扫描到的所有的设备
mem dev: 当前正在操作的设备
mem dev num : 你可以选择切换到想要的设备上
mem part: 列出当前设备的分区
tftp命令
tftp [ARMaddress] filename
当通过setenv serverip 192.168.9.** 设置好tftp服务器后使用,把服务器的指定文件写入到指定内存中。
setenv
setenv ethact [网卡] 设置指定网卡,至于为什么是这个,而且为什么我用e1000网卡时是为 e1000#0 ,需要看了uboot代码才能懂。
booti 与 bootm区别:
bootp - boot image via network using BOOTP/TFTP protocol
bootz - boot Linux zImage image from memory
bootm - boot application image from memory。
用法:bootm [内存地址] // 从指定位置启动参考链接。
booti - boot arm64 Linux Image image from memory。
用法:booti [addr [initrd[:size]] [fdt]]
booti:这是命令本身,用于引导 Linux ‘Image’ 格式的内核
addr:这是必选参数,指定内存中存储的 Linux ‘Image’ 格式的内核地址。
initrd:这是可选参数,指定内存中的 initrd(初始根文件系统)的地址。如果提供了 initrd 参数,还可以选择性地在后面加上 :size,以指定 RAW 格式 initrd 的大小。如果要引导带有 initrd 但没有设备树的内核,可以在 initrd 参数位置使用 ‘-’。
fdt:这是必选参数,指定内存中的设备树 blob 的地址。引导 Linux 内核需要扁平化的设备树。
疑问:什么是initrd?
initrd(Initial RAM Disk)是一个初始的根文件系统,它在Linux系统启动过程的早期阶段被用来加载必要的驱动模块,使得系统能够访问真正的根文件系统所在的磁盘分区。因为我常用的内核Image支持某种文件系统启动,所以这个一般不需要,参考链接:https://blog.csdn.net/weixin_45264425/article/details/129190771。
sf相关命令 与 ext4load、fatload
sf 有一堆相关命令以write为例,其他的看手册:
sf read addr offset|partition len
将于将内存中的数据写入到SPI闪存(SPI Flash)中,详解如下:
addr: 这是内存中数据的起始地址,即你想要从内存中写入到闪存的数据的地址。
offset|partition: 这个参数可以是选择两种形式之一:offset 是SPI闪存中的偏移量,即你想要开始写入数据的位置。partition 是SPI闪存分区的名称,如果你指定了一个分区名称,数据将从该分区的起始位置开始写入。
len: 这是你要写入到闪存中的数据的长度(以字节为单位)。
ext4load与fatload均用于从自己指定的文件系统中加载文件到内存中。使用方法相同:
xxxload <interface> <dev[:part]> [addr] [filename] [bytes]
<interface>:存储设备使用的接口,如mmc、sata等。
<dev[:part]>:设备编号和分区编号,用于指定EXT4文件系统所在的分区。
[addr]:可选参数,指定将文件加载到内存中的地址。
[filename]:要加载的文件名。
[bytes]:可选参数,指定要加载的字节数。