(5) 拷贝头文件到/root/usr/3.3.2/arm-linux/ 下,然后删除/skiff
# cp -dR /skiff/local/arm-linux/include /root/usr/3.3.2/arm-linux # rm -fr /skiff
这样就建立了armlinux 交叉编译环境。
(6) 增加/root/usr/local/arm/3.3.2/bin到路径环境变量
# export PATH=$PATH:/root/usr/local/arm/3.3.2/bin
可以检查路径变量是否设置正确。
# echo $PATH
3.4 移植的预先编译
移植u-boot到新的开发板上仅需要修改与硬件相关的部分即可。主要包括两个层面的移植,第一层是针对CPU的移植,第二层是针对board的移植。由于u-boot1.1.1里面已经包含S3C44B0的移植,所以笔者对板子myboard的移植主要是针对board的移植。移植之前需要仔细阅读u-boot目录下的README文件,其中对如何移植做了简要的介绍。为了减少移植的工作量,可以在include/config目录下选一个和要移植的硬件相似的开发板,笔者选的是b2开发板。具体步骤如下:
(1) u-boot 1.1.1 下的cpu文件夹里已经包括了s3c44b0的目录,其下已经有start.s、interrupts.c以及cpu.c、serial.c几个文件,因而不需要建立与cpu相关的目录。
(2) 在board目录下创建myboard目录以及my-board.c、flash.c、memsetup.s和u-boot.lds等文件。不需要从零开始创建,只需选择一个相似的目录直接复制过来,然后修改文件名及内容即可。笔者在移植u-boot过程中选择的是u-boot1.1.1/board/dave/B2目录。
(3) 在include/configs目录下添加myboard.h,在这里可放入全局的宏定义等,也不需要从头创建,可以在include/configs目录下寻找相似的CPU的头文件进行复制,这里笔者用的是B2.h文件来进行相关的修改。
(4) 对u-boot根目录下的Makefile文件进行修改,加入
myboard_config: unconfig @$(MKCONFIG) $(@:_config=) arm s3c44b0 myboard
(5) 修改u-boot根目录下的Makefile文件,加入对板子的申明。然后在Makefile中加入myboard
LIST_ ARM7 = "B2 ep7312 impa7 myboard"
(6) 运行make clobber,删除错误的depend文件。
(7) 运行make myboard config。
(8) 执行到此处即表示整个软件的makefile已建立,这时可修改生成的makefile中的交叉编译选项,然后打开makefile 文件,并找到其中的语句:
ifeq($(ARCH) , arm) CROSS_COMPILE=arm-linux- end if
接着将其改成
ifeq($(ARCH) ,arm) CROSS COMPILE=/root/usr/local/3.3.2/bin/arm-linux- end if
这一步和上面的设置环境变量只要有一个就可以了。
执行make,报告有一个错误,修改myboard/flash.c中的#include "../common/flash.c"为"u-boot/board/dave/common/flash.c",重新编译即可通过。
|