機(jī)電之家資源網(wǎng)
單片機(jī)首頁|單片機(jī)基礎(chǔ)|單片機(jī)應(yīng)用|單片機(jī)開發(fā)|單片機(jī)文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開發(fā)
培訓(xùn)信息
贊助商
用U-BOOT構(gòu)建嵌入式系統(tǒng)的引導(dǎo)裝載程序
用U-BOOT構(gòu)建嵌入式系統(tǒng)的引導(dǎo)裝載程序
 更新時間:2008-8-18 14:46:15  點(diǎn)擊數(shù):64
【字體: 字體顏色

摘要 BootLoader(引導(dǎo)裝載程序)是嵌入式系統(tǒng)軟件開發(fā)的第一個環(huán)節(jié),它把操作系統(tǒng)和硬件平臺銜接在一起,對于嵌入式系統(tǒng)的后續(xù)軟件開發(fā)十分重要,在整個開發(fā)中也占有相當(dāng)大的比例。U-BOOT是當(dāng)前比較流行、功能強(qiáng)大的BootLoader,可以支持多種體系結(jié)構(gòu)。LH7A400是Sharp公司生產(chǎn)的一款基于ARM922T內(nèi)核的32位RISC芯片,本文詳細(xì)介紹U-BOOT的功能、特點(diǎn)以及在LH7A400處理器上的移植過程。

關(guān)鍵詞 BootLoader U-BOOT移植 LH7A400 ARM922T

引言

  本文以U-BOOT為例,介紹了如何在ARM9開發(fā)板上移植BootLoader的過程。LH7A400學(xué)習(xí)板是旋極公司推出的一款高性能嵌入式開發(fā)板,其采用的處理器LH7A400是Sharp公司生產(chǎn)的一款基于ARM922T內(nèi)核的32位RISC芯片。該芯片集成了高性能的32位RISC處理器核ARM922T(運(yùn)算速度200MHz,總線速度100MHz) ,能使處理速度達(dá)到每秒220百萬條指令(MIPS),能耗為1.33mW/MIPS,可以在低電壓狀態(tài)下工作(核心1.8V,輸入/輸出3.3 V),片內(nèi)帶有鎖相回路(PLL)和低能耗核心。此外該芯片還包括: 16KB 高速緩存(Cache), 存儲器管理單元(MMU), 80KB 靜態(tài)存儲器(SRAM), 彩色液晶顯示控制器(LCD), 直接存儲控制器(10通道DMA), 異步串行口控制器(UART), 同步串行口控制器(SSP), PCMCIA控制器, AC97聲音控制器, 智能卡控制器, 多媒體卡控制器, 電池控制器, USB控制器和時鐘/供電管理器。值得一提的是,LH7A400是一款寬溫芯片,其工作溫度范圍為-40℃~+85℃(降低時鐘頻率),可廣泛應(yīng)用于無線手持設(shè)備、智能電話、PDA、家庭娛樂控制器、PocketPC及各種工控設(shè)備。

  該學(xué)習(xí)板還包括如下硬件:由2片16位Flash (32MB)和2片16位的SDRAM(64M)構(gòu)成32位寬的高速存儲器結(jié)構(gòu);10/100M自適應(yīng)網(wǎng)絡(luò)芯片DM9000;Sharp 3.5’TFT LCD彩屏;觸摸屏;USB Host/Device;CF卡插槽;全功能JTAG接口等。

1  U-BOOT簡介

  U-BOOT是由德國的工程師Wolfgang Denk從8XXROM代碼發(fā)展而來的,它支持很多處理器,比如PowerPC、ARM、MIPS和x86。目前,U-BOOT源代碼在sourceforge網(wǎng)站的社區(qū)服務(wù)器中,Internet上有一群自由開發(fā)人員對其進(jìn)行維護(hù)和開發(fā),它的項(xiàng)目主頁是http://sourceforge.net/projects/U-BOOT。U-BOOT的最新版本源代碼可以在Sourceforge的CVS服務(wù)器中匿名獲得。

  #cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/U-BOOT login
  #cvs -z6 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/U-BOOT \ co -P modulename

