色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > U-Boot在LPC2210上的移植分析

          U-Boot在LPC2210上的移植分析

          作者: 時間:2012-03-22 來源:網(wǎng)絡(luò) 收藏

          5.4 board/dx2210開發(fā)板相關(guān)文件

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

          gd->bd->bi_arch_number=MACH_TYPE_; //開發(fā)板架構(gòu)ID號

          gd->bd->bi_boot_params=0x81000100; //傳遞給ucinux內(nèi)核的參數(shù)

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

          gd->bd->bi_dram[0].size=PHYS_SDRAM_1_SIZE; //RAM內(nèi)存配置

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

          SECTIONS

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

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

          .text :

          { cpu//start.o (.text)

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

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

          6.生成目標(biāo)文件完成移植工作

          移植工作完成后在SHELL環(huán)境下依次運(yùn)行如下命令: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進(jìn)制格式下載到Nor Flash中,再將uclinux內(nèi)核映像文件和根文件系統(tǒng)影響文件init.img燒寫到Nor Flash的指定地址后,可以看到如圖2所示的存儲空間分布:

          圖2 存儲空間映射

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

          7.結(jié)束語

          本文首先闡述了引導(dǎo)程序得基本原理,在介紹了開放源代碼程序U-Boot軟件基礎(chǔ)上,以 ARM7處理器及其相關(guān)開發(fā)板為例,完成了U-Boot軟件的移植工作。前期的啟動引導(dǎo)程序的移植工作是嵌入式系統(tǒng)開發(fā)的重要環(huán)節(jié),在此基礎(chǔ)上可以更加深入的進(jìn)行嵌入式系統(tǒng)開發(fā)。

          本文作者創(chuàng)新點(diǎn):本文在詳細(xì)的分析U-Boot軟件的基礎(chǔ)上,針對U-Boot軟件本身并不支持的ARM7 LPC2210,本文介紹了在U-Boot軟件中添加相關(guān)代碼的方法并完成移植的實(shí)例,為更加深入的后續(xù)嵌入式開發(fā)打下良好基礎(chǔ)。

          參考文獻(xiàn):

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

          [3] 周立功等.ARM嵌入式系統(tǒng)基礎(chǔ)教程[M].北京航空航天大學(xué)出版社.2005.1; 129-154

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

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


          上一頁 1 2 3 下一頁

          關(guān)鍵詞: Bootloader U-Boot LPC2210

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