经过前面十一篇帖子的基础知识的梳理准备,现在我们可以正式开始移植了,所谓磨刀不误砍柴工,如果前面的一些知识没有准备好,后面你照着步骤来做这些事,毫无意义,试问在工作中,有人会写一个步骤与手册来教给你,让你照着做就OK了吗,那如果有这样的工作,而且薪水可观的话,请联系我,不甚感激!,言归正传,开始正式移植的第一天的任务。
第一天
任务:配置板文件,编译出u-boot.bin
1.cp
-a board/samsung/smdkc100 board/samsung/tiny210
2.cp
include/configs/smdkc100.h include/configs/tiny210.h
3.指定平台
约定如下:
Target(目标):tiny210
ARCH(架构):arm
CPU(芯片):armv7
Board name(板子名称):tiny210
Vendo(生产厂家):samsung
Soc(CPUO类型):s5pc1xx
Options(可选项)
#vim
boards.cfg,在270行添加
tiny210
arm armv7 tiny210 samsung s5pc1xx
上面这句话主要是在选编译时的代码目录
4.修改顶层目录下的Makefile指定交叉编译工具链添加:
ifeq(arm,$(ARCH)) CROSS_COMPILE?=/opt/FriendlyARM/toolschain/4.5.1/bin/arm-linux- endif
上面是我的编译工具链的路径,你换成自己的就OK了。
5.修改tiny210单板目录下的的相关文件--board/samsung/tiny210/
1)修改Makefile,编译tiny210.c文件,将smdkc100.c改名为tiny210.c
COBJS-y := tiny210.o
2)修改board/samsung/tiny210/lowlevel_init.S
添加头文件引用
#include <s5pc110.h>
6.开始编译
#make tiny210_config
#make
上面的命令是调用u-boot根目录下的mkconfig脚本来完成,用来生成config.mk, config.h
错误1:
解决办法:include目录下添加s5pc110.h头文件(在lowlevel_init.S中包含的头文件没有添加,所以报错,加上)
错误2:
解决办法:从include/asm/arch-s5pc1xx下拷贝一个hardware.h到include/asm/arch目录
错误3:
解决办法:include目录下添加s5pc11x.h头文件(在s5pc110.h中包含有此头文件没有添加,所以报错,加上)
7.编译成功,出现u-boot.bin