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

          關(guān) 閉

          新聞中心

          EEPW首頁 > 工控自動(dòng)化 > 設(shè)計(jì)應(yīng)用 > 基于MPC8349控制計(jì)算機(jī)的U-Boot移植

          基于MPC8349控制計(jì)算機(jī)的U-Boot移植

          作者: 時(shí)間:2010-05-06 來源:網(wǎng)絡(luò) 收藏

          0 引言
          U- (Universal Loader),是在PPC 的基礎(chǔ)上,集成了ARM, XScale, x86,MIPS 等結(jié)構(gòu)發(fā)展來的。作為Boot loader,其主要安裝在嵌入式系統(tǒng)板上的ROM 中。 它主要用來初始化、檢測(cè)系統(tǒng)硬件,以及下載、運(yùn)行有關(guān)的應(yīng)用代碼。 在這篇論文中,采用的是開源的最新版本U-Boot 1.1.3。U-Boot 1.1.3 支持的CPU包括, 8xx, 5xx, 824x,MPC82xx, MPC83xx, MPC85xx, MPC74xx 等。
          U-Boot 之所以主要是因其支持很多文件類型。
          (1) 獨(dú)立的應(yīng)用程序:該程序直接在U-Boot 環(huán)境下執(zhí)行,并且執(zhí)行完畢后重新返回U-Boot 環(huán)境。
          (2) “Linux 操作系統(tǒng)Kernel 文件”: U-Boot 可以引導(dǎo)Linux 操作系統(tǒng)Kernel 文件在系統(tǒng)板上執(zhí)行。在完成該引導(dǎo)過程后,必須通過重新啟動(dòng)CPU 才能再次進(jìn)入U(xiǎn)-Boot 環(huán)境。
          (3) “操作系統(tǒng)Ramdisk 文件”: U-Boot 可以引導(dǎo)加載Linux 操作系統(tǒng)Ramdisk 文件。該文件主要是作為系統(tǒng)板,啟動(dòng)時(shí)需要加載的文件系統(tǒng)。
          (4)“綜合文件”: 該文件可以包括一種或幾種U-Boot 所支持的文件。比如包括Linux 操作系統(tǒng)內(nèi)核和啟動(dòng)時(shí)需要加載的ramdisk 文件系統(tǒng)。
          (5) “可執(zhí)行文件”: 該文件主要由U-Boot 將其燒錄到系統(tǒng)板的Flash 中。比如,uboot.bin。
          (6) “腳本文件”: 該文件主要用在U-Boot 啟動(dòng)時(shí)利用腳本文件來設(shè)置具體的環(huán)境變量。
          1 U-Boot 工作原理
          U-Boot啟動(dòng)過程可以分成三個(gè)階段。
          (1)執(zhí)行start.S(cpu/mpc83xx/start.S)匯編程序,見圖1.
          (2)執(zhí)行U-Boot啟動(dòng)過程中的第一個(gè)C語言函數(shù)board.(lib_ppc/board.c),見圖2。
          (3)系統(tǒng)進(jìn)入主循環(huán)main_loop(common/main.c)延時(shí)等待處理用戶命令或自動(dòng)執(zhí)行啟動(dòng),見圖3。

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


          3 U-Boot 的文件結(jié)構(gòu)
          在U-boot 包含board, common, cpu, disk,doc, drivers, dtt, examples, fs, include 等文件。但是,針對(duì)具體的應(yīng)用,只需要修改設(shè)定的與我們系統(tǒng)有關(guān)的代碼。當(dāng)我們的U-boot 編譯成功后,必要的二進(jìn)制文件將成為在u-boot-1.1.3 文件夾中。這些文件中,最重要的是。
          config.mk:定義基地址和CFLAGS。
          MAKEALL:用來定義所有支持的系統(tǒng)板以及U-Boot 源碼。
          Makefile: U-Boot 編譯時(shí)要用到的文件。
          Mkconfig:用來創(chuàng)建頭文件并鏈接生成針對(duì)系統(tǒng)板的U-Boot的腳本。
          u-boot.bin:U-Boot 編譯成功后形成的二進(jìn)制文件,可以燒錄到系統(tǒng)板的flash 中。
          除了以上四個(gè)重要文件之后,在u-boot-1.1.3 目錄下面還有一些重要的文件。
          (1)在u-boot-1.1.3/board/下,重要的文件包括。
          flash.c::定義針對(duì)flash 的命令。
          init.S:用來定義 TLBs 和LAWs。
          mpc.c: 針對(duì)mpc 的特殊代碼。
          u-boot.lds:: 系統(tǒng)板的鏈接文件。
          (2)在u-boot-1.1.3/cpu/下, 主要的文件包括。
          start.c::U-Boot 啟動(dòng)時(shí)所要執(zhí)行的第一個(gè)程序。
          spd_sdram.c:初始化和配置系統(tǒng)板的DDR。
          (3)在u-boot-1.1.3/include/configs/下, 主要的文件包括。

          MPC.h:針對(duì)系統(tǒng)板的具體局宏定義。
          flash.h: 包含各種Flash 芯片的具體資料數(shù)據(jù)的定義。
          (4)在u-boot-1.1.3/include/lib_ppc/下, 重要的文件包括。

          board.c: 系統(tǒng)板的初始化函數(shù)。
          (5)在u-boot-1.1.3/common/下, 重要的文件包括。
          main.c: 整個(gè)U-Boot 啟動(dòng)時(shí)的主循環(huán)函數(shù)。
          4 為MPC8349 制作合適的U-Boot
          A 針對(duì)系統(tǒng)板的 U-Boot 修改
          在控制的硬件系統(tǒng)包括兩片8M Flash, 128M SDRAM, 6 GBE 和 2 FCC 等。為了讓U-Boot 在該系統(tǒng)上正確的運(yùn)行 ,應(yīng)該針對(duì)該系統(tǒng)設(shè)置一些特殊的結(jié)構(gòu)參數(shù)選擇。
          (1)編輯 “Makefile” and “MAKEALL”
          (2)添加新的代碼到針對(duì)系統(tǒng)板的文件夾中。
          在此過程中,我們應(yīng)該創(chuàng)建一個(gè)新的目錄用來存放系統(tǒng)的特殊代碼。我們可以添加系統(tǒng)板需要的任何文件。在系統(tǒng)板的目錄,有些文件是必須有的。
          u-boot-1.1.3/board/mpc8349/mpc8349.c,
          u-boot-1.1.3/board/mpc8349/flash.c,
          u-boot-1.1.3/board/mpc8349/init.S,
          u-boot-1.1.3/board/mpc8349/u-boot.lds,
          u-boot-1.1.3/include/configs/MPC8349.h,
          u-boot-1.1.3/lib_ppc/board.c,
          u-boot-1.1.3/Makefile,
          u-boot-1.1.3/MAKEALL.
          B. U-Boot 的交叉編譯環(huán)境的建立
          開發(fā)系統(tǒng)主機(jī)的系統(tǒng)是FC6.0。用到的源碼有g(shù)cc-3.4.3/glibc-2.3.2、Linux


          上一頁 1 2 下一頁

          關(guān)鍵詞: 8349 Boot MPC 計(jì)算機(jī)

          評(píng)論


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