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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > U-Boot在MPC8265平臺上的移植與分析

          U-Boot在MPC8265平臺上的移植與分析

          作者: 時間:2010-07-05 來源:網(wǎng)絡 收藏
          3.2 編譯鏡像文件
          在源代碼修改完成后,即可進行編譯。編譯需要在Linux主機上建立交叉編譯環(huán)境,本文使用Montavista公司的Montavista Linux Pro 4.0。在Linux主機上安裝Montavista交叉編譯工具后,設置環(huán)境變量,將Montavista工具鏈路徑導入到主機系統(tǒng)的環(huán)境變量中。如:#gedit./.bash_profile,打開文件.bash_profile,增加PATH=$PATH:/opt/montavista/pro/devrocket/ppc/82xx/bin,然后刪除之前可能錯誤創(chuàng)建的所有目標文件,并針對目標板編譯。如下所示:

          編譯完成后,得到3個文件:1)u-boot:ELF格式的文件,可被多數(shù)Debug程序識別;2)u-boot.bin:二進制bin文件,U-boot的二進制執(zhí)行代碼,可通過JTAG接口下載到開發(fā)板;3)u-boot.srec: Motorola的S-Record格式文件,可通過BDM接口下載到開發(fā)板。
          不同開發(fā)板對鏡像文件在Flash中的存放地址要求不同,這是由處理器中斷復位向量決定的,與開發(fā)板硬件相關,源代碼中U-Boot起始地址必須與硬件復位向量相符合。
          使用MPC82xx系列處理器的主板是由硬件配置字(HRCW)決定的,如RPXlite板的中斷復位向量設置為Ox00000100,因此U-B00t鏡像文件必須燒寫到Flash的起始位置。多數(shù)的PPC系列的處理器中斷復位向量是Ox00000100和Oxfff00100,即高位啟動和低位啟動的Bootloader所在位置。U-boot鏡像文件在Flash中的存放地址可通過設置U-Boot源碼的目標板>.h頭文件中CFG_MONITOR_BASE以及board/目標板>/confi-g.mk中的TEXT_BASE來與硬件配置相對應。
          U-Boot鏡像文件在Flash中燒錄完成后,將目標板和主機的串口連接起來,目標板上電復位,即可在主機終端窗口看到串口回顯的開發(fā)板上U-Boot的啟動引導信息,如圖2所示。

          本文引用地址:http://www.ex-cimer.com/article/151751.htm


          在終端窗口中輸入help,可以列出U-Boot所有命令列表。然后測試網(wǎng)口和Flash讀寫,工作正常,則可以認為U-Boot工作基本完成,接下來可以添加一些其他功能,并進行Linux內(nèi)核的引導和文件系統(tǒng)的。

          4 結束語
          Bootloader在嵌入式開發(fā)中是操作系統(tǒng)和硬件的樞紐。在U-Boot移植過程中,不僅要掌握U-Boot的結構和工作流程外還需要對硬件有一定了解。本文移植的U-Boot已穩(wěn)定運行在開發(fā)板上,而且可以通過FIash和網(wǎng)絡加載Linux內(nèi)核和NFS文件系統(tǒng),為后續(xù)開發(fā)奠定了良好的基礎。對于不同的CPU和開發(fā)板,基本方法和步驟是相同的,本文的工作對于基于MPC82xx系列處理器的硬件的U-Boot移植具有借鑒意義,并對嵌入式Linux系統(tǒng)的開發(fā)提供了有益的技術參考。


          上一頁 1 2 3 下一頁

          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁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); })();