超详细【Uboot驱动开发】(四)Uboot命令行模式分析

四、Uboot命令行模式分析


前几篇文章,我们也了解了 Uboot的启动流程,那么这节就主要讲讲 Uboot的命令行模式。
 

4.1 命令行模式代码执行流程分析

image-20220314191012926

上图为Uboot命令行模式的代码具体执行流程,详细的代码分析可以参见 专栏系列(二)uboot启动流程分析,文章内已经详细分析函数内部实现。

4.2 如何进入命令行模式

我们正常启动流程,默认是不打开Uboot命令行模式的,因为Uboot主要引导Kernel,大多我们也都在Kernel上进行开发,所以往往默认情况下不打开Uboot命令行的相关宏定义。

那么,我们要想进入Uboot命令行模式,需要进行哪些配置呢?

打开我们准备好一份Uboot源码,进入menuconfig配置菜单,主要设置下列几个配置信息!

  • CONFIG_CMDLINE:命令行模式开关
  • CONFIG_SYS_PROMPT:命令行模式提示符
  • CONFIG_HUSH_PARSER:使用hush shell 来对命令进行解析
  • BOOTDELAY:设置启动延时

Tipmeneconfig中查找苦难?实时/符号,输入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

猜你喜欢

转载自blog.csdn.net/dong__ge/article/details/123781837