#############################################################################
1)Borads.cfg 中第56行 加入“zcg6410 arm arm1176 ok6410 samsung s3c6410”;
#cd u-boot-2011.06/board/samsung/ //进入目录
#mkdir zcg6410 //创建zcg6410文件夹
2) 因6410和6400的资源差不多,所以就以6400项目的代码作为模板,以后再修改
#cp -ar smdk6400/* zcg6410/ //将6400下所有的代码复制到6410下
#cd zcg6410 //进入zcg6410目录
#mv smdk6400.c zcg6410.c //将zcg6410下的smdk6400.c改名为zcg6410.c
#cd ../../../ //回到u-boot根目录
#cp include/configs/smdk6400.h include/configs/zcg6410.h //建立6410配置头文件
注:把新建zcg6410下smdk6400_nand_spl.c更名位zcg6410_nand_spl.c,并且把zcg6410_nand_spl.c和makefile文件中的6400改为6410。其他文件不需要改动。
3)修改u-boot跟目录下的Makefile文件。查找到smdk6400_config的地方,在他下面按照smdk6400_config的格式建立zcg6410_config的编译选项,另外还要指定交叉编译器
#vim Makefile
CROSS_COMPILE ?= arm-linux- //指定交叉编译器为arm-linux-gcc
zcg6410_noUSB_config \
zcg6410_config : unconfig
@mkdir -p $(obj)include $(obj)board/samsung/zcg6410 // 注意@前不是空格,是Tab键
@mkdir -p $(obj)nand_spl/board/samsung/zcg6410
@echo "#define CONFIG_NAND_U_BOOT" > $(obj)include/config.h
@if [ -z "$(findstring zcg6410_noUSB_config,$@)" ]; then \
echo "RAM_TEXT = 0x57e00000" >> $(obj)board/samsung/zcg6410/config.tmp;\ //前面两个Tab键
$(MKCONFIG) $(@:_config=) arm arm1176 zcg6410 samsung s3c6410; \
else \
echo "RAM_TEXT = 0xc7e00000" >> $(obj)board/samsung/zcg6410/config.tmp;\
$(MKCONFIG) $(@:_noUSB_config=) arm arm1176 zcg6410 samsung s3c6410; \
fi
@echo "CONFIG_NAND_U_BOOT = y" >> $(obj)include/config.mk
*说明:arm :CPU的架构(ARCH)
arm1176:CPU的类型
zcg6410 :对应在board目录下建立新的开发板项目的目录
samsung:新开发板项目目录的上级目录,如直接在board下建立新的开发板项目的目录,则这里就为NULL
s3c64xx:CPU型号
*注意:编译选项格式的第二行要用Tab键开始,否则编译会出错
4)进入顶层目录nand_spl/board/samsung目录新建目录zcg6410,并将smdk6400下的文件复制到刚刚新建的zcg6410下
#cd nand_spl/board/samsung //
#cp –ar smdk6400/* zcg6410/
注:修改目此6410目录下的makefile文件,把里面的6400改为6410
5)测试编译新建的zcg6410开发板项目
#make zcg6410_config //如果出现Configuring for zcg6410 board...则表示设置正确
#make //编译后在根目录下会出现u-boot.bin和u-boot-nand.bin文件,则u-boot移植的第一步就算完成了
##################################################################################
上面的步骤1-4都完成了之后,make的时候出错了。。。。。。错误如下:
这个原因,好像是“‘>=’缺少了左操作符”,因此我又看了一下zcg6410.h的文档的第57行,如下图:
‘>=’的左操作符是“CONFIG_SYS_TEXT_BASE”。于是我认为是可能没有定义这个宏,但是我根据原来的u-boot make了一下smdk6400,完全可以。证明“CONFIG_SYS_TEXT_BASE”是定义过的。
我的问题是:
1.“CONFIG_SYS_TEXT_BASE”定义的位置在哪里?
2.如果确实定义了,那么为什么我会make失败呢?
19 个解决方案
#1
start.S中初始化部分
#2
.globl _TEXT_BASE
_TEXT_BASE:
.word CONFIG_SYS_TEXT_BASE
你指的是这一部分吗?那既然定义了的话,为什么make会出现上述错误呢?我该怎么修改一下?请指教!谢谢!
_TEXT_BASE:
.word CONFIG_SYS_TEXT_BASE
你指的是这一部分吗?那既然定义了的话,为什么make会出现上述错误呢?我该怎么修改一下?请指教!谢谢!
#3
.globl _TEXT_BASE
_TEXT_BASE:
.word CONFIG_SYS_TEXT_BASE
你指的是这一部分吗?那既然定义了的话,为什么make会出现上述错误呢?我该怎么修改一下?请指教!谢谢!
#4
或许你的基地址等参数值不正确,还有#define CONFIG_MACH_后面的值,看芯片手册分析一下对不对
#5
呵呵,我跟你说哈,我用的是u-boot-2012.10版本的u-boot,
请打开根目录下的makefile,找到smdk6400_config目标:
看看echo "RAM_TEXT = 0x57e00000" >> $(obj)board/samsung/smdk6400/config.tmp;\这一句,明确的告诉你这里的RAM_TEXT将会用于生成宏CONFIG_SYS_TEXT_BASE
而这个信息是在执行make smdk6400_config 的时候写入到config.tm这个临时文件的。
再看board\samsung\smdk6410\config.mk这个文件,里面有如下行:
ifndef CONFIG_NAND_SPL
CONFIG_SYS_TEXT_BASE = $(RAM_TEXT)
else
CONFIG_SYS_TEXT_BASE = 0
endif
好我们再看根目录下的config.mk,搜索CONFIG_SYS_TEXT_BASE,会发现如下行:
ifneq ($(CONFIG_SYS_TEXT_BASE),)
CPPFLAGS += -DCONFIG_SYS_TEXT_BASE=$(CONFIG_SYS_TEXT_BASE)
endif
这个还只是一个环境变量而已。
这次是真的好了,CPPFLAGS最后会作为gcc,as这些编译器的控制标志,而
-DCONFIG_SYS_TEXT_BASE=$(CONFIG_SYS_TEXT_BASE) 就等价于#define CONFIG_SYS_TEXT_BASE X
其中X 是$(CONFIG_SYS_TEXT_BASE)的值,这次是真的宏常量了。
好了,到此,CONFIG_SYS_TEXT_BASE的成生旅程就走完了……您还有疑问么??
请打开根目录下的makefile,找到smdk6400_config目标:
看看echo "RAM_TEXT = 0x57e00000" >> $(obj)board/samsung/smdk6400/config.tmp;\这一句,明确的告诉你这里的RAM_TEXT将会用于生成宏CONFIG_SYS_TEXT_BASE
而这个信息是在执行make smdk6400_config 的时候写入到config.tm这个临时文件的。
再看board\samsung\smdk6410\config.mk这个文件,里面有如下行:
ifndef CONFIG_NAND_SPL
CONFIG_SYS_TEXT_BASE = $(RAM_TEXT)
else
CONFIG_SYS_TEXT_BASE = 0
endif
好我们再看根目录下的config.mk,搜索CONFIG_SYS_TEXT_BASE,会发现如下行:
ifneq ($(CONFIG_SYS_TEXT_BASE),)
CPPFLAGS += -DCONFIG_SYS_TEXT_BASE=$(CONFIG_SYS_TEXT_BASE)
endif
这个还只是一个环境变量而已。
这次是真的好了,CPPFLAGS最后会作为gcc,as这些编译器的控制标志,而
-DCONFIG_SYS_TEXT_BASE=$(CONFIG_SYS_TEXT_BASE) 就等价于#define CONFIG_SYS_TEXT_BASE X
其中X 是$(CONFIG_SYS_TEXT_BASE)的值,这次是真的宏常量了。
好了,到此,CONFIG_SYS_TEXT_BASE的成生旅程就走完了……您还有疑问么??
#6
细看了一下,建议你配置完后打开include/config.mk(如果你make 的时候指定了BUILD_DIR=或-O=)那就是你指定的那个目录下的include/config.mk,详细检查一下以下这几个变量是否正确:
你的应该是
ARCH = arm arm
CPU = arm1176 arm1176
BOARD = smdk6410 zcg6410
VENDOR = samsung samsung
SOC = s3c64xx s3c6410
CONFIG_NAND_U_BOOT = y y
还有就是如果配置的时候指定了BUILD_DIR=或-O=,那么make 的时候也要带上!
/board/samsung/zcg6410/config.mk中
sinclude $(OBJTREE)/board/$(BOARDDIR)/config.tmp
/config.mk中
ifdef BOARD
sinclude $(TOPDIR)/board/$(BOARDDIR)/config.mk # include board specific rules
endif
有关CONFIG_SYS_TEXT_BASE宏的变量就VENDOR和BOARD。
呵呵,我也在学习,可以一起啊……
你的应该是
ARCH = arm arm
CPU = arm1176 arm1176
BOARD = smdk6410 zcg6410
VENDOR = samsung samsung
SOC = s3c64xx s3c6410
CONFIG_NAND_U_BOOT = y y
还有就是如果配置的时候指定了BUILD_DIR=或-O=,那么make 的时候也要带上!
/board/samsung/zcg6410/config.mk中
sinclude $(OBJTREE)/board/$(BOARDDIR)/config.tmp
/config.mk中
ifdef BOARD
sinclude $(TOPDIR)/board/$(BOARDDIR)/config.mk # include board specific rules
endif
有关CONFIG_SYS_TEXT_BASE宏的变量就VENDOR和BOARD。
呵呵,我也在学习,可以一起啊……
#7
u-boot官方的没有6410就换一个,改來改去的天知道要改多久,如果真心要改注意 写法为__的玩意儿,那个和芯片息息相关,多半都是改这些
#8
哈哈 学习了,谢谢大神!
#9
#10
我越来越发对楼上的楼上那只小猫感兴趣了。。。。。如果小猫在 也请解决下我的疑问,我用的交叉编译链是4.3.3的 编译我买的TQ2440的板子时提示版本出错,上网查了下 说是我用的版本太新了,开发板光盘里自带的是3.4.5的 我可以在虚拟机里装两个交叉工具链么?
#11
变量前面_平台相关 __和芯片相关,就像7楼说的,u-boot官方版不可能没s3c6410的,没得就去三星官网找找.
#12
工具链可以有多个的,但要注意,如果你的交叉编译器名字相同,又都在PATH环境变量的情况下,通常是使用PATH值里面靠前的那个,所以,有多个的话使用的时候最好改下PATH
#13
uboot里的确是木有6410的,不过通过6400的移植还是很轻松的……,三星官网更难找……连DATASHEET都木有下载的链了&……
#14
还真是高人多啊!新手,学习了!谢谢!
#15
呵呵!说的有道理
#16
JQGuardian 他已经分析很清楚了。
你用我的这个配置吧
kb6410_noUSB_config \
kb6410_config : unconfig
@mkdir -p $(obj)include $(obj)board/samsung/kb6410
@mkdir -p $(obj)nand_spl/board/samsung/kb6410
@echo "#define CONFIG_NAND_U_BOOT" > $(obj)include/config.h
@echo "CONFIG_NAND_U_BOOT = y" >> $(obj)include/config.mk
@if [ -z "$(findstring kb6410_noUSB_config,$@)" ]; then \
echo "RAM_TEXT = 0x57e00000" >> $(obj)board/samsung/kb6410/config.tmp;\
else \
echo "RAM_TEXT = 0xc7e00000" >> $(obj)board/samsung/kb6410/config.tmp;\
fi
@$(MKCONFIG) kb6410 arm arm1176 kb6410 samsung s3c6410
#### #@$(MKCONFIG) kb6410 arm arm1176 kb6410 samsung s3c64xx
@echo "CONFIG_NAND_U_BOOT = y" >> $(obj)include/config.mk
[root@zhaoji kb-uboot-2011.12]# make kb6410_config
warning: Please migrate to boards.cfg. Failure to do so will
mean removal of your board in the next release.
Configuring for kb6410 board...
你用我的这个配置吧
kb6410_noUSB_config \
kb6410_config : unconfig
@mkdir -p $(obj)include $(obj)board/samsung/kb6410
@mkdir -p $(obj)nand_spl/board/samsung/kb6410
@echo "#define CONFIG_NAND_U_BOOT" > $(obj)include/config.h
@echo "CONFIG_NAND_U_BOOT = y" >> $(obj)include/config.mk
@if [ -z "$(findstring kb6410_noUSB_config,$@)" ]; then \
echo "RAM_TEXT = 0x57e00000" >> $(obj)board/samsung/kb6410/config.tmp;\
else \
echo "RAM_TEXT = 0xc7e00000" >> $(obj)board/samsung/kb6410/config.tmp;\
fi
@$(MKCONFIG) kb6410 arm arm1176 kb6410 samsung s3c6410
#### #@$(MKCONFIG) kb6410 arm arm1176 kb6410 samsung s3c64xx
@echo "CONFIG_NAND_U_BOOT = y" >> $(obj)include/config.mk
[root@zhaoji kb-uboot-2011.12]# make kb6410_config
warning: Please migrate to boards.cfg. Failure to do so will
mean removal of your board in the next release.
Configuring for kb6410 board...
#17
这个问题我见过,,,
#cd u-boot-2011.06/board/samsung/ //进入目录
不要#mkdir zcg6410 //创建zcg6410文件夹
2) 因6410和6400的资源差不多,所以就以6400项目的代码作为模板,以后再修改
不要#cp -ar smdk6400/* zcg6410/ //将6400下所有的代码复制到6410下
要 #cp -rf smdk6410 zcg6410
#cd zcg6410 //进入zcg6410目录
#mv smdk6400.c zcg6410.c //将zcg6410下的smdk6400.c改名为zcg6410.c
vi ./Makefile 中 smdk6400 -> zcg6410
#cd ../../../ //回到u-boot根目录
#cp include/configs/smdk6400.h include/configs/zcg6410.h //建立6410配置头文件
注:把新建zcg6410下smdk6400_nand_spl.c更名位zcg6410_nand_spl.c,并且把zcg6410_nand_spl.c和makefile文件中的6400改为6410。其他文件不需要改动。
3)修改u-boot跟目录下的Makefile文件。查找到smdk6400_config的地方,在他下面按照smdk6400_config的格式建立zcg6410_config的编译选项,另外还要指定交叉编译器
另:我发生以上错误时,我没有改好文件名所导致
#cd u-boot-2011.06/board/samsung/ //进入目录
不要#mkdir zcg6410 //创建zcg6410文件夹
2) 因6410和6400的资源差不多,所以就以6400项目的代码作为模板,以后再修改
不要#cp -ar smdk6400/* zcg6410/ //将6400下所有的代码复制到6410下
要 #cp -rf smdk6410 zcg6410
#cd zcg6410 //进入zcg6410目录
#mv smdk6400.c zcg6410.c //将zcg6410下的smdk6400.c改名为zcg6410.c
vi ./Makefile 中 smdk6400 -> zcg6410
#cd ../../../ //回到u-boot根目录
#cp include/configs/smdk6400.h include/configs/zcg6410.h //建立6410配置头文件
注:把新建zcg6410下smdk6400_nand_spl.c更名位zcg6410_nand_spl.c,并且把zcg6410_nand_spl.c和makefile文件中的6400改为6410。其他文件不需要改动。
3)修改u-boot跟目录下的Makefile文件。查找到smdk6400_config的地方,在他下面按照smdk6400_config的格式建立zcg6410_config的编译选项,另外还要指定交叉编译器
另:我发生以上错误时,我没有改好文件名所导致
#18
u-boot移植未错误,来学习
#19
#20
#1
start.S中初始化部分
#2
.globl _TEXT_BASE
_TEXT_BASE:
.word CONFIG_SYS_TEXT_BASE
你指的是这一部分吗?那既然定义了的话,为什么make会出现上述错误呢?我该怎么修改一下?请指教!谢谢!
_TEXT_BASE:
.word CONFIG_SYS_TEXT_BASE
你指的是这一部分吗?那既然定义了的话,为什么make会出现上述错误呢?我该怎么修改一下?请指教!谢谢!
#3
.globl _TEXT_BASE
_TEXT_BASE:
.word CONFIG_SYS_TEXT_BASE
你指的是这一部分吗?那既然定义了的话,为什么make会出现上述错误呢?我该怎么修改一下?请指教!谢谢!
#4
或许你的基地址等参数值不正确,还有#define CONFIG_MACH_后面的值,看芯片手册分析一下对不对
#5
呵呵,我跟你说哈,我用的是u-boot-2012.10版本的u-boot,
请打开根目录下的makefile,找到smdk6400_config目标:
看看echo "RAM_TEXT = 0x57e00000" >> $(obj)board/samsung/smdk6400/config.tmp;\这一句,明确的告诉你这里的RAM_TEXT将会用于生成宏CONFIG_SYS_TEXT_BASE
而这个信息是在执行make smdk6400_config 的时候写入到config.tm这个临时文件的。
再看board\samsung\smdk6410\config.mk这个文件,里面有如下行:
ifndef CONFIG_NAND_SPL
CONFIG_SYS_TEXT_BASE = $(RAM_TEXT)
else
CONFIG_SYS_TEXT_BASE = 0
endif
好我们再看根目录下的config.mk,搜索CONFIG_SYS_TEXT_BASE,会发现如下行:
ifneq ($(CONFIG_SYS_TEXT_BASE),)
CPPFLAGS += -DCONFIG_SYS_TEXT_BASE=$(CONFIG_SYS_TEXT_BASE)
endif
这个还只是一个环境变量而已。
这次是真的好了,CPPFLAGS最后会作为gcc,as这些编译器的控制标志,而
-DCONFIG_SYS_TEXT_BASE=$(CONFIG_SYS_TEXT_BASE) 就等价于#define CONFIG_SYS_TEXT_BASE X
其中X 是$(CONFIG_SYS_TEXT_BASE)的值,这次是真的宏常量了。
好了,到此,CONFIG_SYS_TEXT_BASE的成生旅程就走完了……您还有疑问么??
请打开根目录下的makefile,找到smdk6400_config目标:
看看echo "RAM_TEXT = 0x57e00000" >> $(obj)board/samsung/smdk6400/config.tmp;\这一句,明确的告诉你这里的RAM_TEXT将会用于生成宏CONFIG_SYS_TEXT_BASE
而这个信息是在执行make smdk6400_config 的时候写入到config.tm这个临时文件的。
再看board\samsung\smdk6410\config.mk这个文件,里面有如下行:
ifndef CONFIG_NAND_SPL
CONFIG_SYS_TEXT_BASE = $(RAM_TEXT)
else
CONFIG_SYS_TEXT_BASE = 0
endif
好我们再看根目录下的config.mk,搜索CONFIG_SYS_TEXT_BASE,会发现如下行:
ifneq ($(CONFIG_SYS_TEXT_BASE),)
CPPFLAGS += -DCONFIG_SYS_TEXT_BASE=$(CONFIG_SYS_TEXT_BASE)
endif
这个还只是一个环境变量而已。
这次是真的好了,CPPFLAGS最后会作为gcc,as这些编译器的控制标志,而
-DCONFIG_SYS_TEXT_BASE=$(CONFIG_SYS_TEXT_BASE) 就等价于#define CONFIG_SYS_TEXT_BASE X
其中X 是$(CONFIG_SYS_TEXT_BASE)的值,这次是真的宏常量了。
好了,到此,CONFIG_SYS_TEXT_BASE的成生旅程就走完了……您还有疑问么??
#6
细看了一下,建议你配置完后打开include/config.mk(如果你make 的时候指定了BUILD_DIR=或-O=)那就是你指定的那个目录下的include/config.mk,详细检查一下以下这几个变量是否正确:
你的应该是
ARCH = arm arm
CPU = arm1176 arm1176
BOARD = smdk6410 zcg6410
VENDOR = samsung samsung
SOC = s3c64xx s3c6410
CONFIG_NAND_U_BOOT = y y
还有就是如果配置的时候指定了BUILD_DIR=或-O=,那么make 的时候也要带上!
/board/samsung/zcg6410/config.mk中
sinclude $(OBJTREE)/board/$(BOARDDIR)/config.tmp
/config.mk中
ifdef BOARD
sinclude $(TOPDIR)/board/$(BOARDDIR)/config.mk # include board specific rules
endif
有关CONFIG_SYS_TEXT_BASE宏的变量就VENDOR和BOARD。
呵呵,我也在学习,可以一起啊……
你的应该是
ARCH = arm arm
CPU = arm1176 arm1176
BOARD = smdk6410 zcg6410
VENDOR = samsung samsung
SOC = s3c64xx s3c6410
CONFIG_NAND_U_BOOT = y y
还有就是如果配置的时候指定了BUILD_DIR=或-O=,那么make 的时候也要带上!
/board/samsung/zcg6410/config.mk中
sinclude $(OBJTREE)/board/$(BOARDDIR)/config.tmp
/config.mk中
ifdef BOARD
sinclude $(TOPDIR)/board/$(BOARDDIR)/config.mk # include board specific rules
endif
有关CONFIG_SYS_TEXT_BASE宏的变量就VENDOR和BOARD。
呵呵,我也在学习,可以一起啊……
#7
u-boot官方的没有6410就换一个,改來改去的天知道要改多久,如果真心要改注意 写法为__的玩意儿,那个和芯片息息相关,多半都是改这些
#8
哈哈 学习了,谢谢大神!
#9
#10
我越来越发对楼上的楼上那只小猫感兴趣了。。。。。如果小猫在 也请解决下我的疑问,我用的交叉编译链是4.3.3的 编译我买的TQ2440的板子时提示版本出错,上网查了下 说是我用的版本太新了,开发板光盘里自带的是3.4.5的 我可以在虚拟机里装两个交叉工具链么?
#11
变量前面_平台相关 __和芯片相关,就像7楼说的,u-boot官方版不可能没s3c6410的,没得就去三星官网找找.
#12
工具链可以有多个的,但要注意,如果你的交叉编译器名字相同,又都在PATH环境变量的情况下,通常是使用PATH值里面靠前的那个,所以,有多个的话使用的时候最好改下PATH
#13
uboot里的确是木有6410的,不过通过6400的移植还是很轻松的……,三星官网更难找……连DATASHEET都木有下载的链了&……
#14
还真是高人多啊!新手,学习了!谢谢!
#15
呵呵!说的有道理
#16
JQGuardian 他已经分析很清楚了。
你用我的这个配置吧
kb6410_noUSB_config \
kb6410_config : unconfig
@mkdir -p $(obj)include $(obj)board/samsung/kb6410
@mkdir -p $(obj)nand_spl/board/samsung/kb6410
@echo "#define CONFIG_NAND_U_BOOT" > $(obj)include/config.h
@echo "CONFIG_NAND_U_BOOT = y" >> $(obj)include/config.mk
@if [ -z "$(findstring kb6410_noUSB_config,$@)" ]; then \
echo "RAM_TEXT = 0x57e00000" >> $(obj)board/samsung/kb6410/config.tmp;\
else \
echo "RAM_TEXT = 0xc7e00000" >> $(obj)board/samsung/kb6410/config.tmp;\
fi
@$(MKCONFIG) kb6410 arm arm1176 kb6410 samsung s3c6410
#### #@$(MKCONFIG) kb6410 arm arm1176 kb6410 samsung s3c64xx
@echo "CONFIG_NAND_U_BOOT = y" >> $(obj)include/config.mk
[root@zhaoji kb-uboot-2011.12]# make kb6410_config
warning: Please migrate to boards.cfg. Failure to do so will
mean removal of your board in the next release.
Configuring for kb6410 board...
你用我的这个配置吧
kb6410_noUSB_config \
kb6410_config : unconfig
@mkdir -p $(obj)include $(obj)board/samsung/kb6410
@mkdir -p $(obj)nand_spl/board/samsung/kb6410
@echo "#define CONFIG_NAND_U_BOOT" > $(obj)include/config.h
@echo "CONFIG_NAND_U_BOOT = y" >> $(obj)include/config.mk
@if [ -z "$(findstring kb6410_noUSB_config,$@)" ]; then \
echo "RAM_TEXT = 0x57e00000" >> $(obj)board/samsung/kb6410/config.tmp;\
else \
echo "RAM_TEXT = 0xc7e00000" >> $(obj)board/samsung/kb6410/config.tmp;\
fi
@$(MKCONFIG) kb6410 arm arm1176 kb6410 samsung s3c6410
#### #@$(MKCONFIG) kb6410 arm arm1176 kb6410 samsung s3c64xx
@echo "CONFIG_NAND_U_BOOT = y" >> $(obj)include/config.mk
[root@zhaoji kb-uboot-2011.12]# make kb6410_config
warning: Please migrate to boards.cfg. Failure to do so will
mean removal of your board in the next release.
Configuring for kb6410 board...
#17
这个问题我见过,,,
#cd u-boot-2011.06/board/samsung/ //进入目录
不要#mkdir zcg6410 //创建zcg6410文件夹
2) 因6410和6400的资源差不多,所以就以6400项目的代码作为模板,以后再修改
不要#cp -ar smdk6400/* zcg6410/ //将6400下所有的代码复制到6410下
要 #cp -rf smdk6410 zcg6410
#cd zcg6410 //进入zcg6410目录
#mv smdk6400.c zcg6410.c //将zcg6410下的smdk6400.c改名为zcg6410.c
vi ./Makefile 中 smdk6400 -> zcg6410
#cd ../../../ //回到u-boot根目录
#cp include/configs/smdk6400.h include/configs/zcg6410.h //建立6410配置头文件
注:把新建zcg6410下smdk6400_nand_spl.c更名位zcg6410_nand_spl.c,并且把zcg6410_nand_spl.c和makefile文件中的6400改为6410。其他文件不需要改动。
3)修改u-boot跟目录下的Makefile文件。查找到smdk6400_config的地方,在他下面按照smdk6400_config的格式建立zcg6410_config的编译选项,另外还要指定交叉编译器
另:我发生以上错误时,我没有改好文件名所导致
#cd u-boot-2011.06/board/samsung/ //进入目录
不要#mkdir zcg6410 //创建zcg6410文件夹
2) 因6410和6400的资源差不多,所以就以6400项目的代码作为模板,以后再修改
不要#cp -ar smdk6400/* zcg6410/ //将6400下所有的代码复制到6410下
要 #cp -rf smdk6410 zcg6410
#cd zcg6410 //进入zcg6410目录
#mv smdk6400.c zcg6410.c //将zcg6410下的smdk6400.c改名为zcg6410.c
vi ./Makefile 中 smdk6400 -> zcg6410
#cd ../../../ //回到u-boot根目录
#cp include/configs/smdk6400.h include/configs/zcg6410.h //建立6410配置头文件
注:把新建zcg6410下smdk6400_nand_spl.c更名位zcg6410_nand_spl.c,并且把zcg6410_nand_spl.c和makefile文件中的6400改为6410。其他文件不需要改动。
3)修改u-boot跟目录下的Makefile文件。查找到smdk6400_config的地方,在他下面按照smdk6400_config的格式建立zcg6410_config的编译选项,另外还要指定交叉编译器
另:我发生以上错误时,我没有改好文件名所导致
#18
u-boot移植未错误,来学习