卡住了,网上搜了一些资料,以备不时之需,有会移植的大神还请叫我两招。
1.1 移植环境介绍
U-boot版本:u-boot 2010-6
Linux平台:虚拟机下Fedora 13
交叉编译工具:gcc-4.4.3
arm开发板:mini2440(CPU:S3C2440 ,SDRAM:64M,Nor Flash:2M,Nand Flash:256M,网卡:DM9000EP)
1.2 删减u-boot文件
删除arch目录下除arm目录以外的所有目录,arm\cpu目录下除arm920tmulu以外的所有目录,arch\arm\cpu\arm920t录下除s3c24x0目录以外的所有目录(该目录下的文件不要删),arch\arm\include\asm目录下除arch‐s3c24x0目录以外的所有arch‐xxxx目录(该目录下的文件不要删) 删除board目录下除samsung目录以外的所有目录,board\samsung目录下除smdk2410目录以外的所有目录 删除include\configs目录下除smdk2410.h文件以外的所有头文件。
1.3 修改顶层Makefile文件
# set default to nothing for native builds ifeq ($(HOSTARCH),$(ARCH)) #CROSS_COMPILE ?= #=========指定交叉编译工具======== CROSS_COMPILE ?= arm-linux-gcc Endif
smdk2410_config : unconfig @$(MKCONFIG) $(@:_config=) arm arm920t smdk2410 samsung s3c24x0 #仿照smdk2410,配置自己的开发板 mini2440_config : unconfig @$(MKCONFIG) $(@:_config=) arm arm920t mini2440 s3c24x0
|
开发板配置选项中各项的含义如下:
arm |
CPU 的类型(CPU) |
arm920t |
其对应于cpu/arm920t 子目录 |
zcrarm |
开发者/或经销商(vender),对应于board/zcrarm目录 |
mini2440 |
开发板的型号(BOARD),对应于board/ zcrarm /mini2440 目录 |
s3c24x0 |
片上系统(SOC)定义 |
1.4 在/board 中建立mini2440 目录和文件
#cd board #mkdir -p mini2440 #cp -arf samsung/smdk2410/* samsung/mini2440/ #cd mini2440/ #mv smdk2410.c mini2440.c |
1.5 修改mini2440 目录下的Makefile文件
LIB = $(obj)lib$(BOARD).a #COBJS := sbc2410x.o flash.o COBJS := mini2440.o flash.o SOBJS := lowlevel_init.o SRCS := $(SOBJS:.o=.S) $(COBJS:.o=.c)
|
1.6 在include/configs/中建立开发板配置文件
#cp include/configs/smdk2410.h include/configs/mini2440.h |
1.7 测试编译环境(此问题在以前移植u-boot时出现)
至此,最基本的配置已经完成。
[root@angel u-boot-2009.11]# make mini2440_config Configuring for mini2440 board... ln: 创建符号链接 “asm”: 不支持的操作 make: *** [mini2440_config] 错误 1 |
出现错误了,会是什么原因呢?测试一下U-boot本身附带的配置:
[root@angel u-boot-2009.11]# make smdk2410_config Configuring for smdk2410 board... ln: 创建符号链接 “asm”: 不支持的操作 make: *** [smdk2410_config] 错误 1 |
依然是这个错误,于是猜测错误原因不是在自己的配置上,上网查了下,发现错误原因是:在Windows分区使用此命令,Windows分区不支持linux上的链接。
恍然大悟啊,自己把U-boot解压在虚拟机的共享文件夹下了,修改文件夹路径,编译……OK.