分类: 嵌入式
2015-01-16 17:03:52
上一篇日记中讲到jlink+openocd的调试,除insight外都是在命令行中摸黑进行。图形化是趋势,上手容易,基于鼠标;当然,命令行有时候比IDE还是快很多的,前提是你的记性够好,键盘够快。
eclipse+gcc可以说是图形跟命令行的完美结合,linux很多软件都是,例如insight+gdb。eclipse有个缺点,界面很漂亮但是代价很大,1GB内存马马虎虎还行。
一:准备工作
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一样。我们下回研究,呵呵。