• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 關 閉

    新聞中心

    EEPW首頁 > 工控自動化 > 設計應用 > 基于MPC8349控制計算機的U-Boot移植

    基于MPC8349控制計算機的U-Boot移植

    作者: 時間:2010-05-06 來源:網絡 收藏

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

    本文引用地址:http://www.czjhyjcfj.com/article/202543.htm


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

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

    board.c: 系統板的初始化函數。
    (5)在u-boot-1.1.3/common/下, 重要的文件包括。
    main.c: 整個U-Boot 啟動時的主循環函數。
    4 為MPC8349 制作合適的U-Boot
    A 針對系統板的 U-Boot 修改
    在控制的硬件系統包括兩片8M Flash, 128M SDRAM, 6 GBE 和 2 FCC 等。為了讓U-Boot 在該系統上正確的運行 ,應該針對該系統設置一些特殊的結構參數選擇。
    (1)編輯 “Makefile” and “MAKEALL”
    (2)添加新的代碼到針對系統板的文件夾中。
    在此過程中,我們應該創建一個新的目錄用來存放系統的特殊代碼。我們可以添加系統板需要的任何文件。在系統板的目錄,有些文件是必須有的。
    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 的交叉編譯環境的建立
    開發系統主機的系統是FC6.0。用到的源碼有gcc-3.4.3/glibc-2.3.2、Linux


    上一頁 1 2 下一頁

    關鍵詞: 8349 Boot MPC 計算機

    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 龙游县| 胶州市| 石屏县| 读书| 永嘉县| 屏东县| 小金县| 昭觉县| 新晃| 金溪县| 肇源县| 崇义县| 丰镇市| 定结县| 壤塘县| 稻城县| 都匀市| 木里| 柳州市| 甘德县| 昌都县| 施秉县| 化德县| 长沙市| 大理市| 甘肃省| 云阳县| 隆子县| 什邡市| 双辽市| 东乡| 泾川县| 南宁市| 西峡县| 泰兴市| 高台县| 东明县| 巴中市| 龙胜| 景德镇市| 饶平县|