91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

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

常熟市| 莎车县| 礼泉县| 雅安市| 丽水市| 冕宁县| 榆中县| 西乌珠穆沁旗| 兴海县| 昭觉县| 赤壁市| 苏尼特右旗| 德州市| 道孚县| 太原市| 莱芜市| 万州区| 边坝县| 武定县| 沙湾县| 雅江县| 华坪县| 万年县| 张家港市| 四子王旗| 阳高县| 贡山| 龙门县| 海安县| 合作市| 开江县| 漯河市| 邯郸市| 达尔| 周口市| 黄陵县| 溧水县| 文昌市| 泾川县| 焉耆| 安远县|