在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

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

            U-Boot在LPC2210上的移植分析

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

            移植相關(guān)硬件地址空間分配為:FLASH 2MB 0x80000000~0x801FFFFF;PSRAM 8MB 0x81000000~0x817FFFFF;以太網(wǎng)控制器RTL8019 0x83400000~0x8340001F。由于源碼包中已經(jīng)包含強大的網(wǎng)絡(luò)技術(shù)的支持和豐富的硬件驅(qū)動代碼,因此移植到新的開發(fā)板我們上只需修改和硬件相關(guān)代碼。

            移植U-Boot工作就是添加開發(fā)板硬件相關(guān)文件、配置選項、然后配置編譯。由于目前U-Boot并不支持處理器,比較后我們選擇與 同基于ARM7TDMI-S架構(gòu)的S3C44B0處理器及相關(guān)的B2開發(fā)板,以S3C44B0和B2開發(fā)板為基礎(chǔ)來完成移植工作。

            首先在cpu目錄下建立lpc2210目錄并在其下建立和處理器移植相關(guān)文件,為開發(fā)板取名為dx2210并在board文件夾下建立dx2210 子目錄,在SHELL環(huán)境下輸入命令cp –rf board/dave/B2 board/dx2210將B2開發(fā)板的內(nèi)容復(fù)制到dx2210中,并注意修改文件中開發(fā)板名稱;在include/configs文件夾中建立配置頭文件dx2210.h,用命令cp include/configs/B2.h include/configs/dx2210.h將B2.h文件的內(nèi)容復(fù)制到dx2210.h中以便與后面修改;修改頂層Makefile文件為開發(fā)板建立新的編譯選項,由于U-Boot的源代碼是通過GCC和Makefile組織編譯的。在源代碼頂層目錄下的Makefile首先設(shè)置開發(fā)板的定義,然后遞歸地調(diào)用各級子目錄下的Makefile文件,最后把編譯過的程序鏈接成U-Boot可執(zhí)行映像。因此利用vim在Makefie文件中添加配置命令:

            dx2210_config : unconfig

            @ ./mkconfig $(@ : _config=) arm lpc2210 dx2210 NULL

            各項定義如下:

            arm CPU架構(gòu)(ARCH)

            lpc2210 CPU的類型(CPU),其對應(yīng)于cpu/lpc2210子目錄

            dx2210 開發(fā)板型號(BOARD), 其對應(yīng)于board/dx2210子目錄

            NULL 開發(fā)板或硬件經(jīng)銷商(VENDER)

            這樣在執(zhí)行配置命令make dx2210_config,通過./config腳本可生成include/config.mk的配置文件,硬件平臺依賴文件的目錄文件可以根據(jù)這些定義來確定。

            5.2修改include/configs/dx2210.h文件

            在include/configs/dx2210.h文件中包含了大部分的全局宏定義。主要修改的宏定義有:#define CONFIG_ 1 //CPU配置型號

            #define CONFIG_LPC2210_CLOCK_SPEED 60 //最大CPU操作頻率

            #define CONFIG_DRIVER_RTL8019 1 //定義以太網(wǎng)控制器型號

            #define RTL8019_BASE 0x83400000 //RTL8019的硬件地址

            #define CONFIG_SERIAL 1 //串口設(shè)置

            #define CFG_LOAD_ADDR 0x81008000 //kernel映像加載到RAM空間中的起始地址

            此外還需要修改開發(fā)板的波特率,配置網(wǎng)絡(luò)信息,F(xiàn)LASH ROM和RAM的容量大小、地址信息,操作時序等參數(shù)。

            5.3 cpu/lpc2210目錄下相關(guān)文件

            該目錄中包含了Makefile、config.mk、cpu.c、interrupts.c、serial.c、start.S幾個文件。其中匯編文件start.S是整個程序的入口,主要設(shè)置系統(tǒng)堆棧和工作方式為進入C程序奠定基礎(chǔ)。根據(jù)RAM地址將中斷向量表起始地址 0x0c000000修改為0x81000000,根據(jù)LPC2210的芯片手冊完成設(shè)置CPU速度和時鐘頻率、為加載Stage2準(zhǔn)備RAM空間并將 Stage2加載到RAM中執(zhí)行、設(shè)置堆棧、看門狗、屏蔽所有中斷部分的修改。這里注意的是TEXT_BASE變量是在board/dx2210 /config.mk文件中定義,它規(guī)定了主程序TEXT段在內(nèi)存RAM中的起始地址,當(dāng)u-boot從FLASH中啟動后會把Stage2階段的代碼和數(shù)據(jù)重定位到這個地址開始的RAM中運行以提高速度。復(fù)制時要明確Stage2的可執(zhí)行映像在固態(tài)存儲設(shè)備的存放的起始地址和終止地址,一般來說給 Stage2部分在RAM地址頂端分配1MB的空間,因此經(jīng)過計算得出TEXT_BASE=0x81700000;serial.c文件是串口設(shè)備的驅(qū)動代碼,在調(diào)試部分主要依靠串口產(chǎn)生調(diào)試信息,串口波特率設(shè)置為115200bit/s;cpu.c文件初始化CPU、由于LPC2210中并沒有指令 Cache和數(shù)據(jù)Cache,則應(yīng)用源碼提供的icache_disable(void)和dcache_disable(void)兩個函數(shù)禁止這部分代碼功能;interrupt.c文件設(shè)置系統(tǒng)的各種中斷和異常,在階段應(yīng)禁止中斷的產(chǎn)生。



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

            評論


            相關(guān)推薦

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

            關(guān)閉