亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

uboot如何啟動內核

發布時間:2020-08-10 21:12:01 來源:ITPUB博客 閱讀:175 作者:大雄45 欄目:建站服務器
導讀 ARM設備如何通過uboot啟動 Linux內核
uboot和內核就是一個裸機程序

(1)uboot的本質就是就是一個復雜點的裸機程序,和ARM部分寫的裸機程序沒有本質區別。

(2)內核本身也是一個裸機程序,和uboot、裸機程序無本質區別。要說不同的地方,那就是內核運行起來后,在軟件上分為內核層和應用層,分層后兩層的權限不同,內存訪問和設備操作的管理上更加精細(內核可以隨便訪問各種硬件,而應用程序只能被限制地訪問硬件和內存地址)。

(3)直觀上來看,uboot的鏡像是u-boot.bin, linux系統的鏡像是zImage,這兩個東西其實都是兩個裸機程序鏡像。從系統的啟動角度來講,內核其實就是一個大的復雜點的裸機程序。
uboot如何啟動內核

部署在SD卡特定分區內

(1)一個完整的軟件+硬件的嵌入式系統,靜止時(未上電時)bootloader、kernel、rootfs等必須的軟件都以鏡像的形式存儲在啟動介質中(x210中是iNand/SD卡),運行時都是在DDR內存中運行的,與存儲介質無關。上面兩個狀態都是穩定狀態,第三個狀態是動態過程,即從靜止態到運行態的過程,也就是啟動過程。

(2)動態啟動過程就是一個從SD卡逐步搬移到DDR內存,并且運行啟動代碼進行相關的硬件初始化和軟件架構的建立,最終達到運行時穩定狀態。

(3)靜止時,u-boot.bin、kernel、rootfs都在SD卡中,它們不可能隨意存在SD卡的任意位置,因此需要對SD卡進行一個分區,然后將各種鏡像存在不同的分區,這樣在啟動過程中uboot、內核就知道到哪里去找。(uboot和kernel中的分區表必須一致,同時和SD卡的實際使用分區也要一致)

運行時必須先加載到DDR中鏈接地址處

(1)uboot在第一階段中進行重定位時將第二階段(整個uboot)加載到DDR的0xC3E00000地址處,這個地址就是uboot的鏈接地址。

(2)內核也有類似要求,uboot啟動內核時,將內核從SD卡讀取放到DDR中(其實就是個重定位的過程),不能隨意放置,必須放在內核的鏈接地址處,否則啟動不起來。例如在x210中使用的內核鏈接地址是0x30008000。

內核啟動需要必要的參數

(1)uboot是無條件啟動的,從零開始啟動的。

(2)內核是不能開機自動完全從零開始啟動的,內核啟動需要別人幫忙。uboot需幫助內核實現重定位(從SD卡到DDR),uboot還要給內核提供啟動參數。

本文原創地址: https://www.linuxprobe.com/uboot-image.html

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

东莞市| 元阳县| 礼泉县| 信阳市| 延津县| 天台县| 宁海县| 根河市| 江城| 思南县| 集安市| 潮安县| 崇文区| 吉水县| 乌恰县| 克东县| 张家港市| 新和县| 富顺县| 冀州市| 富锦市| 洞口县| 长沙县| 五大连池市| 四子王旗| 丹寨县| 女性| 新闻| 广水市| 河南省| 图们市| 诸城市| 武宁县| 余姚市| 额济纳旗| 崇礼县| 景宁| 文昌市| 固镇县| 绥阳县| 运城市|