移植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)