uboot 移植到s3c2410 第一篇


本次移植是将uboot-1.1.6移植到s3c2410开发板上
 
一、创建开发板目录,修改相应的makefile及相关文件
 
创建开发板目录board/s3c2410, 找到相似的开发板board/smdk2410,将此目录中文件全部copy到s3c2410目录中。
 
由于我的开发板用的flash是intel的E28F128J3A,所以要寻找这个flash的驱动。将board/cmi中的flash.c文件copy到s3c2410目录下,并改名为flash_e28_cmi.c 。
 
修改board/s3c2410/Makefile中的
COBJS    := smdk2410.o flash.o  为
COBJS    := smdk2410.o flash_e28_cmi.o
 
将include/configs/目录下的smdk2410.h在本目录中复制并改名为s3c2410.h。这个是开发板的配置头文件。
 
修改顶层Makefile,在
 
smdk2410_config   :      unconfig
       @$(MKCONFIG) $(@:_config=) arm arm920t smdk2410 NULL s3c24x0
 
下添加
 
s3c2410_config     :      unconfig
       @$(MKCONFIG) $(@:_config=) arm arm920t s3c2410 NULL s3c24x0
 
修改board/s3c2410/config.mk,将
 
TEXT_BASE = 0x33F80000
 
改为
 
TEXT_BASE = 0x33E80000。
 
这个为什么这样改,我还没弄清楚,只是我看到有移植好的定的就是这个值。有知道的希望留个言,在此先谢过。
 
在这里说说TEXT_BESE这个变量在编译和链接时怎么传递的。在顶层目录下的config.mk中,有这么一行代码
 
sinclude $(TOPDIR)/board/$(BOARDDIR)/config.mk      
 
先将上述变量所在的文件包含,然后有两个定义
 
CPPFLAGS := $(DBGFLAGS) $(OPTFLAGS) $(RELFLAGS)         /
       -D__KERNEL__ -DTEXT_BASE=$( TEXT_BASE)           /
 
CFLAGS := $( CPPFLAGS) -Wall -Wstrict-prototypes
 
这是在编译时用到的选项。这样在编译时通过-DTEXT_BASE=$( TEXT_BASE)定义,就把TEXT_BASE的值传递到各使用到该变量的源文件,如cpu/arm920t.S 中就用到这个变量。
 
 
还有一个变量的定义
 
LDFLAGS += -Bstatic -T $(LDSCRIPT) -Ttext $(TEXT_BASE) $(PLATFORM_LDFLAGS)
 
这个是在链接时用的到选项,根据-Ttext选项的指示,链接脚本链接时就可以使用TEXT_BASE的值了。
 
到此,开发板的一系列目录、文件及编译链接相关的事项都已完成,下面就是要修改相就文件的代码以及开发板配置头文件的配置选项,以适合我的开发板上的芯片特性。
 
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值