uboot是用來幹什麼的,有什麼作用?
uboot 屬於bootloader的一種,是用來引導啟動核心的,它的最終目的就是,從flash中讀出核心,放到記憶體中,啟動核心
所以,由上面描述的,就知道,uboot需要具有讀寫flash的能力。
uboot是怎樣引導啟動核心的?
uboot剛開始被放到flash中,板子上電後,會自動把其中的一部分**拷到記憶體中執行,這部分**負責把剩餘的uboot**拷到記憶體中,然後uboot**再把kernel部分**也拷到記憶體中,並且啟動,核心啟動後,掛著根檔案系統,執行應用程式。
uboot啟動的大過程是怎麼樣的?
uboot啟動主要分為兩個階段,主要在start.s檔案中,第一階段主要做的是硬體的初始化,包括,設定處理器模式為svc模式,關閉看門狗,遮蔽中斷,初始化sdram,設定棧,設定時鐘,從flash拷貝**到記憶體,清除bss段等,bss段是用來儲存靜態變數,全域性變數的,然後程式跳轉到start_arm_boot函式,宣告第一階段的結束。
第二階段比較複雜,做的工作主要是1.從flash中讀出核心。2.啟動核心。start_arm_boot的主要流程為,設定機器id,初始化flash,然後進入main_loop,等待uboot命令,uboot要啟動核心,主要經過兩個函式,第乙個是s=getenv("bootcmd"),第二個是run_command(s...),所以要啟動核心,需要根據bootcmd環境變數的內容啟動,bootcmd環境變數一般指示了從某個flash位址讀取核心到啟動的記憶體位址,然後啟動,bootm。
uboot啟動的核心為uimage,這種格式的核心是由兩部分組成:真正的核心和核心頭部組成,頭部中包括核心中的一些資訊,比如核心的載入位址,入口位址。
uboot在接受到啟動命令後,要做的主要是,1,讀取核心頭部,2,移動核心到合適的載入位址,3,啟動核心,執行do_bootm_linux
do_bootm_linux主要做的為,1,設定啟動引數,在特定的位址,儲存啟動引數,函式分別為setup_start_tag,setup_memory_tag,setup_commandline_tag,setup_end_tag,根據名字我們就知道具體的段內儲存的資訊,memory中為板子的記憶體大小資訊,commandline為命令列資訊,
2,跳到入口位址,啟動核心
啟動的函式為the_kernel(0,bd->bi_arch_number,bd->bi_boot_param)
bd->bi_arch_number為板子的機器碼,bd->bi_boot_param為啟動引數的位址
uboot是用來幹什麼的,有什麼作用?
uboot是用來幹什麼的,有什麼作用?uboot 屬於bootloader的一種,是用來引導啟動核心的,它的最終目的就是,從flash中讀出核心,放到記憶體中,啟動核心 所以,由上面描述的,就知道,uboot需要具有讀寫flash的能力。uboot是怎樣引導啟動核心的?uboot剛開始被放到flas...
有什麼作用 窗台板有什麼作用
1 窗台板美觀度很高。之前的房子都是刷層膩子就好了,現在時代發展快了,審美觀也要跟著提高。而且現在很多家庭都是小戶型,窗戶上沒有安裝窗台板,會有很強的空間壓迫感。裝了窗台板,整體空間視野會變得更好。窗台板的顏色設計一般和室內色調都是匹配的,因為窗台下面內牆收尾有縫隙很不美觀,窗台板恰好能夠遮擋這一缺...
有什麼作用 肌底液有什麼作用
肌底液則主要負責協助精華液發揮更理想的護膚效果。肌底液的主要功能是促進精華的吸收,本身的營養並不突出 肌底液大多含有親水又親油的成分,能將護膚品的水分和油分同時瓦解,繼而被 更好的吸收。適合肌底液的人是誰 如果你發現自己常用的護膚品突然不好用了,或者久久沒有效果,那可能就是 吸收不太好。這時候你就可...