开始使用arm-linux-unknown-gcc,但是几次make时一直有问题,即使每次都用export添加路径,还是不行,总是有错误。主要是因为工具链不支持吧。从网上查到很多人使用arm-elf-gcc,于是从http://www.nxp.com/external/opensrcsamsung/download.html下载arm-elf-20040427.sh,并下载最新的u-boot-1.1.6解压使用并下载lpc2294的patch解压到其中直接修改得到lpc2468所需文件,但在arm-elf-gcc下使用u-boot-1.1.6,同样问题倍出,主要原因是u-boot不同版本之间的兼容性问题,u-boot-1.1.6中是硬浮点而u-boot-1.1.3是软浮点。于是下载u-boot-1.1.3。具体的准备工作如下:
1.准备工作:
仍然是在fedora10下,进行将uclinux往lpc2468上的移植。先下载arm-elf-20040427.sh,
地址:http://www.nxp.com/external/opensrcsamsung/download.html
然后下载u-boot-1.1.3.tar.bz2
地址:ftp://ftp.denx.de/pub/u-boot/u-boot-1.1.3.tar.bz2
下载u-boot-lpc2294.patch(原因:这样直接对lpc2294进行修改得到lpc2468,简单)可以从csdn上下载。
2.运行终端。
$su 进入root用户
$cd /usr/src
$tar –xjvf u-boot-1.1.3.tar.bz2 解压到/usr/src
$cd u-boot-1.1.3
$patch –p1 </home/xujie1/downloads/u-boot-lpc2294.patch 解压patch
$cp lpc2294/* lpc2468 后加/*的意思是拷贝整个文件夹
$cd lpc2468
$cp lpc2294.c lpc2468.c 复制得到lpc2468.c
$rm –rf lpc2294.c 删除lpc2468里的lpc2294.c
$vim Mikefile 打开后把里面的lpc2294改成lpc2468.
$cd /usr/src/u-boot-1.1.3/include/configs
$cp lpc2294.h lpc2468.h
$cd /usr/src/u-boot-1.1.3
$vim Makefile 找到lpc2294_config unconfig(在文件的靠后的位置,可用G命令跳到最后然后从后往前找)的设置并用6yy的命令复制六行后p粘贴,然后修改其中的lpc2294为lpc2468.
$cd /home/xujie1 跳转到放arm-elf-tools-20040427.sh的目录下开始安装arm-elf
$sh ./arm-elf-tools-20040427.sh 会出现错误tail:cannot open ‘+43’ for reading:No such file or directory 解决方法:
$vim Makefile 找到39行修改 tail +${SKIP} ${SCRIPT } |gunzip| tar xvf – 修改为:
tail –n+${SKIP} ${SCRIPT } |gunzip| tar xvf –
并且在文件的最后一行加一个空行。
$sh ./arm-elf-tools-20040427.sh 重新执行后成功。
$cd /usr/src/u-boot-1.1.3
$make lpc2468_config 回到uboot目录下运行lpc2468_config
$make 有出错了:……没有规则创建“all”需要的目标……“hello_word.srec”停止。……
解决方法:
$cd /usr/src/u-boot-1.1.3/examples
$vim Makefile 在第58、59行修改hello_world.srec为hello_world.o hello_world.bin为hello_world.o
$cd /usr/src/u-boot-1.1.3
$make distclean 每次编译时最好先清盘
$make lpc2468_config
$make 成功生成u-boot镜像。但是,这个u-boot是极其不成熟的,需要做很大的修改才能用。未完待续。
附:一些常用解压命令:
tar –xjvf *.tar.bz2
tar –xzvf *.tar.gz
patch –p1 <*.patch
安装:rpm –ivh *.rpm 卸载: rpm -e packgename