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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于PxA255的U-B00t啟動分析及移植

          基于PxA255的U-B00t啟動分析及移植

          作者: 時間:2009-05-19 來源:網(wǎng)絡(luò) 收藏

          3.4.1 目標(biāo)板配置文件的修改
          目標(biāo)板配置文件inclLlde/configs/xsbase255.h,是過程中最重要的文件。在這個文件中,包括兩種類型的配置,一類是選項,前綴是CONFIG_,用來選擇處理器、接口、命令、屬性等;另一類是CFG_用來定義總線頻率、串口波特率等。例如:
          #define CONFIG_PXA255 1
          #define CFG_SDRAMBASE O xa0000000
          在這個頭文件中,配置相當(dāng)?shù)闹匾?,里面配置著主要硬件的參?shù),配置時必須結(jié)合相應(yīng)的硬件手冊才能正確的完成。主要的配置參數(shù)如表1所示。

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

          除了上述表格列舉的以外,還有一些其他的參數(shù)需要修改,例如控制臺串口缺省的通信波特率,缺省的環(huán)境變量設(shè)置(包括本地IP地址、以太網(wǎng)接口的掩碼和MAC地址、服務(wù)器IP地址、傳遞給內(nèi)核的命令行參數(shù)等),參數(shù)列表配置等。頭文件的修改需要對目標(biāo)板的硬件資源有相當(dāng)?shù)牧私?,主要參考處理器和目?biāo)板的開發(fā)文檔。
          3.4.2 目標(biāo)板支持文件的修改
          目標(biāo)板支持文件board/xsbase255/xsbase255.c也需要修改,此文件中的重點(diǎn)是board_init()函數(shù),這個函數(shù)里包含與開發(fā)板密切相關(guān)的設(shè)備的初始化。bi_arch_number為系統(tǒng)時傳遞給內(nèi)核的MACH號,如果這個參數(shù)與內(nèi)核配置的不相同,則內(nèi)核解壓縮完成后將出現(xiàn)“Error:a”錯誤,提示用戶這個是體系結(jié)構(gòu)參數(shù)傳遞不正確。bi_boot_params為啟動參數(shù)的地址,一般放在RAM起始的16 Kb處,在此設(shè)置為Oxa0000100。
          3.4.3 驅(qū)動的
          在這一部分主要包括閃存和網(wǎng)卡驅(qū)動程序的。
          (1)FLASH驅(qū)動。這里所使用的目標(biāo)板采用2片NOR型閃存,單片容量16 MB,數(shù)據(jù)線寬度為16 b,2片并作1個32 MB的數(shù)據(jù)寬度為32 b的。BANK。U-Boot本身支持CFI接口規(guī)范的閃存(CFI是針對NOR型FLASH提出的一種獲取閃存和結(jié)構(gòu)參數(shù)的操作規(guī)程和標(biāo)準(zhǔn)),涉及到的文件主要包括drivers/cfi-FLASH.c,comrhand/cmd_FLASH.c。要使U-Boot,支持CFI驅(qū)動,只需在include/configs/xsbase255.h中添加:
          #define CFG_FLASH_CFI
          #defineCFG_FLASH_CFl_DRIVER 1
          (2)網(wǎng)卡驅(qū)動。這里使用的目標(biāo)板上采用的網(wǎng)卡是LAN91C96,U-Boot自帶的驅(qū)動程序drivers/lan91c96.c恰好支持這個網(wǎng)卡,因此只需在include/Configs/xsbase255.h中添加相應(yīng)的配置即可:
          #define CONFIG_DRIVER_IAN91C96
          #define CONFIG_LAN91C96_BASE 0x0C000300
          CONFIG_LAN91C96_BASE定義的值,應(yīng)當(dāng)由網(wǎng)卡的片選地址和I/O基址決定。如果U-Boot固有的驅(qū)動程序沒有對目標(biāo)板的支持,就需要自行在board/xsbase255目錄下添加驅(qū)動程序,然后將其添加到本目錄的Makefile中進(jìn)行編譯和鏈接。


          4 U-Boot的編譯和下載調(diào)試
          在U-Boot根目錄里輸入命令:
          make xsbase255_config
          該命令通過./mkconfig腳本生成include/config.mk的配置文件,然后運(yùn)行make命令,完成編譯。如果在編譯過程中出現(xiàn)錯誤,可根據(jù)錯誤的提示逐一排查。完成了錯誤的修改,在重新編譯前,先運(yùn)行make distclean命令,對先前編譯生成的文件進(jìn)行徹底的清除。
          成功編譯后,會生成3種不同的映像格式,分別是:u-boot:.bin(二進(jìn)制格式),u-boot(ELF格式)和u-boot.srec(S―Record格式),根據(jù)加載器的不同,選擇合適的格式燒寫到FLASH中進(jìn)行運(yùn)行調(diào)試。在此選擇u-boot.bin,直接按照二進(jìn)制格式下載。
          最有效的調(diào)試方法是下載映像到FLASH,使用硬件仿真器進(jìn)行跟蹤調(diào)試。但是由于硬件仿真器價格高等客觀因素,采用軟件跟蹤的方法,利用目標(biāo)板上的LED燈做出判斷。一旦可以打印串口信息,就可以利用串口,將調(diào)試信息輸出到屏幕上。


          5 結(jié) 語
          U-Boot是一個功能強(qiáng)大的:Bootloader開發(fā)軟件,對多種開發(fā)板的支持使得它可以方便地移植到目標(biāo)板上。首先詳細(xì)U-Boot啟動流程,然后詳細(xì)介紹U-Boot在PXA255目標(biāo)板上移植的全過程。目前U-Boot已經(jīng)在目標(biāo)板上穩(wěn)定的運(yùn)行,為Linux內(nèi)核的移植打下了堅實(shí)的基礎(chǔ)。


          上一頁 1 2 3 下一頁

          關(guān)鍵詞: 分析 移植 啟動 U-B00t PxA255 基于

          評論


          相關(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); })();