一、首先建立目标板文件
#cp -rf smdk2410/* smdk2440/ //将2410下所有的代码复制到2440下
#cd smdk2440 //进入smdk2440目录
#mv smdk2410.c smdk2440.c //将smdk2440下的smdk2410.c改名为smdk2440.c
#cd ../../../ //回到u-boot根目录
#cp include/configs/smdk2410.h include/configs/smdk2440.h //建立2440头文件
#gedit board/samsung/smdk2440/Makefile
修改smdk2440下Makefile的编译项,如下:
COBJS := smdk2440.o flash.o //因在smdk2440下我们将smdk2410.c改名为smdk2440.c
老版本的uboot是需要修改顶层makefile文件
在其中加入:
smdk2440_config : unconfig //2440编译选项格式
@$(MKCONFIG) $(@:_config=) arm arm920t smdk2440 samsung s3c24x0
但是新版本的文件组织结构有很大变化,需要在boards.cfg文件中smdk2410的下面增加类似的一条:
smdk2440 arm arm920t - samsung s3c24x0
然后,测试下编译情况:
Make distclean
Make smdk2440_ config
Make all
不幸,出现如下错误:
board.c: In function 'board_init_f':
board.c:279: error: 'CONFIG_SYS_TEXT_BASE' undeclared (first use in this function)
board.c:279: error: (Each undeclared identifier is reported only once
board.c:279: error: for each function it appears in.)
make[1]: *** [board.o] 错误 1
make[1]: 离开目录“/home/bsc/samba/u-boot-2010.12/arch/arm/lib”
make: *** [arch/arm/lib/libarm.o] 错误 2
这说明我们前面为了编译通过而增加的宏定义可能是有问题的,事实上我们可以在网上查到一个patch,可以解决这些问题。但是这里,为了深入了解问题所在,我们手动一点点来修改而不是直接打上patch。
include/configs/s