IMX6ULL系统移植篇-uboot基础命令

本文介绍了U-Boot的启动流程,如何通过在设备上电时按下回车键进入命令模式。在命令模式下,可以使用如help、printenv、bdinfo、setenv和saveenv等基础命令来查看和操作环境变量。通过setenv设置新的环境变量,如修改bootdelay的值,并用saveenv保存至Nand-Flash。此外,还展示了如何创建和删除自定义环境变量。
摘要由CSDN通过智能技术生成

一.  uboot 启动

当设备上电启动时,需要马上按下回车键,开发板启动会停止在 uboot的启动Log信息时刻。

这就是 uboot的命令模式,即可以输入 uboot命令进行一些操作。

二.    uboot 基础命令

1.  help 命令

当开发板上电启动后,马上按下 回车键即可进入 uboot的命令模式,输入 help命令或者输入问号符 "?" 都可以查看开发板上的 uboot所支持的所有的命令。

如下所示(以下只显示了一部分命令):

=> help
?       - alias for 'help'
base    - print or set address offset
bdinfo  - print Board Info structure
bmode   - sd1|sd2|qspi1|normal|usb|sata|ecspi1:0|ecspi1:1|ecspi1:2|ecspi1:3|esdhc1|esdhc2|esdhc3|esdhc4 [noreset]
boot    - boot default, i.e., run 'bootcmd'
bootd   - boot default, i.e., run 'bootcmd'
bootelf - Boot from an ELF image in memory
bootm   - boot application image from memory

如果需要查看某一个命令的帮助信息:?+ 命令名

例如,需要查看 命令 echo 的帮助信息,可以输入: ? echo

=> ? echo
echo - echo args to console

Usage:
echo [args..]
    - echo args to console; \c suppresses newline
=> 

 

2.   信息查询命令

printenv 命令:查看开发板当前的环境变量命令

bdinfo 命令:查看 uboot的信息命令

如下打印所有的环境变量值:

=> printenv
author=wangtian
baudrate=115200
board_name=EVK
board_rev=14X14
bootargs=console=ttymxc0,115200 ubi.mtd=5 root=ubi0:rootfs rootfstype=ubifs mtdparts=gpmi-nand:4m(u-boot),128k(env),1m(logo),1m(dtb),8m(kernel),-(rootfs)
bootcmd=nand read ${loadaddr} 0x620000 0x800000;nand read ${fdt_addr} ${fdt_offset} 0x20000;bootz ${loadaddr} - ${fdt_addr}
bootcmd_mfg=run mfgtool_args;bootz ${loadaddr} ${initrd_addr} ${fdt_addr};
bootdelay=3

 3.  环境变量相关命令

 

setenv 命令:设置所有的环境变量。也可以自定义环境变量。也可以删除环境变量。

saveenv 命令:保存开发板的环境变量,即把所有的环境境变量值保存到 Nand-Flash或 EMMC中。

例如,saveenv 命令的使用:

当开发板停留在 uboot启动时刻时,打印了如下信息:

 

 以上打印信息的意思是:我们并没有把默认的环境变量保存到开发板上去,于是使用了默认的环境变量。

此时,输入 saveenv 命令,就可以把 uboot的默认环境变量的值保存到开发板的 Nand-Flash(或 EMMC中)中去。执行 saveenv命令后,设备之后再重启就不会打印以上的 Warning信息了。

如下操作:

 setenv 命令的使用:

例如,这里我们想更改 bootdelay的值,通过 printenv命令可以知道,现在 bootdelay的值是1,也就是 uboot启动后延时了1 秒后才启动 Linux内核的。

这里想将 bootdelay的值改为 3。输入命令如下:

setenv bootdelay 3  //这里只是在代码更改了 bootdelay的值,并没有保存到Nand-Flash中

还需要将更改的 bootdelay 保存,输入命令如下:

saveenv  //将更改的 bootdelay的值保存到 Nand_flash中

操作如下:

=> setenv bootdelay 3
=> saveenv
Saving Environment to NAND...
Erasing NAND...
Erasing at 0x400000 -- 100% complete.
Writing to NAND... OK

这时的 bootdelay 的值已经被保存到 Nand-Flash,可以使用 printenv 命令 查看。 也可以将开发板重新上电,验证 uboot启动后是否为 3 秒倒计时。

4.  新建环境变量 / 删除环境变量

(1)  自定义环境变量

自定义环境变量 即定义添加一个新的环境变量。

操作如下:

=> setenv author wangtian 
=> saveenv
Saving Environment to NAND...
Erasing NAND...
Erasing at 0x400000 -- 100% complete.
Writing to NAND... OK

再通过 printenv 命令查看,是否已经创建成功。如下:

=> printenv
author=wangtian

(2)  删除环境变量

setenv 命令可以删除环境变量。

把一个环境变量的值设置为空值,即就是删除了该环境变量。

=> setenv author
=> saveenv
Saving Environment to NAND...
Erasing NAND...
Erasing at 0x400000 -- 100% complete.
Writing to NAND... OK

再通过 printenv 命令查看,环境变量 author 已经被删除了。

如下所示:

=> printenv
baudrate=115200
board_name=EVK
board_rev=14X14
bootargs=console=ttymxc0,115200 ubi.mtd=5 root=ubi0:rootfs rootfstype=ubifs 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值