<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于U-BOOT的S3C44B0引導裝載程序的設計與實(shí)現

基于U-BOOT的S3C44B0引導裝載程序的設計與實(shí)現

作者: 時(shí)間:2012-05-21 來(lái)源:網(wǎng)絡(luò ) 收藏

引言

本文引用地址:http://dyxdggzs.com/article/218825.htm

嵌入式Linux的引導裝載程序()是操作系統內核啟動(dòng)之前運行的一段程序,其作用與PC機上的BIOS類(lèi)似。通過(guò)這段程序,將系統的軟硬件環(huán)境帶到一個(gè)合適的狀態(tài),以便為最終調用操作系統內核做好正確的環(huán)境[1]。 與底層硬件相關(guān)密切,即每個(gè)不同配置的目標板都有不同的。對于兩塊不同的嵌入式板,即使它們使用同一種CPU構建,要想讓運行在其中一塊上的Bootloader程序也能夠運行在另一塊板子上,通常也都需要修改Bootloader源程序。

嵌入式系統的硬件部分不可能是完全一致的,不可能有通用的bootloader。因此,需要針對硬件系統進(jìn)行有關(guān)引導程序的設計。對于嵌入式系統來(lái)說(shuō),引導程序比較復雜,一般采用對基本符合硬件體系要求的現有引導程序進(jìn)行移植,然后加以應用的方法設計引導程序。本文我們選擇功能強大的U-BOOT進(jìn)行移植。

1.簡(jiǎn)介

,全稱(chēng)Universal Boot Loader,是德國DENX小組開(kāi)發(fā)的用于多種嵌入式CPU的Bootloader引導程序,遵循GPL條款的開(kāi)放源碼項目。U-Boot是在 ppcboot以及armboot的基礎上發(fā)展而來(lái),現在已經(jīng)非常成熟與穩定,在許多嵌入式系統開(kāi)發(fā)過(guò)程中被采用。目前支持的目標操作系統包括 VxWorks、QNX、RTEMS、NetBSD、Lynxos等。就目前來(lái)看,對PowerPC系列處理器支持最豐富,同時(shí)還支持 MIPS,x86,ARM,Nios,XScale等諸多常用系列的處理器。U-BOOT對Linux的支持非常完善,是嵌入式Linux Bootloader的最佳選擇。

U-BOOT支持的主要功能:

◆系統引導——支持NFS掛載、RAMDISK(壓縮或非壓縮)形式的根文件系統,從Flash中引導壓縮或非壓縮系統內核。

◆基本輔助功能——強大的操作系統接口功能,可靈活設置、傳遞多個(gè)關(guān)鍵參數給操作系統,適合系統在不同開(kāi)發(fā)階段的調試要求與產(chǎn)品發(fā)布,尤其對Linux支持最強勁。

◆設備驅動(dòng)——串口、SDRAM、以太網(wǎng)、PCI、RTC等驅動(dòng)支持。

◆上電自檢功能——自動(dòng)檢測FLASH、SDRAM選型及使用情況。

2.U-boot的啟動(dòng)流程[2]

從操作系統的角度看,Bootloader的總目標就是正確的調用內核來(lái)執行。由于Bootloader的實(shí)現依賴(lài)于CPU的體系結構,因此U-BOOT啟動(dòng)大多數分為stage1和stage2兩大部分。

第一階段主要包含依賴(lài)于CPU的體系結構硬件初始化代碼,通常都用匯編語(yǔ)言來(lái)實(shí)現。U-BOOT的stage1如圖1所示。通常包括以下步驟:

①基本的硬件設備初始化(屏蔽所有的中斷、關(guān)閉處理器內部指令/數據cache等)。

②為加載Bootloader的Stage2準備空間。

③如果是從某個(gè)固態(tài)存儲媒質(zhì)中,則拷貝Bootloader的stage2到RAM空間中。

④設置好堆棧。

⑤跳轉到stage2的C程序入口點(diǎn)。

第二階段通常用C語(yǔ)言完成,以便實(shí)現更復雜的功能,也使程序有更好的可讀性和可移植性。這個(gè)階段的任務(wù)有: ①初始化本階段要使用到的硬件設備。②檢測系統內存映射。③將kernel映像和根文件系統映像從flash上讀到RAM空間中。④為內核設置啟動(dòng)參數⑤調用內核。


上一頁(yè) 1 2 3 下一頁(yè)

關(guān)鍵詞: Bootloader U-BOOT S3C44B0

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>