<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在LPC2210上的移植分析

U-Boot在LPC2210上的移植分析

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

1.引言

是嵌入式軟件開(kāi)發(fā)的第一個(gè)環(huán)節,它為最終加載操作系統內核映像建立了正確的環(huán)境。是一個(gè)開(kāi)放源代碼的啟動(dòng)引導加載程序。筆者以PHILIP公司生產(chǎn)的 處理器為硬件基礎,詳細分析了軟件啟動(dòng)流程,以及針對源碼本身并不支持的處理器應用U-Boot作為 的移植方法,最后給出了U-Boot在上的移植實(shí)例。

2.簡(jiǎn)介

Bootloader(引導加載程序)是系統加電后運行的第一段軟件代碼。通過(guò)運行Bootloader程序,可以初始化硬件設備,建立系統的內存空間映射圖,從而將系統的軟硬件環(huán)境帶到一個(gè)適合的狀態(tài),以便為最終調用操作系統內核準備好正確的環(huán)境。最終,Bootloader把操作系統內核映像加載到RAM中,并將系統控制權傳遞給它。通常Bootloader對硬件的依賴(lài)性非常強,特別是在嵌入式系統世界,因此,在嵌入式系統世界里建立一個(gè)通用的Bootloader幾乎是不可能的。這就要求開(kāi)發(fā)人員根據不同的硬件環(huán)境來(lái)開(kāi)發(fā)適合自己開(kāi)發(fā)板的Bootloader程序。

3.U-Boot軟件結構

U-Boot,全稱(chēng)Universal Boot Loader,是遵循GPL條款的開(kāi)放源碼項目。U-Boot不僅僅支持嵌入式Linux系統的引導,它還支持多種主流嵌入式操作系統。這是U-Boot 中universal的一層含義。另外一層含義則是U-Boot能夠支持MIPS、ARM、XScale等諸多常用系列的處理器。這兩個(gè)特點(diǎn)正是U- Boot項目的開(kāi)發(fā)目標,即支持盡可能多的嵌入式處理器和嵌入式操作系統。U-Boot軟件在頂層目錄下有18個(gè)子目錄,分別存放和管理不同的源程序。這些目錄按照其不同的規則可以分為三類(lèi):

(1)與處理器體系或開(kāi)發(fā)板硬件直接相關(guān),例如:/board,/cpu,/include等;

(2)一些通用的函數或者驅動(dòng)程序,例如:/lib_arm,/driver,/Dtt,/common等;

(3)U-Boot的應用程序,工具或者文檔,/tools,/Doc,/Fs,/Post,/net等。

4.啟動(dòng)流程分析

U-Boot軟件的啟動(dòng)程序分為Stage1和Stage2兩個(gè)階段。依賴(lài)于CPU體系結構的代碼,通常都放在Stage1中,Stage1主要完成:硬件設備初始化;為加載Stage2準備RAM空間,復制Stage2到RAM空間中;設置堆棧;跳轉到Stage2的C入口點(diǎn)。Stage2通常用 C語(yǔ)言來(lái)實(shí)現,這樣可以實(shí)現更復雜的功能,而且代碼會(huì )具有更好的可讀性和移植性,在Stage2主要完成:初始化本階段要使用的硬件設備;檢測系統內存映射;將kernel映像和根文件系統映像從Flash上讀到RAM空間;設置內核啟動(dòng)參數,調用內核。

5.LPC2210下移植實(shí)例

5.1移植前準備工作

移植過(guò)程中要從軟件和硬件兩個(gè)方面準備。首先在Linux操作系統平臺下移植適合LPC2210處理器的交叉編譯環(huán)境,直接下載arm-elf- tools-20040427.sh,將它拷貝到根目錄并增加其可執行權限,通過(guò)/arm-elf-tools-20040427.sh命令運行腳本,查看/usr/local/bin目錄下有arm-elf開(kāi)頭的編譯環(huán)境文件則證明交叉編譯環(huán)境安裝成功。

開(kāi)發(fā)板硬件平臺是基于A(yíng)RM7TDMI RISC內核的LPC2210處理器,由于Bootloader軟件是和底層的硬件是緊密相關(guān)的,所以在移植前要充分了解與移植有關(guān)的開(kāi)發(fā)板硬件信息包括:系統硬件器件地址空間分配,初始化CPU流程、NOR FLASH,RAM驅動(dòng)及擦寫(xiě)芯片時(shí)序、網(wǎng)絡(luò )芯片驅動(dòng)等。移植相關(guān)的硬件框圖如圖1所示:

硬件框圖 圖1


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

關(guān)鍵詞: Bootloader U-Boot LPC2210

評論


相關(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>