1.1  U-BOOT源代碼目錄結(jié)構(gòu)

  ◆ board:和一些已有開發(fā)板有關(guān)的文件,比如Makefile和u-boot.lds等都和具體開發(fā)板的硬件和地址分配有關(guān)。
  ◆ common:與體系結(jié)構(gòu)無關(guān)的文件,實(shí)現(xiàn)各種命令的C文件。
  ◆ cpu:CPU相關(guān)文件,其中的子目錄都是以U-BOOT所支持的CPU為名,比如有子目錄arm926ejs、mips、mpc8260和nios等,每個特定的子目錄中都包括cpu.c和interrupt.c,start.S。其中cpu.c初始化CPU、設(shè)置指令Cache和數(shù)據(jù)Cache等;interrupt.c設(shè)置系統(tǒng)的各種中斷和異常,比如快速中斷、開關(guān)中斷、時鐘中斷、軟件中斷、預(yù)取中止和未定義指令等;start.S是U-BOOT啟動時執(zhí)行的第一個文件,它主要是設(shè)置系統(tǒng)堆棧和工作方式,為進(jìn)入C程序奠定基礎(chǔ)。
  ◆ disk:disk驅(qū)動的分區(qū)處理代碼。
  ◆ doc:文檔。
  ◆ drivers:通用設(shè)備驅(qū)動程序,比如各種網(wǎng)卡、支持CFI的Flash、串口和USB總線等。
  ◆ fs:支持文件系統(tǒng)的文件,U-BOOT現(xiàn)在支持cramfs、fat、fdos、jffs2和registerfs。
  ◆ include:頭文件,還有對各種硬件平臺支持的匯編文件,系統(tǒng)的配置文件和對文件系統(tǒng)支持的文件。
  ◆ net:與網(wǎng)絡(luò)有關(guān)的代碼,BOOTP協(xié)議、TFTP協(xié)議、RARP協(xié)議和NFS文件系統(tǒng)的實(shí)現(xiàn)。
  ◆ lib_arm:與ARM體系結(jié)構(gòu)相關(guān)的代碼。
  ◆ tools:創(chuàng)建S-Record格式文件 和U-BOOT images的工具。

1.2  U-BOOT的特點(diǎn)

  U-BOOT支持SCC/FEC以太網(wǎng)、OOTP/TFTP引導(dǎo)、IP和MAC的預(yù)置功能,這一點(diǎn)和其它BootLoader(如BLOB和RedBoot等)類似。但U-BOOT還具有一些特有的功能。

  ◆ 在線讀寫Flash、DOC、IDE、IIC、EEROM、RTC,其它的BootLoader根本不支持IDE和DOC的在線讀寫。
  ◆ 支持串行口kermit和S-record下載代碼,U-BOOT本身的工具可以把ELF32格式的可執(zhí)行文件轉(zhuǎn)換成為 S-record格式,直接從串口下載并執(zhí)行。
  ◆ 識別二進(jìn)制、ELF32、uImage格式的Image,對Linux引導(dǎo)有特別的支持。U-BOOT對Linux 內(nèi)核進(jìn)一步封裝為uImage。封裝如下:

  #{CROSS_COMPILE}-objcopy -O binary -R.note -R.comment -S vmlinux \ linux.bin 
  #gzip -9 linux.bin
  #tools/mkimage -A arm -O linux -T kernel -C gzip -a 0xc0008000 -e\0xc0008000 -n “Linux-2.4.20” -d linux.bin.gz /tftpboot/uImage

  即在Linux內(nèi)核鏡像vmLinux前添加了一個特殊的頭,這個頭在include/image.h中定義,包括目標(biāo)操作系統(tǒng)的種類(比如Linux,VxWorks等)、目標(biāo)CPU的體系機(jī)構(gòu)(比如ARM、PowerPC等)、映像文件壓縮類型(比如gzip、bzip2等)、加載地址、入口地址、映像名稱和映像的生成時間。當(dāng)系統(tǒng)引導(dǎo)時,U-BOOT會對這個文件頭進(jìn)行CRC校驗(yàn),如果正確,才會跳到內(nèi)核執(zhí)行。如下所示:

  WT-ARM9# bootm 0xc1000000

[1] [2] [3] [4]  下一頁
  • 上一篇: 低功耗FPGA時代的來臨——訪QuickLogic公司邏輯產(chǎn)品總監(jiān)Brian Faith先生
  • 下一篇: 機(jī)會與變數(shù)
  • 發(fā)表評論   告訴好友   打印此文  收藏此頁  關(guān)閉窗口  返回頂部
    熱點(diǎn)文章
     
    推薦文章
     
    相關(guān)文章
    網(wǎng)友評論:(只顯示最新5條。)
    關(guān)于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機(jī)電之家 | 會員助手 | 免費(fèi)鏈接

    點(diǎn)擊這里給我發(fā)消息66821730(技術(shù)支持)點(diǎn)擊這里給我發(fā)消息66821730(廣告投放) 點(diǎn)擊這里給我發(fā)消息41031197(編輯) 點(diǎn)擊這里給我發(fā)消息58733127(審核)
    本站提供的機(jī)電設(shè)備,機(jī)電供求等信息由機(jī)電企業(yè)自行提供,該企業(yè)負(fù)責(zé)信息內(nèi)容的真實(shí)性、準(zhǔn)確性和合法性。
    機(jī)電之家對此不承擔(dān)任何保證責(zé)任,有侵犯您利益的地方請聯(lián)系機(jī)電之家,機(jī)電之家將及時作出處理。
    Copyright 2007 機(jī)電之家 Inc All Rights Reserved.機(jī)電之家-由機(jī)電一體化網(wǎng)更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術(shù)支持

    主辦:杭州市高新區(qū)(濱江)機(jī)電一體化學(xué)會
    中國行業(yè)電子商務(wù)100強(qiáng)網(wǎng)站

    網(wǎng)站經(jīng)營許可證:浙B2-20080178-1