天天看點

超詳細【Uboot驅動開發】(四)Uboot指令行模式分析四、Uboot指令行模式分析

四、Uboot指令行模式分析

文章目錄

  • 四、Uboot指令行模式分析
    • 4.1 指令行模式代碼執行流程分析
    • 4.2 如何進入指令行模式
    • 4.3 `Uboot`基本指令解析
    • 4.4 如何添加Uboot指令
    • 4.5 Uboot指令底層實作分析
    • 4.6 推薦文檔

前幾篇文章,我們也了解了

Uboot

的啟動流程,那麼這節就主要講講

Uboot

的指令行模式。

4.1 指令行模式代碼執行流程分析

超詳細【Uboot驅動開發】(四)Uboot指令行模式分析四、Uboot指令行模式分析

上圖為

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:   [email protected]: 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

繼續閱讀