新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > U-Boot在MPC8265平臺上的移植與分析

        U-Boot在MPC8265平臺上的移植與分析

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



        3
        在設計時已考慮到支持使用不同CPU處理器的開發板,根據具體板級硬件配置的設計要求,修改與其相關的源代碼,將到新的開發板上。這里開發板TDS8265外圍接口主要有100 M網口、RS232串口和JTAG調試接口等。
        3.1 修改U-Boot源代碼
        為了簡化工作,可在U-Boot源碼中選擇一個與開發板接近的參考,然后從移植U-Boot的要求和開發板能正常啟動的角度出發進行修改。
        這里以在U-Boot/board目錄下為TDS8265開發板新建文件夾TDS8265為例進行說明。
        1)修改頭文件TDS8265.h路徑是U-Boot/include/configs/TDS8265.h,是開發板的主要配置元件,配置CPU、系統時鐘、SDRAM、Flash以及其他開發板相關信息。設置CPU寄存器參數,需仔細對照處理器datasheet中各寄存器的定義、參考設置、目標板實際情況等做出選擇并測試。MPC82xx系列處理器較為關鍵的寄存器有SIUMCR、PS-DMR、SCCR、BRx、ORx等。設置CPU寄存器基地址IMMR時,注意與硬件配置相對應。如:

        設置與Flash控制相關的寄存器BR0、OR0時,根據目標板所用Flash的數據手冊與BR0和OR0的相關位含義合理設置,這不僅關系到Flash能否正常工作,而且與串口調試直接相關。設置Flash、SDRAM,包括基址、大小、環境變量的偏移,內存刷新周期。設置環境變量,網絡接口,IP地址,MAC地址,用于網絡下載和啟動;設置Linux內核啟動參數init=/sbin/init。
        2)編寫tds8265.c文件 路徑是U-Boot/board/tds8265/tds8265.c。tds8265.c是目標板的SDRAM的驅動程序,涉及I/0端口表、相關寄存器的設置及SDRAM上電初始化過程3個主要部分。任何一部分有問題,都會影響U-Boot、嵌入式操作系統甚至應用程序的運行,所以SDRAM的驅動不僅關系到U-Boot本身能否正常運行,而且還與后續部分相關。根據處理器datasheet和開發板的硬件電路圖,配置8265的I/0端口表;設置寄存器PSDMR和BRl、0R1;向SDRAM中寫入8次以初始化SDRAM等。SDRAM的初始化是由/lib_ppc/board.c中的board_init_f()調用的,入口為tds8265.c的函數initdram。
        3)修改config.mk文件 路徑是U-Boot/board/tds8265/config.mk。修改中,對該文件中的TEXT_BASE賦值應與TDS8265.h中對CF-G_FLASH_BASE的賦值保持一致。
        4)編寫flash.c文件 路徑是U-Boot/board/tds8265/flash.c。flash.c是Flash的驅動程序,是U-Boot讀/寫、刪除Flash的源代碼
        文件,其中包括多個函數,以實現不同的操作。如:

        編寫flash.c文件時需參考Flash的數據手冊,嚴格按照其中的說明實現Flash的各種操作。
        5)創建U-boot.lds,U-boot.lds.debug,makefile文件 這些文件均在目錄U-Boot/board/tds8265之下。設置U-boot中各個目標文件的連接地址。
        6)修改MAKEALL文件 路徑是U-Boot/MAKEALL。因為使用的是,屬于82xx系列,所以在“LIST_82xx”下加入目標板名稱“TDS8265”。
        7)修改Makefile文件 路徑是U-Boot/Makefile。在Makefile文件中增加TDS8265開發板的配置行,指定交叉編譯器的完整路徑名。



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 邓州市| 泸西县| 德钦县| 高阳县| 康保县| 商丘市| 尚义县| 分宜县| 会泽县| 屏东市| 和平区| 宜黄县| 错那县| 且末县| 页游| 讷河市| 灯塔市| 青田县| 介休市| 高邑县| 沙湾县| 思南县| 堆龙德庆县| 秭归县| 阿鲁科尔沁旗| 咸宁市| 泰州市| 托克逊县| 河东区| 萨迦县| 余干县| 聂荣县| 偃师市| 共和县| 延寿县| 沙坪坝区| 游戏| 吉林市| 汶上县| 靖边县| 区。|