U-Boot在MPC8265平臺上的移植與分析
在源代碼修改完成后,即可進(jìn)行編譯。編譯U-Boot需要在Linux主機上建立交叉編譯環(huán)境,本文使用Montavista公司的Montavista Linux Pro 4.0。在Linux主機上安裝Montavista交叉編譯工具后,設置環(huán)境變量,將Montavista工具鏈路徑導入到主機系統的環(huán)境變量中。如:#gedit./.bash_profile,打開(kāi)文件.bash_profile,增加PATH=$PATH:/opt/montavista/pro/devrocket/ppc/82xx/bin,然后刪除之前可能錯誤創(chuàng )建的所有目標文件,并針對目標板編譯。如下所示:

編譯完成后,得到3個(gè)文件:1)u-boot:ELF格式的文件,可被多數Debug程序識別;2)u-boot.bin:二進(jìn)制bin文件,U-boot的二進(jìn)制執行代碼,可通過(guò)JTAG接口下載到開(kāi)發(fā)板;3)u-boot.srec: Motorola的S-Record格式文件,可通過(guò)BDM接口下載到開(kāi)發(fā)板。
不同開(kāi)發(fā)板對U-Boot鏡像文件在Flash中的存放地址要求不同,這是由處理器中斷復位向量決定的,與開(kāi)發(fā)板硬件相關(guān),源代碼中U-Boot起始地址必須與硬件復位向量相符合。
使用MPC82xx系列處理器的主板是由硬件配置字(HRCW)決定的,如RPXlite板的中斷復位向量設置為Ox00000100,因此U-B00t鏡像文件必須燒寫(xiě)到Flash的起始位置。多數的PPC系列的處理器中斷復位向量是Ox00000100和Oxfff00100,即高位啟動(dòng)和低位啟動(dòng)的Bootloader所在位置。U-boot鏡像文件在Flash中的存放地址可通過(guò)設置U-Boot源碼的目標板>.h頭文件中CFG_MONITOR_BASE以及board/目標板>/confi-g.mk中的TEXT_BASE來(lái)與硬件配置相對應。
U-Boot鏡像文件在Flash中燒錄完成后,將目標板和主機的串口連接起來(lái),目標板上電復位,即可在主機終端窗口看到串口回顯的開(kāi)發(fā)板上U-Boot的啟動(dòng)引導信息,如圖2所示。本文引用地址:http://dyxdggzs.com/article/151751.htm
在終端窗口中輸入help,可以列出U-Boot所有命令列表。然后測試網(wǎng)口和Flash讀寫(xiě),工作正常,則可以認為U-Boot移植工作基本完成,接下來(lái)可以添加一些其他功能,并進(jìn)行Linux內核的引導和文件系統的移植。
4 結束語(yǔ)
Bootloader在嵌入式開(kāi)發(fā)中是操作系統和硬件的樞紐。在U-Boot移植過(guò)程中,不僅要掌握U-Boot的結構和工作流程外還需要對硬件有一定了解。本文移植的U-Boot已穩定運行在開(kāi)發(fā)板上,而且可以通過(guò)FIash和網(wǎng)絡(luò )加載Linux內核和NFS文件系統,為后續開(kāi)發(fā)奠定了良好的基礎。對于不同的CPU和開(kāi)發(fā)板,基本方法和步驟是相同的,本文的工作對于基于MPC82xx系列處理器的硬件平臺的U-Boot移植具有借鑒意義,并對嵌入式Linux系統的開(kāi)發(fā)提供了有益的技術(shù)參考。
評論