利用Eclipse開發Linux驅動

來源:互聯網
上載者:User

          之前寫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.o2 3 PWD = $(shell pwd)4 5 all:6     make -C /GT2440/kernel/linux-2.6.34.12 M=$(PWD) modules7 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個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.