zoukankan      html  css  js  c++  java
  • 利用Eclipse开发Linux驱动

              之前写Linux驱动都是在纯文本下完成的,最近发现原来可以使用Eclipse来开发,于是捣鼓了半天终于编译成功,感觉还不错。下面以Hello World驱动为例说一下使用Eclipse开发ARM-Linux驱动的过程。

            关于Eclipse和CDT的安装就不说了。安装完Eclipse和CDT后,运行Eclipse,file->New->project选择C/C++里面的C Project,如下图:

    然后点击Next,填写工程名为hello和设置工程路径,设置如下:

    点击Next后再点击Next,填写交叉编译器前缀和交叉编译器路径,如下:

    然后点击finish,此时的工程结构如下图所示,自动包含了几个与交叉编译器相关的头文件路径:

    右键工程->Propertise,选择C/C++ General里的Paths and Symbols,选中在includes选项卡里的GNU C,然后点击右边的Add按钮,添加内核(必须事先已经用交叉编译器编译过)头文件目录,如下:

    勾选Add to all configurations ,然后点击OK,在Symbols选项卡里添加一个Symbols,Name为__KERNEL__,Value为1,如下:

    勾选Add to all configurations,然后点击OK。再点击OK,此时会弹出一个框,如下,选择YES。

    编写hello.c文件:

     1 #include <linux/module.h>    /* Needed by all modules */
     2 #include <linux/kernel.h>    /* Needed for KERN_INFO */
     3 #include <linux/init.h>        /* Needed for the macros */
     4 
     5 
     6 static int __init hello_init(void)
     7 {
     8     printk(KERN_INFO "Hello, world\n");
     9     return 0;
    10 }
    11 
    12 static void __exit hello_exit(void)
    13 {
    14     printk(KERN_INFO "Goodbye, world\n");
    15 }
    16 
    17 module_init(hello_init);
    18 module_exit(hello_exit);
    19 MODULE_LICENSE("GPL");

    编写Makefile文件:

    1 obj-m += hello.o
    2 
    3 PWD = $(shell pwd)
    4 
    5 all:
    6     make -C /GT2440/kernel/linux-2.6.34.12 M=$(PWD) modules
    7 
    8 clean:
    9     rm -f *.o *.ko    

    完成后,如下图:

    最后,右键工程->Properties->C/C++ Build,在Builder Settings选项卡里取消勾选Generate Makefiles automatically,如下:

    然后单击OK。右键工程->Build Project编译工程,成功编译效果如下:

    已经生成hello.ko文件,并且可以看到Console的输出和在终端下编译的输出是一样的。

    附:

           要导入原来的C工程的方法是,File->Import,选在General下的Existing Projects into Workspace,如下:

     

    然后点击Next,点击Browse选择要导入的工程的根目录,然后点击Finish。

  • 相关阅读:
    渡一 5-1、2 条件语句补充,初识引用值,typeof,类型转换
    渡一 3-2 js基础知识
    渡一 25 正则表达式
    渡一 15-1 数组去重(上下)
    渡一 14-3 数组,类数组
    渡一 14-1&2 三目运算符,数组,类数组
    3_Guess Fingers
    2_Cat Years
    27_Blog Reader
    26_Json_Example
  • 原文地址:https://www.cnblogs.com/lknlfy/p/2851744.html
Copyright © 2011-2022 走看看