新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 移植u-boot 1.1.6到TQ2440開發(fā)板-第一階段

移植u-boot 1.1.6到TQ2440開發(fā)板-第一階段

作者: 時(shí)間:2016-11-26 來源:網(wǎng)絡(luò) 收藏
最近買了一個(gè)TQ2440開發(fā)板,奈何天嵌只給出了編譯好的文件,沒有給源碼,小弟從頭開始移植Uboot

本文引用地址:http://m.butianyuan.cn/article/201611/322001.htm

移植u-boot 1.1.6到TQ2440開發(fā)板-第一階段

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

TQ2440開發(fā)板信息:

CPU:S3C2440

ARM核:arm920t

SDRAM:64M

Nor Flash:2M

Nand Flash:64M

網(wǎng)卡:DM9000

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

之前都是從CSDN上下載,發(fā)現(xiàn)下載的都不是真正的官方發(fā)布的源碼,給大家提供一個(gè)官網(wǎng)ftp://ftp.denx.de/pub/u-boot格式為u-boot-1.1.6.tar.bz2

第二步:解壓uboot源碼到虛擬機(jī)上的linux系統(tǒng)中,一定要在linux上解壓,因?yàn)閷?duì)于linux是區(qū)分文件名大小寫的,而windows是不區(qū)分大小寫,在windows中解壓會(huì)少很多文件,導(dǎo)致不能編譯。

解壓命令 tar xvjf u-boot-1.1.6.tar.bz2,解壓后產(chǎn)生一個(gè)u-boot-1.1.6的文件夾

第三步:刪除多余的文件夾,由于下載的U-boot源碼支持眾多的開發(fā)板,針對(duì)TQ2440,我們只需要編譯TQ2440相關(guān)的文件即可,這里我們的移植是參考smdk2410來移植的,因此刪除一些多余的文件。

1、u-boot-1.1.6oard目錄下只保留smdk2410文件夾,該文件夾存放和開發(fā)板相關(guān)的代碼,因此其他的開發(fā)板的文件,可以刪掉

2、u-boot-1.1.6cpu存放和開發(fā)板CPU相關(guān)的代碼,該文件夾只保留arm920t文件,因?yàn)镾3C2440是arm920t的arm核

3、u-boot-1.1.6include存放開發(fā)板體系相關(guān)的頭文件,asm-XXX的文件目錄中,只留下asm-arm,因?yàn)镾3C2440是arm體系的

4、u-boot-1.1.6includeconfigs文件只保留smdk2410.h,其他的文件全部刪掉,該文件中是開發(fā)板的頭文件

5、u-boot-1.1.6目錄下有l(wèi)ib-XXX的文件夾,保留lib-arm和lib-generic這兩個(gè)文件夾,其他的lib-XXX文件夾刪除

6、u-boot-1.1.6目錄下有以 .mk結(jié)尾的文件,保留arm_config.mk、config.mk、rules.mk,其余的.mk文件刪除

第四步:添加支持TQ2440的uboot,刪除后這些文件編譯后智能支持2410的開發(fā)板,因此我們要想支持S3C2440,必須增加TQ2440編譯選項(xiàng)

1、將u-boot-1.1.6/board/目錄下的smdk2410,復(fù)制為TQ2440。

cp - rf board/smdk2410/board/TQ2440

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

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

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

COBJS := TQ2440.o flash.o因?yàn)樯厦嬉呀?jīng)改成TQ2440.c文件了

4、修改開發(fā)板配置文件,進(jìn)入 u-boot-1.1.6/include/configs 目錄下, 將 smdk2410.h 復(fù)制為TQ2440.h

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

5、修改u-boot-1.1.6/頂層Makefile,Makefile文件 1881 行,增加:
TQ2440_config:unconfig
@$(MKCONFIG) $(@:_config=) arm arm920t TQ2440 NULL s3c24x0

各項(xiàng)的意思如下:
arm: CPU的架構(gòu)(ARCH)
arm920t: CPU的類型(CPU),其對(duì)應(yīng)于cpu/arm920t子目錄。
TQ2440:開發(fā)板的型號(hào)(BOARD),對(duì)應(yīng)于board/dong2440目錄。
NULL:開發(fā)者/或經(jīng)銷商(vender)。(此處沒加vender,為NULL。)
s3c24x0:片上系統(tǒng)(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編譯



關(guān)鍵詞: 移植u-boot16TQ244

評(píng)論


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

關(guān)閉