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

          新聞中心

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

          基于PxA255的U-B00t啟動(dòng)分析及移植

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

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

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

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


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


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


          上一頁(yè) 1 2 3 下一頁(yè)

          評(píng)論


          相關(guān)推薦

          技術(shù)專(zhuān)區(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); })();