U-Boot移植粗略步骤 (根据自己的开发板做,但是步骤都差不多)
为了使U-Boot支持新的开发板,一种简便的做法是在U-Boot已经支持的开发板中选择一种和目标板接近的,并在其基础上进行修改。代码修改的步骤如下:
1)在board目录下创建smdk2410目录,添加smdk2410.c、flash.c、memsetup.s、u-boot.lds和config.mk等;
2)在cpu目录下创建arm920t目录,主要包含start.s、interrupts.c、cpu.c、serial.c和speed.c等文件;
3)在include/configs目录下添加smdk2410.h,它定义了全局的宏定义等;
4)修改u-boot根目录下的Makefile文件:
smdk2410_config : unconfig@./mkconfig $(@:_config=) arm arm920t smdk2410
5)运行make smdk2410_config,如果没有错误,就可以开始进行与硬件相关的代码移植工作。由于这部分代码与硬件紧密相关,所以要熟悉开发板的硬件配置,可参考各芯片的用户手册。
详细的步骤说明:
参照board/smdk2410目录,我们在源码的board下建立自己的自己的平台gec2410,步骤如下.
1 修改顶层Makefile
cd /root/build_uboot/u-boot
vi Makefile找到:
smdk2410_config : unconfig
@./mkconfig $(@:_config=) arm arm920t smdk2410 NULL s3c24x0
在其后面添加:
gec2410_config : unconfig
@./mkconfig $(@:_config=) arm arm920t gec2410 NULL s3c24x0各项的意思如下:arm: CPU的架构(ARCH)arm920t: CPU的类型(CPU),其对应于cpu/arm920t子目录。gec2410: 开发板的型号(BOARD),对应于board/gec2410目录。NULL: 开发者/或经销商(vender)。s3c24x0: 片上系统(SOC)。 我把我的板子起名叫gec2410,可以依自己的喜好修改
2 建立board/gec2410目录,
拷贝board/smdk2410下的文件到board/gec2410目录,
将smdk2410.c更名为gec2410.c
cp -r board/smdk2410 board/gec2410 3
修改board/gec2410/Makefile将:
OBJS := smdk2410.o flash.o
改为:
OBJS := gec2410.o flash.o
4 cp include/configs/smdk2410.h include/configs/gec2410.h
5 修改
cpu/arm920t/config.mk
文件将:
PLATFORM_CPPFLAGS +=$(call cc-option,-mapcs-32,-mabi=apcs-gnu)
改为:
PLATFORM_CPPFLAGS +=$(call cc-option,-mapcs-32,$(call cc-option,-mabi=apcs-gnu),)
6 设置交叉编译环境变量
export PATH=/usr/local/arm/2.95.3/bin:$PATH 7
测试编译能否成功:
make gec2410_config |