• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

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

    U-Boot在LPC2210上的移植分析

    作者: 時間:2012-03-22 來源:網絡 收藏

    5.4 board/dx2210開發板相關文件

    在這個目錄中主要包含dx2210.c、config.mk、flash.c、memsetup.S、u-boot.lds幾個文件。在 dx2210.c文件中主要工作為初始化開發板,在文件中編寫int board_init(void)函數定義各個復用I/O端口的信息、初始化RAM芯片等完成初始化工作。由于在u-boot代碼中是用抽象成一種結構體來描述開發板硬件信息以便于移植工作,因此在文件中修改:

    gd->bd->bi_arch_number=MACH_TYPE_; //開發板架構ID號

    gd->bd->bi_boot_params=0x81000100; //傳遞給ucinux內核的參數

    gd->bd->bi_dram[0].start=PHYS_SDRAM_1;

    gd->bd->bi_dram[0].size=PHYS_SDRAM_1_SIZE; //RAM內存配置

    u-boot.lds是給Linker程序使用的配置文件,主要修改部分:

    SECTIONS

    { .=0x80000000; //起始地址為0x80000000

    .=ALIGN(4); //4字節對齊

    .text :

    { cpu//start.o (.text)

    *(.text) //text段的起始是start.S的text段

    memsetup.S匯編文件主要是用來初始化RAM,在memsetup.S文件中配置開發板用到的存儲器組,然后根據MT45W4MW16芯片手冊驅動RAM;Flash芯片的驅動代碼在flash.c文件中,由于開發板的Flash芯片SST39VF160與B2開發板芯片相同,直接復制后即可。

    6.生成目標文件完成移植工作

    移植工作完成后在SHELL環境下依次運行如下命令:make clean; make dx2210_config;make。成功編譯后生成4個映像文件分別是:u-boot.hex文件: 映像原始的INTEL HEX格式文件;u-boot.map文件:y映像的符號表;u-boot.srec文件:映像的S-Record格式文件;System.map文件: U-Boot映像的符號表。使用Flash燒寫工具將u-boot.hex文件按照16進制格式下載到Nor Flash中,再將uclinux內核映像文件和根文件系統影響文件init.img燒寫到Nor Flash的指定地址后,可以看到如圖2所示的存儲空間分布:

    圖2 存儲空間映射

    其中u-boot映像文件存放在Flash的起始地址0x80000000處,相當于程序的邏輯地址0x0處與硬件確定的復位向量相符合;u-boot在stage2部分將Flash中的內核映像和根文件系統映像復制到從0x81008000開始的2MB內存范圍內,空出來的32K內存空間主要來存放uclinux內核的一些全局的數據結構,如啟動參數和內核頁表等信息。

    7.結束語

    本文首先闡述了引導程序得基本原理,在介紹了開放源代碼程序U-Boot軟件基礎上,以 ARM7處理器及其相關開發板為例,完成了U-Boot軟件的移植工作。前期的啟動引導程序的移植工作是嵌入式系統開發的重要環節,在此基礎上可以更加深入的進行嵌入式系統開發。

    本文作者創新點:本文在詳細的分析U-Boot軟件的基礎上,針對U-Boot軟件本身并不支持的ARM7 LPC2210,本文介紹了在U-Boot軟件中添加相關代碼的方法并完成移植的實例,為更加深入的后續嵌入式開發打下良好基礎。

    參考文獻:

    [1] The Denx U-Boot and Linux Guide. http://www.denx.de/twiki/bin/view/DULG/Manual.

    [3] 周立功等.ARM嵌入式系統基礎教程[M].北京航空航天大學出版社.2005.1; 129-154

    [4] 孫瓊.嵌入式Linux應用程序開發詳解[M].人民郵電出版社.2006.7; 108-128

    [5] 白偉平,包啟亮.基于ARM的嵌入式Boot Loader淺析[J].微計算機信息,2006,4:99-100


    上一頁 1 2 3 下一頁

    關鍵詞: Bootloader U-Boot LPC2210

    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 乐陵市| 万安县| 马边| 河南省| 赣州市| 白山市| 阳江市| 外汇| 安图县| 林西县| 额尔古纳市| 日照市| 鹤山市| 兴海县| 扶绥县| 淄博市| 扎鲁特旗| 石楼县| 鄂尔多斯市| 达尔| 阿巴嘎旗| 景洪市| 屏东市| 启东市| 锡林浩特市| 左权县| 肃宁县| 弋阳县| 土默特左旗| 会同县| 正阳县| 清涧县| 平乐县| 丰城市| 邢台县| 孟津县| 得荣县| 灵寿县| 南昌县| 西藏| 综艺|