最近買了一個(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編譯
評(píng)論