中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

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

田林县| 公安县| 江达县| 东丰县| 德昌县| 扶绥县| 嘉善县| 罗山县| 泸溪县| 五河县| 汉沽区| 梁河县| 邛崃市| 鹤岗市| 舟曲县| 若尔盖县| 中卫市| 旬阳县| 榆中县| 太和县| 子长县| 惠来县| 定日县| 晴隆县| 蓝田县| 舟山市| 正宁县| 云阳县| 苍南县| 东辽县| 巴马| 岢岚县| 乌拉特后旗| 吕梁市| 耿马| 奇台县| 米易县| 高安市| 凌海市| 甘肃省| 武冈市|