<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > Bootloader在A(yíng)T91RM9200系統中的實(shí)現

Bootloader在A(yíng)T91RM9200系統中的實(shí)現

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

這個(gè)OrgDef數組給出了Flash中的段的信息。在函數flash_identification(flash_info_t * info)中修改打印的信息,flash_init(void)和 flash_print_info(flash_info_t * info)中的變量要相應的修改,最后 flash_erase()中的身份判斷部分相應的修改(如果只支持一種Flash芯片的話(huà)可以去掉)。

按照本系統硬件情況,關(guān)鍵是Flash的驅動(dòng)部分的修改。由于Bootloader是為了引導操作系統,如本文的第2部分分析完成最基本的硬件的初始化即可,所以在實(shí)際移植中經(jīng)常需要做的一般如上文所述。

接下來(lái)在Linux下進(jìn)行編譯,設置環(huán)境變量PATH為交叉編譯器的路徑所在目錄,如:

PATH=$PATH:/usr/local/arm/2.95/bin

在代碼的頂層目錄下執行以下命令:

make distclean

make at91rm9200dk_config

make

編譯成功可以得到得到三個(gè)文件:u-boot,u-boot.bin,u-boot.srec。其中boot包含有很多調試信息,可以被很多調試程序讀,開(kāi)發(fā)者也可以用readelf、objdump等命令來(lái)查看里面包含的段地址等信息。u-boot.bin文件是ARM可以直接執行的二進(jìn)制的文件。u-boot.srec是 MotololarMT srec格式的文件。

按照1.2中介紹的方法燒寫(xiě)到Flash芯片,設置跳線(xiàn),使BMS引腳為低電平,CPU從外部啟動(dòng),從超級終端顯示的啟動(dòng)信息。

3.3 調試

調試過(guò)程中遇到的問(wèn)題可能是移植的問(wèn)題,也有可能是硬件的問(wèn)題,需要開(kāi)發(fā)者做出判斷。仔細的閱讀的源代碼,對于了解硬件環(huán)境,進(jìn)行調試有很大好處。同時(shí)代碼有一些用于調試的條件編譯,用dbg ()、debug()等函數輸出調試信息,開(kāi)發(fā)者可以通過(guò)這些調試信息輸出函數得到編譯以得到相關(guān)部分的調試信息。

編譯通過(guò)之后將u-boot.bin載入SDRAM中運行,分別試驗erase,cp,printenv,saveenv等命令檢測對Flash的操作,使用tftp命令以檢測網(wǎng)口下載功能,然后裝載操作系統內核,完成以上的任務(wù)則移植成功。經(jīng)過(guò)以上步驟移植的U-Boot已經(jīng)在本人開(kāi)發(fā)的ARM板上順利的引導Linux操作系統。

4 總結

本文是筆者結合的開(kāi)發(fā)經(jīng)驗,首先介紹了該處理器的特點(diǎn),探討了利用GNU開(kāi)發(fā)的一般方法和步驟,最后詳細地分析了U-boot在嵌入式系統上的移植?;谄渌腃PU的嵌入式平臺上的Bootloader的移植與此相似,希望本文能對嵌入式開(kāi)發(fā)人員有借鑒意義。 是適合于工業(yè)控制、汽車(chē)電子、醫療器械等領(lǐng)域的一款基于A(yíng)RM920T核的高性能芯片,屬于當前比較高端的RISC處理器。文章首先分析了芯片引導的特點(diǎn),然后在基于A(yíng)T91RM9200的嵌入式系統上實(shí)現Bootloader(操作系統的引導裝載程序)的方法,特別是通過(guò)對移植U-boot的方法和常見(jiàn)問(wèn)題的詳細介紹。

本文作者創(chuàng )新點(diǎn):闡明了在基于RISC芯片(ARM、MIPS,PPC等)的系統開(kāi)發(fā)中實(shí)現的方法,為廣大的嵌入式開(kāi)發(fā)人員提供了一個(gè)參考。

參考文獻:

[1] 朱義君 楊育紅 趙凱 段志英,AT91系列ARM微控制器體系結構與開(kāi)發(fā)實(shí)例[M],北京航空航天大學(xué)出版社,2005

[2] Atmel Corporation, ARM920TTM Based Microcontroller AT91RM9200,2004

[3] Wookey, Chris Rutter, Jeff Sutherl, Paul Webb, The GNU Toolchain for ARM Targets HOWTO.

[4] The DENX U-BOOT and Linux Guide (DULG), http://www.denx.de/twiki/bim/view/DULG/Mannual

[5] 萬(wàn)永波 張根寶 田澤 楊峰,基于A(yíng)RM的嵌入式系統Bootloader啟動(dòng)流程分析, 微計算機信息, 2005年,第21卷11-2期,90頁(yè)


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

關(guān)鍵詞: bootloader U-boot AT91RM9200

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>