Ubuntu 下使用Eclipse编译、调试嵌入式程序的方法(中)
/************************************************
转载请注明出处:
风之书:http://xubing.cnblogs.com
************************************************/
这篇文章将分成3部分:
第一步:安装arm-linux-gcc
第二步:安装、配置Eclipse
第三步:编译、配置GDB Server & GDB Client
下面开始讲解第二步的操作:
第二步:安装、配置Eclipse
打开http://www.eclipse.org/downloads/,下载Eclipse IDE for C/C++ Developers
注意: Eclipse的网站比较智能,它会根据你的操作系统来为你选择下载的软件版本。如果你用windows打开这个网址,就会下到windows版的eclipse。
下完之后,解压就能用了~很简单。但是,现在我们的Eclipse还只能编译PC机的程序。
接下来,我们要为Eclipse添加交叉编译功能。
常规的方法是建一个GCC工程,然后把工程属性里的gcc改成arm-linux-gcc。
这里,我介绍一种新的方法:
我们可以在下面的这个网址找到一个GNU ARM Eclipse Plug-in,这是一个eclipse的插件,装上这个插件之后,eclipse就能够编译ARM程序了。
http://sourceforge.net/projects/gnuarmeclipse/
相对于前面说的那种常规方法而言,使用这个插件来实现交叉编译,可以看到更多的细节设置、选项。
打开那个网页后,先别急着点击Download按钮~我们点view all files按钮,在里面可以看到一个README。里面写着:
The recommended way is to use the Eclipse standard update mechanism:
Help -> Software Updated -> Available Software -> Add Site
http://gnuarmeclipse.sourceforge.net/updates
(be sure you uncheck 'Group items by category' and later accept
the unsigned plug-in)
The alternate solution to the online site is to download the archive
from SourceForge and to to point the Eclipse update mechanism to it
(Help -> Software Updated -> Available Software -> Add Site -> Archive).
我们还是按照这个recommended way来做吧。
打开Eclipse,点击Help。呃……居然没有Software Updated这个选项……
呵呵,不要慌,我们可以在Window->Preferences->Available Software同样的功能。
点击Add,把网址加上,然后Help->Install new software,在Work with后面填入这个网址网址:http://gnuarmeclipse.sourceforge.net/updates,然后把Group items by category取消。
如下图:
点击Next安装这个插件。安装完后,重启eclipse,新建一个工程,此时就可以看到ARM的toolchain了。如下图所示:
然后,我们选择ARM Cross Target Application中的Empty Project,并选择ARM Linux GCC来建立一个C语言工程。
默认情况下,GNU ARM Eclipse Plug-in会按照无操作系统的执行环境来配置工程。我的开发板上已经有了Linux,所以我需要修改一下设置。
首先,我们删除一些不需要的编译工具。进入Project->Properties,选择C/C++ Builder下的 Tool Chain Editoer。
我不记得原先有哪些编译工具了,总之,我选了下图中的这几个:
然后在Setting中选择你的CPU类型,我的是S3C2440属于ARM920t,设置如下图:
另外,还需要设置各个工具的Command。如下图:
最后,选择ARM Linux GCC C Linker下面的General,把所有的选项都取消。如下图:
至此,设置就全部完成了。你可以用这个工程写一个Hello World传到板子上去试一试~
我把这个工程命名为Template,以后需要新建工程的时候直接Copy它,再改名就行了~