Chinaunix首页 | 论坛 | 博客
  • 博客访问: 226847
  • 博文数量: 82
  • 博客积分: 30
  • 博客等级: 民兵
  • 技术积分: 505
  • 用 户 组: 普通用户
  • 注册时间: 2011-02-23 14:59
文章分类

全部博文(82)

文章存档

2015年(81)

2011年(1)

我的朋友

分类: 嵌入式

2015-01-16 17:03:52

上一篇日记中讲到jlink+openocd的调试,除insight外都是在命令行中摸黑进行。图形化是趋势,上手容易,基于鼠标;当然,命令行有时候比IDE还是快很多的,前提是你的记性够好,键盘够快。
eclipse+gcc可以说是图形跟命令行的完美结合,linux很多软件都是,例如insight+gdb。eclipse有个缺点,界面很漂亮但是代价很大,1GB内存马马虎虎还行icon
一:准备工作
1)安装gcc交叉工具链;
   这个有好多方法,可以用crosstool构建一个,也可以下载现成的,我安装了三个:crosstool构建的arm-softfloat-linux-gcc;GNUARM的arm-elf-gcc;Sourcery G++ Lite的arm-none-eabi-gcc.
   需要注意的是Sourcery G++ Lite for ARM 共有四个版本:                 
   1、EABI   arm-2008q3-39-arm-none-eabi    
   Sourcery G++ Lite 2008q3-39  All versions... 
   Sourcery G++ for ARM EABI is for use in bare-metal and/or RTOS environments.(适用于编译裸机或RTOS环境上的应用,比如u-boot等);Run-Time Libraries:ARMv4 - Little-Endian, Soft-Float;ARMv4 Thumb -    Little-  Endian, Soft-Float;ARMv6-M Thumb - Little-Endian, Soft-Float;ARMv7 Thumb-2 - Little-Endian, Soft-Float。
   2、uClinux     arm-2008q3-42-arm-uclinuxeabi
   Sourcery G++ Lite 2008q3-42  All versions... 
   Sourcery G++ for ARM uClinux is for systems running the Linux kernel without using a memory-management unit (MMU). You can use Sourcery G++ to build both the uClinux kernel and uClinux applications. )适  用于编译linux内核和应用程序,不带MMU的CPU);Run-Time Libraries:ARMv4T - Little-Endian, Soft-Float;ARMv6-M Thumb - Little-Endian, Soft-Float;ARMv7 Thumb-2 - Little-Endian, Soft-Float。
   3、GNU/Linux   arm-2008q3-41-arm-none-linux-gnueabi
   Sourcery G++ Lite 2008q3-41  All versions... 
   Sourcery G++ for ARM GNU/Linux is for use in developing for systems which run the Linux kernel. You can use Sourcery G++ to build both the Linux kernel and Linux applications.(适用于编译linux内核和应用程序,带MMU的CPU);Run-Time Libraries:ARMv4T - Little-Endian, Soft-Float, GLIBC;ARMv5T - Little-Endian, Soft-Float, GLIBC;ARMv7-A Thumb-2 - Little-Endian, Soft-Float, GLIBC。
   4、SymbianOS   arm-2008q3-40-arm-none-symbianelf
   Sourcery G++ Lite 2008q3-40  All versions... 
   适用于编译Symbian应用程序;Run-Time Libraries:ARMv5 - Little-Endian, Soft-Float;ARMv5 - Little-Endian, VFP。
2)安装eclipse相关工具
   1、安装sun的Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_12-b04)最好是1.5以上版本,具体看eclipse的要求。
   2、安装Eclipse C/C++ Development Tools Version: 6.0.0.200909110608,绿色软件,解压即用。
   3、安装GNUARM的GNU ARM Eclipse Plug-in,将下载的jar文件直接放到eclipse 的plugins文件夹。


今天我们要讨论的不是安装,重点是eclipse的应用,在我们日常开发的使用。相信很多朋友选择windows 下IDE的原因都是因为不用写Makefile吧,但是很多时候,linux开发都离不开Makefile,eclipse只是外壳,这决定了它可以是很灵活的,除了工程管理,版本控制,eclipse可以自动生成Makefile,也可以导入写好Makefile的工程例如uboot。
1)自动生成Makefile
由于eclipse自带的cdt支持linux gcc,也就是说生成的是x86主机用的linux程序,如果我们要生成arm平台使用的程序,我们需要指定编译用的编译器,然后指定汇编编译连接各过程的参数,然后导入源代码就可以自动生成Makefile产生arm平台的可执行程序。










大家可以看到,过程非常繁琐,需要指定非常多的option,差不多可以写个Makefile的工作量了,一不小心还会错的莫名其妙,原因是这个linux gcc的plugin只是支持x86标准平台的,被我们硬性设置为交叉平台用去了。GNUARM eclipse Plugin可以帮我们这个忙,它把gcc的option变成图形界面,你只需要鼠标就可以选择,当然它支持GNUARM和Sourcery的gcc工具链,你应该先安装这两个工具链之一。








2)导入有Makefile的工程
这时候,eclipse只是执行Makefile而已,依赖关系等都一切都在你的控制之中,你也可以指定toolchain,如果不是的话,你应该在Makefile里面定义




 


上面中间可能省略了个别步骤,请大家谅解。


编译产生arm平台用的程序,我们要在eclipse下面debug可以吗?就好像insight一样。我们下回研究,呵呵。

阅读(1241) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~