U-Boot在MPC8265平臺上的移植與分析
在源代碼修改完成后,即可進行編譯。編譯U-Boot需要在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ā)板對U-Boot鏡像文件在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ā)提供了有益的技術參考。
評論