gogo专业大尺度亚洲高清人体,美女张开双腿让男生桶,亚洲av无码一区二区三区鸳鸯影院,久久久久国产精品人妻


在電路板上移植U-Boot程序

分享到:
           

    U-Boot能夠支持多種體系結(jié)構(gòu)的處理器,支持的開發(fā)板也越來(lái)越多,因?yàn)锽ootloader是完全依賴硬件平臺(tái)的,所以在新電路板上需要移植U-Boot程序。

    開始移植U-Boot之前,要先熟悉硬件電路板和處理器,確認(rèn)U-Boot是否已經(jīng)支持新開發(fā)板的處理器和I/O設(shè)備。假如U-Boot已經(jīng)支持一塊非常相似的電路板,那么移植的過程將非常簡(jiǎn)單。移植U-Boot工作就是添加開發(fā)板硬件相關(guān)的文件、配置選項(xiàng),然后配置編譯。開始移植之前,需要先分析一下U-Boot已經(jīng)支持的開發(fā)板,比較出硬件配置接近的開發(fā)板。選擇的原則是,首先處理器相同,其次處理器體系結(jié)構(gòu)相同,然后是以太網(wǎng)接口等外圍接口相同。還要驗(yàn)證一下這個(gè)參考開發(fā)板的U-Boot,至少能夠配置編譯通過。

    以S3C2410處理器的FS2410開發(fā)板為例,U-Boot的高版本已經(jīng)支持SMDK2410開發(fā)板。我們可以基于SMDK2410移植,那么先把SMDK2410編譯通過。移植U-Boot的基本步驟如下。

    (1)在頂層Makefile為開發(fā)板添加新的配置選項(xiàng),以使用已有的配置項(xiàng)目為例:

    smdk2410_config : unconfig
        @./mkconfig $(@:_config=) arm arm920t smdk2410 NULL s3c24x0

    參考上面兩行,添加下面兩行:

    fs2410_config : unconfig
         @./mkconfig $(@:_config=) arm arm920t EduKit2410 NULL s3c24x0

    (2)創(chuàng)建一個(gè)新目錄存放開發(fā)板相關(guān)的代碼,并且添加新文件。
     ① board/fs2410/config.mk。
     ② board/ fs2410/flash.c。
     ③ board/ fs2410/EduKit2410.c。
     ④ board/ fs2410/Makefile。
     ⑤ board/ fs2410/memsetup.S。
     ⑥ board/ fs2410/U-Boot.lds。

    (3)為開發(fā)板添加新的配置文件。可以先復(fù)制參考開發(fā)板的配置文件,再修改,例如:

    $cp include/configs/smdk2410.h include/configs/fs2410.h

    如果是為一顆新的CPU移植,還要?jiǎng)?chuàng)建一個(gè)新的目錄存放CPU相關(guān)的代碼。

    (4)配置開發(fā)板。

    $ make fs2410_config

    (5)編譯U-Boot。執(zhí)行make命令,編譯成功可以得到U-Boot映像。有些錯(cuò)誤是與配置選項(xiàng)有關(guān)系的,通常打開某些功能選項(xiàng)會(huì)帶來(lái)一些錯(cuò)誤,一開始可以盡量與參考板配置相同。

    (6)添加驅(qū)動(dòng)或者功能選項(xiàng)。在能夠編譯通過的基礎(chǔ)上,還要實(shí)現(xiàn)U-Boot的以太網(wǎng)接口、Flash擦寫等功能。對(duì)于FS2410開發(fā)板的以太網(wǎng)驅(qū)動(dòng)和smdk2410完全相同,所以可以直接使用。CS8900驅(qū)動(dòng)程序代碼包括:

    drivers/cs8900.c
    drivers/cs8900.h

    對(duì)于Flash的選擇就麻煩多了,F(xiàn)lash芯片價(jià)格或者采購(gòu)方面的因素都有影響。多數(shù)開發(fā)板大小、型號(hào)都不相同,所以還需要移植Flash的驅(qū)動(dòng)。每種開發(fā)板目錄下一般都有flash.c這個(gè)文件,需要根據(jù)具體的Flash類型修改。例如:

    board/fs2410/flash.c

    (7)調(diào)試U-Boot源代碼,直到U-Boot在開發(fā)板上能夠正常啟動(dòng)。調(diào)試的過程是很艱難的,需要借助工具,并且有些問題可能會(huì)困擾很長(zhǎng)時(shí)間。

    本文選自華清遠(yuǎn)見嵌入式培訓(xùn)教材《從實(shí)踐中學(xué)嵌入式Linux應(yīng)用程序開發(fā)》

   熱點(diǎn)鏈接:

   1、在電路板上移植U-Boot程序
   2、U-Boot編譯過程解析
   3、U-Boot源代碼下載地址
   4、Bootloader的種類
   5、配置主機(jī)交叉開發(fā)環(huán)境

更多新聞>>