您的位置:首页 > 运维架构 > Linux

linux下搭建基于Eclipse的arm的开发环境

2011-11-15 16:54 686 查看
经过一段时间的摸索,终于把linux下搭建基于Eclipse的arm的开发环境给搭建起来了,做下笔记,以便日后查看。
0. 用的linux版本是Ubuntu 9.04
    用的板子是FriendlyARM s3c2440
1. 准备好相应的软件包:
    arm-linux-gcc-3.4.1.tar.bz2(网上现成的交叉编译工具,有兴趣的话也可以自己重头编译)
                                 地址:ftp://ftp.handhelds.org/projects/toolchain/arm-linux-gcc-3.4.1.tar.bz2
    jdk-6u21-linux-i586.bin(其实这里jre应该也够了,装个jdk以备以后开发java程序需要)
                                 地址:http://www.oracle.com/us/sun/index.html
    eclipse-cpp-helios-linux-gtk.tar.gz
                                 地址:http://www.eclipse.org/downloads/
2. 首先建立交叉编译环境
    (1) 将arm-linux-gcc的压缩包arm-linux-gcc-2.95.3.tar.gz解压缩;eclipse-cpp-helios-linux-gtk.tar.gzeclipse-cpp-helios-linux-gtk.tar.gz
         $ sudo tar vxjf arm-linux-gcc-3.4.1.tar.bz2
    (2) 将路径usr/local下的arm目录拷贝到你自己系统的/usr/local下;
         cd ./usr/local
         $ sudo mv arm /usr/local
    (3) 修改环境变量,把交叉编译器的路径加入到PATH。(有三种方法,强烈推荐使用方法一,我也不知道为啥,网上说的)
         方法一:修改/etc/bash.bashrc文件
               $ sudo vi /etc/bash.bashrc    在最后加上:
                export PATH=$PATH:/usr/local/arm/3.4.1/bin(注意,这里的等号前后不能有空格,下同)
                export PATH
方法二:修改/etc/profile文件:(经测试发现,方法二必须重新启动,使用source的话换个终端就无效了)
               $ sudo  vi /etc/profile        增加路径设置,在末尾添加如下:
                export PATH=$PATH:/usr/local/arm/3.4.1/bin
    方法三:#export PATH=$PATH:/usr/local/arm/3.4.1/bin   注:(这只能在当前的终端下才是有效的!)
         总结:在这里我们还是用第二种方式吧,第一种方式Eclipse识别不出来的  -- 2010-10-10 9:47
    (4) 保存对profile的修改后,执行source /etc/bash.bashrc 就OK了,该命令能立即使新的环境变量生效,不用重启电脑; 
          用$ echo $PATH 检查是否将路径加入到PATH
    (5) 测试是否安装成功:$ arm-linux-gcc -v
3. 安装Eclipse运行所需的jre,这里以jdk替代
    (1) 安装jdk-6u21-linux-i586.bin
view plaincopy to clipboardprint?
$ cd /usr/local/lib  
$ sudo cp /home/jdk-6u4-linux-i586.bin ./  
$ sudo chmod +x jdk-6u4-linux-i586.bin  
$ sudo ./jdk-6u4-linux-i586.bin  
$ cd /usr/local/lib $ sudo cp /home/jdk-6u4-linux-i586.bin ./ $ sudo chmod +x jdk-6u4-linux-i586.bin $ sudo ./jdk-6u4-linux-i586.bin
    (2) 设置环境变量
         在/etc/profile中加入如下的内容:
         (由上面可知这里用的是第一种方法,其实我暂时也没搞明白具体区别在哪里,姑且这样这着吧)
view plaincopy to clipboardprint?
JAVA_HOME=/usr/local/lib/jdk1.6.0_21  
JRE_HOME=/usr/local/lib/jdk1.6.0_21/jre  
CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib  
PATH=$PATH:$JAVA_HOME/bin 
export JAVA_HOME JRE_HOME CLASSPATH  
JAVA_HOME=/usr/local/lib/jdk1.6.0_21 JRE_HOME=/usr/local/lib/jdk1.6.0_21/jre CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib PATH=$PATH:$JAVA_HOME/bin export JAVA_HOME JRE_HOME CLASSPATH
    (3) source /etc/profile
    (4) java -version
4. 安装Eclipse
    (1) 解压Eclipse
view plaincopy to clipboardprint?
sudo tar zxvf eclipse-cpp-helios-linux-gtk.tar.gz -C /usr/local/dev  
sudo tar zxvf eclipse-cpp-helios-linux-gtk.tar.gz -C /usr/local/dev
    (2) 把Eclipse的编译器配置成arm-linux-gcc
          解压完以后我们就能在相应的目录找到Eclipse文件了,双击打开运行。
          新建一个工程以后选择工程的Properties,在弹出的页面上进行如下图设置:



          加了一个名为arm的编译方式以后,将它下面GCC C Compiler和GCC C Linker的Command改成arm-linux-gcc,然后就万事OK了,你现在就可以通过Eclipse利用arm-linux-gcc来进行交叉编译了。



5.PC开启NFS与开发板链接
      PC上编译好的东西必须拿到板子上才能运行,拿U盘拷来拷去好像有点不太现实,我们利用NFS挂载就可以轻松解决这个问题。
   (1) 安装
      在Ubuntu系统下,使用NFS需要首先安装以下NFS的软件包
      服务器端 : nfs-common、nfs-kernel-server、portmap;
      客户端:nfs-common、portmap;
      在服务器端安装软件包的命令式:$sudo apt-get install nfs-kernel-server
       (安装nfs-kernel-server时,apt会自动安装nfs-common和portmap)
      目标板上的Linux系统由Linux内核和busybox共同提供对NFS的支持,不必安装其他的NFS客户端。
   (2) 配置
      NFS的配置文件是/etc/exports。
      在该文件后面加一行:/home/xxx/workspace *(rw,no_root_squash)  使目录/home/xxx/workspace允许所有的IP以读写的权限来访问。
   (3) 使用
      使用之前必需开启NFS服务:$sudo /etc/init.d/nfs-kernel-server start
      当然,使用之后可以关闭NFS服务:$sudo /etc/init.d/nfs-kernel-server stop
      首先在Linux服务器上进行NFS服务器的回环测试,验证共享目录能否被访问。
       $ mount -t nfs 192.168.1.1:/home/xxx/workspace /mnt
       $ ls /mnt
      启动开发板后在目标系统的Linux Shell下
       $ mount -t nfs 192.168.1.1:/home/xxx/workspace /mnt/nfs -o nolock
       $ ls /mnt/nfs
      如果成功开发板就可以直接运行主机上的程序了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: