基於qq2440開發平臺的uboot移植(1)

 

       在嵌入式系統中,bootloader起到了一個配置硬件、創建軟件執行環境和調試(僅在開發階段對於開發人員有用)的作用。本文以目前功能最強大的bootloader--uboot爲例,記錄了我將uboot一直到QQ2440(S3C2440)開發板的過程。

       最開始要說一下uboot各文件夾的內容:

        board 目錄:裏面是各種開發板目錄,每個開發板相當於一種硬件配置;

        common目錄:裏面是各種命令實現的源文件,是各個開發板共同使用的目錄;

        cpu 目錄:顧名思義,裏面是各種內核體系的目錄,每一個目錄代表一種內核結構;

        doc目錄:裏面是各種移植文檔,供移植參考使用;

        drivers目錄:裏面是各種驅動程序;

        examples目錄:裏面是一個移植例程;

        include目錄:是所有內核共有的、所要包含的頭文件;

        lib_**目錄:  針對不同體系,各自獨特的庫文件;

        net目錄:裏面是各種網絡協議;

        tools目錄:裏面是各種小工具;

基本上就這些目錄,還有一些小目錄及文件就不一一列舉了,下面介紹一下具體的移植過程:

       

1.1.1  添加開發板的配置選項

 

進入U-Uoot根目錄,修改Makefile文件,參考smdk2410的配置選項修改如下:

smdk2410_config    :    unconfig
     @$(MKCONFIG) $(@:_config=) arm arm920t smdk2410 NULL s3c24x0

qq2440_config    :    unconfig
    @$(MKCONFIG) $(@:_config=) arm arm920t qq2440 NULL s3c24x0

 

各項的意思如下:
arm     : CPU的架構(ARCH)
arm920t : CPU的類型(CPU),其對應於cpu/arm920t子目錄。
qq2440: 開發板的型號(BOARD),對應於board/ mini2440目錄。
NULL: 開發者/或經銷商(vender),NULL爲沒有。
s3c24x0 : 片上系統(SOC)

 

同時在“ifndef CROSS_COMPILE ”之前加上自己交叉編譯器的路徑,我的是arm-linux-gcc-4.3.2

 

1.1.2  /board子目錄中建立自己的開發板qq2440目錄

 

目錄結構爲board/qq2440。如果開發者/經銷商(vender)不爲NULL,則目錄結構爲board/verder_name/mini2440,否則編譯會出錯。然後,將smdk2410目錄下的文件考入此目錄中,並將其中的smdk2410.c改名爲mini2440.c。同時還得修改board/mini240/Makefile文件:
COBJS := qq2440.o flash.o

1.1.3  在include/configs/中建立配置頭文件


    將smdk2410.h 複製一份在相同目錄下,並改名爲qq2440.h


1.1.4  測試編譯能否成功


    回到U-Boot主目錄,(若之前有編譯過,最好執行一下make clean)  make qq2440_config,再make,編譯生成u-boot.bin成功。

 

 

這是第一階段,如果編譯能夠成功,恭喜你,可以進入下一步的移植了······

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章