天天看點

移植u-boot 1.1.6到TQ2440開發闆-第一階段

移植u-boot 1.1.6到TQ2440開發闆-第一階段

2015-09-30 14:50:25   來源:eefocus  

(本文轉自電子工程世界: http://www.eeworld.com.cn/mcu/2015/0930/article_22676.html)

關鍵字: 移植  u-boot  1  6  TQ2440

最近買了一個TQ2440開發闆,奈何天嵌隻給出了編譯好的檔案,沒有給源碼,小弟從頭開始移植Uboot

移植u-boot 1.1.6到TQ2440開發闆-第一階段

主要修改、配置源代碼、編譯源代碼

TQ2440開發闆資訊:

CPU:S3C2440

ARM核:arm920t

SDRAM:64M

Nor Flash:2M

Nand Flash:64M

網卡:DM9000

第一步:下載下傳 uboot 1 . 1 . 6源碼

之前都是從CSDN上下載下傳,發現下載下傳的都不是真正的官方釋出的源碼,給大家提供一個官網 ftp://ftp.denx.de/pub/u-boot 格式為u-boot-1.1.6.tar.bz2

第二步:解壓uboot源碼到虛拟機上的linux系統中,一定要在linux上解壓,因為對于linux是區分檔案名大小寫的,而windows是不區分大小寫,在windows中解壓會少很多檔案,導緻不能編譯。

解壓指令 tar xvjf u-boot-1.1.6.tar.bz2,解壓後産生一個u-boot-1.1.6的檔案夾

第三步:删除多餘的檔案夾,由于下載下傳的U-boot源碼支援衆多的開發闆,針對TQ2440,我們隻需要編譯TQ2440相關的檔案即可,這裡我們的移植是參考smdk2410來移植的,是以删除一些多餘的檔案。

   1、u-boot-1.1.6oard目錄下隻保留smdk2410檔案夾,該檔案夾存放和開發闆相關的代碼,是以其他的開發闆的檔案,可以删掉

   2、u-boot-1.1.6cpu存放和開發闆CPU相關的代碼,該檔案夾隻保留arm920t檔案,因為S3C2440是arm920t的arm核

   3、u-boot-1.1.6include存放開發闆體系相關的頭檔案,asm-XXX的檔案目錄中,隻留下asm-arm,因為S3C2440是arm體系的

   4、u-boot-1.1.6includeconfigs檔案隻保留smdk2410.h,其他的檔案全部删掉,該檔案中是開發闆的頭檔案

   5、u-boot-1.1.6目錄下有lib-XXX的檔案夾,保留lib-arm和lib-generic這兩個檔案夾,其他的lib-XXX檔案  夾删除

   6、u-boot-1.1.6目錄下有以 .mk結尾的檔案,保留arm_config.mk、config.mk、rules.mk,其餘的.mk檔案删除

第四步:添加支援TQ2440的uboot,删除後這些檔案編譯後智能支援2410的開發闆,是以我們要想支援S3C2440,必須增加TQ2440編譯選項

   1、将u-boot-1.1.6/board/目錄下的smdk2410,複制為TQ2440。

        cp - rf board/smdk2410/   board/TQ2440

   2、修改u-boot-1.1.6/board/TQ2440/下的smdk2410.c為TQ2440.c

        mv board/TQ2440/smdk2410.c  board/TQ2440/TQ2440.c

   3、修改u-boot-1.1.6/board/TQ2440下的Makefile檔案,修改 Makefile 檔案中 28 行的 COBJS,          

        COBJS := TQ2440.o flash.o因為上面已經改成TQ2440.c檔案了

   4、修改開發闆配置檔案,進入 u-boot-1.1.6/include/configs 目錄下, 将 smdk2410.h 複制為TQ2440.h

        cp include/configs/smdk2410.h  include/configs/TQ2440.h

   5、修改u-boot-1.1.6/頂層Makefile,Makefile  檔案 1881 行,增加:

      TQ2440_config   :   unconfig

            @$(MKCONFIG) $(@:_config=) arm arm920t TQ2440 NULL s3c24x0

      各項的意思如下:

       arm: CPU  的架構(ARCH)

       arm920t: CPU  的類型(CPU),其對應于cpu/arm920t  子目錄。

       TQ2440:  開發闆的型号(BOARD),對應于board/dong2440  目錄。

       NULL:  開發者/或經銷商(vender)。(此處沒加vender,為NULL。)

       s3c24x0:   片上系統(SOC) 。

   6、配置交叉編譯器:修改頂層(u-boot-1.1.6 目錄)Makefile  檔案 128 行,修改:

      ifeq ($(ARCH),arm)

           CROSS_COMPILE=usr/local/arm/4.3.2/bin/arm-linux

      endif

第五步:編譯uboot

   1、首先make distclean,清除

   2、make TQ2440_config,配置

   3、make編譯

(本文轉自電子工程世界: http://www.eeworld.com.cn/mcu/2015/0930/article_22676.html)