开发环境:

ubuntu12.04(64位)

eclipse (c/c++)luna

注意:本文主要讲将eclipse配置好编译器。 远程调试的部分请看另一篇帖子 eclipse 调试环境配置

我的arm-linux-gcc 路径是:/opt/EmbedSky/4.3.3/bin/arm-linux-gcc  (什么?怎么看arm-linux-gcc的路径??  你可以使用 which arm-linux-gcc 来察看

我的linux 内核路径是:/opt/EmbedSky/linux-2.6.30.4

step1:

安装eclipse以及jdk的配置、交叉编译器的配置,这部分请看eclipse(c/c++)luna安装

step2:

0、这一步假设你已经能正常打开eclipse arm-linux-gcc已经配置好。

1、打开eclipse,最好将工作空间设为nfs,以便你的板子挂载它。(nfs配置方法请看这个nfs挂载方法)。

打开后如图所示:


我已经建了个工程。你第一次打开肯定不是这样的。

2、新建一个工程: file->new->c project.   如图:


3、输入工程名称。

选择 Empty Project   cross GCC。  finish就可以,具体配置我们等会再来配置。

step3:

下面让我们配置一番。

0、主要包括:取消makefile自动生成,配置编译器arm-linux-gcc,配置路径和符号。

1、取消eclipse自动生成 makefile :将General Makefile automatically的对勾去掉。  ok


3、配置编译环境:

在左侧项目栏右击项目名称 ->选择properties,在c/c++build-->setting里,把toolsetting中的command都改成arm-linux-gcc,arm-linux-gcc和arm-linux-as一共改这三个。

4、配置路径和符号:

选择 gun C ,点击右侧add  添arm-linux-gcc的一些头文件:

我的是:

/opt/EmbedSky/4.3.3/lib/gcc/arm-none-linux-gnueabi/4.3.3/include

/opt/EmbedSky/4.3.3/lib/gcc/arm-none-linux-gnueabi/4.3.3/include-fixed

/opt/EmbedSky/4.3.3/arm-none-linux-gnueabi/include

/opt/EmbedSky/4.3.3/arm-none-linux-gnueabi/libc/usr/include

添加的时候别忘了选择(打钩):add to all configurations。


我们保存下配置: 点击下面的 export setting。 格式是xml文件,名字随便,位置随便,它是一个非常随便的文件  哈哈。

配置还没结束,这样的配置显然是不够的,我们干脆在xml文件中配置好了。

5、打开你保存的xml文件,我们来编辑他。用gedit打开就行。

在第一个

<language name="C Source File">


</language>

之间添入内核树的头文件的路径(include路径)。我的是:

<includepath>/opt/EmbedSky/linux-2.6.30.4/include</includepath>
<includepath>/opt/EmbedSky/linux-2.6.30.4/arch/arm/include</includepath>
<includepath>/opt/EmbedSky/linux-2.6.30.4/arch/arm/plat-s3c24xx/include</includepath>

注意格式。欲知详情,请学习 xml。这样内核树路径的问题就解决了,这里我想顺便提醒一句,你的内核编译过吗?  没编译过是不行的,编译驱动程序的时候会提示一个文件打死都找不到,赶紧make一遍吧!

6、找到 autoconf.h  我们需要这里面的宏定义,将这些宏放在symbols里面。具体做法:

我的autoconf.h文件在   /opt/EmbedSky/linux-2.6.30.4/include/linux 目录下。如果咱俩的版本不一样 请自己grep一下。

进到这个目录下,然后执行一下命令:

cat autoconf.h |grep define |awk '{print "<macro><name>" $2 "</name><value>" $3 "</value></macro>"}' > symbol.xml

这个命令的作用是将autoconf.h 文件里的宏 全部存放到 symbol.xml这个文件中。没成功??不可能吧,使用sudo试试

打开这个symbol.xml文件,复制文件中所有的文字 粘贴到 我们刚才从eclipse导出来的配置文件中(也是xml文件)。粘贴到的位置是:

第二个

<language name="C Source File">


</language>

的中间。

并在<language name="C Source File"> 下面手动加一条:

<macro><name>__KERNEL__</name><value>1</value></macro> 


预览一下吧:

step5:

好了,配置文件总算弄完了,保存一下。 我们再打开eclipse的 gun c的那个配置界面,点击import setting按钮,将这个xml文件导进来。以后我们再建工程时直接导入这个配置文件就好了。

linux 驱动开发IDE就这样的打造好了。                                           写个教程不容易,转载请标注出处。http://blog.csdn.net/tianzhihen_wq

简单实验一下。  导入一个 .c文件和makefile

给你个例子:

#include <linux/init.h>  
#include <linux/module.h>  
MODULE_LICENSE("Dual BSD/GPL");  
      
static int hello_init(void)  
{  
    printk(KERN_ALERT "Hello, world\n");  
    return 0;  
}  
       
static void hello_exit(void)  
{  
   printk(KERN_ALERT "Goodbye, cruel world\n");
}  
      
module_init(hello_init);  
module_exit(hello_exit);  

ARCH=arm  
CROSS_COMPILE=arm-linux-gcc  
obj-m := hello.o  
KDIR :=/opt/EmbedSky/linux-2.6.30.4   
PWD :=$(shell pwd)  
all:  
	$(MAKE) -C $(KDIR) M=$(PWD) modules  
clean:  
	$(MAKE) -C $(KDIR) M=$(PWD) clean  

makefile需要根据你linux内核位置选择一下。  还有一点,由于我们是使用自己的makefile,编译的时候eclipse默认从工程目录下的Debug目录编译,这个位置可以从eclipse的

pwd 路径 选择,如图:

好多配置,我相信过5天后让我从头开始配置的时候肯定又忘了。。。所以转一份我的博文吧,转载请标注出处。http://blog.csdn.net/tianzhihen_wq

这写都配置完了,build一下吧,看看debug目录下有没有  .ko文件。 祝你成功!。


Logo

更多推荐