arm-elf工具链的建立

来源:互联网 发布:网络被帖子攻击怎么办 编辑:程序博客网 时间:2024/05/17 15:39

arm-elf工具链的建立2009-01-05 15:44具体的编绎过程和源码包请参考这个网页,里面的编绎过程写得很清楚,而且还提供脚本下载。

http://openhardware.net/Embedded_ARM/Toolchain/


对于低版本的linux操作系统,机子上可能没有安装mpfr和gmp包,但这两个在gcc高版本中是需要的,如果在编绎newlib遇到无法找到mpfr或者是gmp的链接库时,可以这样子解决。

    把gmp和mpfr的源码解压缩到gcc的源码底下,如下:

cd gcc_build ; /

tar jxvf ../downloads/gmp-4.2.1.tar.bz2 ; /

mv gmp-4.2.1 gmp; /

tar jxvf ../downloads/mpfr-2.3.0.tar.bz2 ; /

mv mpfr-2.3.0 mpfr; /
 
 


1、busybox1.13.1的编绎

  使用默认配置文件。

  make deconfig

  需要交叉编绎,修改Makefile 

-- CROSS_COMPILE ?=

++ CROSS_COMPILE ?=arm-linux-


--ARCH ?= $(SUBARCH)

++ARCH := arm
 


  make install

  busybox默认安装在./_install文件夹下,编绎完之后包括以下文件夹。

   .

|-- bin

|-- sbin

`-- usr

    |-- bin

    `-- sbin
 

 

2、建立linux根文件系统

  建立脚本:

#!/bin/sh
mkdir myrootfs
cd myrootfs
mkdir var proc sys etc
cd etc
mkdir init.d
touch fstab
echo "#device     mount-point    type   options        dump fsck order
proc           /proc        proc   defaults        0     0     
sysfs          /sys         sysfs defaults        0     0
ramfs           /var         ramfs defaults       0     0" > fstab
chmod 644 fstab
touch inittab
echo "# /etc/inittab
::sysinit:/etc/init.d/rcS
::askfirst:-/bin/sh
::ctrlaltdel:/sbin/reboot
::shutdown:/bin/umount -a -r" > inittab
chmod 644 inittab
cd init.d
touch rcS
echo "#!/bin/sh
mount -a
if [ ! -d /dev/pts ] ; then mkdir -p /dev/pts ; fi
mount -t devpts devpts /dev/pts
#echo /sbin/mdev > /proc/sys/kernel/hotplug
#mdev -s
/bin/hostname -F /etc/network/HOSTNAME" > rcS
chmod 644 rcS
 

 

3、dev设备文件的建立

  先建立主要的三个设备:

  mknod console c 5 1  

  mknod null c 1 3  

  mknod zero c 1 5

  

4、测试

  开发板:s3c2440

  文件系统:nfs

  测试结果:pass