<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > U-Boot在LPC2210上的移植分析

          U-Boot在LPC2210上的移植分析

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

          1.引言

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

          2.簡(jiǎn)介

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

          3.U-Boot軟件結(jié)構(gòu)

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

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

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

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

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

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

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

          5.1移植前準(zhǔn)備工作

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

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

          硬件框圖 圖1


          上一頁 1 2 3 下一頁

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

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();