四、Uboot命令行模式分析
文章目录
前几篇文章,我们也了解了
Uboot
的启动流程,那么这节就主要讲讲
Uboot
的命令行模式。
4.1 命令行模式代码执行流程分析
上图为Uboot
命令行模式的代码具体执行流程,详细的代码分析可以参见 专栏系列(二)uboot启动流程分析,文章内已经详细分析函数内部实现。
4.2 如何进入命令行模式
我们正常启动流程,默认是不打开Uboot
命令行模式的,因为Uboot
主要引导Kernel
,大多我们也都在Kernel
上进行开发,所以往往默认情况下不打开Uboot
命令行的相关宏定义。
那么,我们要想进入Uboot命令行模式,需要进行哪些配置呢?
打开我们准备好一份Uboot源码,进入menuconfig配置菜单,主要设置下列几个配置信息!
CONFIG_CMDLINE
:命令行模式开关CONFIG_SYS_PROMPT
:命令行模式提示符CONFIG_HUSH_PARSER
:使用hush shell 来对命令进行解析BOOTDELAY
:设置启动延时
Tip:meneconfig
中查找苦难?实时/
符号,输入1或2或3
,直接查找指定标识。
打开之后,重新编译,烧录到开发板中,再次启动,我们就能够看到倒计时,在倒计时时间内,任意一个按键即可进入!
[2022-03-02:13:33:47]U-Boot 2020.10-rc1-00043-ge62a6d17c6-dirty (Feb 08 2022 - 10:14:14 +0800)
[2022-03-02:13:33:47]
[2022-03-02:13:33:47]Model: arobot-r8
[2022-03-02:13:33:47]MMC: mmc1@400a6000: 1
[2022-03-02:13:33:47]In: serial
[2022-03-02:13:33:47]Out: serial
[2022-03-02:13:33:47]Err: serial
[2022-03-02:13:33:47]Model: arobot-r8
[2022-03-02:13:33:49]Hit any key to stop autoboot: 0
4.3 Uboot
基本命令解析
进入Uboot
命令行模式后,键入help
可以查看所有支持的Uboot
命令。
注意:Uboot
支持的命令大都远远超过显示的,还有好多没有打开,可以在menuconfig
中,打开相应的功能,如mmc
相关的,md
内存相关的。
常用命令如下:
reset #重启Uboot
md addr #查看内存指令
mmc dev id #选择mmc卡
mmc rescan #扫描卡
printenv #打印当前系统环境变量。
setenv name value #设置环境变量
sleep N #延时
echo $name #打印环境变量
4.4 如何添加Uboot命令
4.5 Uboot命令底层实现分析
4.6 推荐文档
[1]:https://www.pianshen.com/article/21471247431/
[2]:https://blog.csdn.net/weixin_44895651/article/details/108211268
[3]:https://blog.51cto.com/u_2847568/4917530?b=totalstatistic
…