zImage內(nèi)核鏡像下載到開(kāi)發(fā)板之后,可以使用u-boot的go命令進(jìn)行直接跳轉(zhuǎn),這個(gè)時(shí)候內(nèi)核直接解壓?jiǎn)?dòng)。
但是此時(shí)的內(nèi)核無(wú)法掛載文件系統(tǒng),因?yàn)間o命令沒(méi)有將內(nèi)核需要的相關(guān)啟動(dòng)參數(shù)從u-boot中傳遞給內(nèi)核。
傳遞相關(guān)啟動(dòng)參數(shù)必須使用u-boot的bootm命令進(jìn)行跳轉(zhuǎn),但是u-boot的bootm命令只能處理uImage鏡像。
uImage相對(duì)于zImage在頭部多了64個(gè)byte,即為0x40。
(這里你應(yīng)該知道了為什么要使用bootm命令,以及為什么要是有uImage格式)
在前面我們?cè)?jīng)分析過(guò)Uboot的啟動(dòng)流程,兩個(gè)階段。
程序最終執(zhí)行common/main.c中的main_loop。在此之前都是進(jìn)行一些初始化工作,U-Boot的main_loop函數(shù)相當(dāng)于main主函數(shù)。
main_loop函數(shù)的結(jié)構(gòu)很復(fù)雜,它所做的工作與具體的平臺(tái)無(wú)關(guān),主要目的是處理用戶輸入的命令和引導(dǎo)內(nèi)核啟動(dòng)。
(終于看到了引導(dǎo)內(nèi)核加載)
main_loop 函數(shù)的調(diào)用關(guān)系錯(cuò)綜復(fù)雜,而且摻雜關(guān)系復(fù)雜的條件編譯,我們抓住與命令實(shí)現(xiàn)密切相關(guān)的操作來(lái)分析命令的實(shí)現(xiàn)原理。
命令實(shí)現(xiàn)的大致流程如下圖所示。

-
Linux
+關(guān)注
關(guān)注
88文章
11681瀏覽量
218581 -
命令
+關(guān)注
關(guān)注
5文章
747瀏覽量
23559 -
開(kāi)發(fā)板
+關(guān)注
關(guān)注
26文章
6211瀏覽量
115904 -
Uboot
+關(guān)注
關(guān)注
4文章
131瀏覽量
29864
發(fā)布評(píng)論請(qǐng)先 登錄
labview畫流程圖
怎樣繪制流程圖
小車按照流程圖運(yùn)行
跨職能流程圖怎么畫?教你輕松繪制泳道圖流程圖
NS流程圖是什么圖?用這款軟件輕松畫NS流程圖
Uboot命令實(shí)現(xiàn)大致流程圖
評(píng)論