使用eclipse開發linux驅動

來源:互聯網
上載者:User

Eclipse具有很強大的自動補全功能,在瀏覽代碼和編輯代碼的時候用起來十分得心應手,下面我將介紹如何配置Eclipse,讓它來協助我們開放linux驅動

(注意,此處說的Eclipse是Eclipse IDE for C/C++ Developers 。而不是Eclipse IDE for Java Developers 安裝CDT外掛程式後)。

1、建立一個c project。此項目專門為驅動使用。

在右側project explorer列表中,按右鍵剛才建立的項目,選擇properties.
依次選擇c/c++ general -> paths and symbols, 在右面選擇includes選項卡,languages中選擇 GNU C
此時在右側會顯示出編譯器預設的include路徑,好的添加以下內容
/path/of/kernel/dir/include
/path/of/kernel/dir/arch/arm/include

(如果寫的是x86下的驅動,用/path/of/kernel/dir/arch/x86/include)

再選擇Symbols選項卡, 點擊下方Export Settings,將設定匯出為xml檔案.
開啟該xml檔案, 在<language name="C Source File"> </language>標籤中,添加
<macro><name>__KERNEL__</name><value>1</value></macro>

之後我們還需要將autoconf.h中的宏定義加入到Eclipse中,執行如下步驟

  1. cd /path/of/kernel/dir/include/linux/  
  2. cat autoconf.h |grep define |awk '{print "<macro><name>" $2 "</name><value>" $3 "</value></macro>"}' > symbol.xml

開啟symbol.xml, 將裡面的全部內容複寫到 剛才xml檔案</macro>的後面。

儲存檔案,點擊Import Settings 匯入該檔案(如果在匯入的時候經常提示解析錯誤,那麼應該是xml的格式寫錯了,一定要好好地檢查一下到底是錯在哪裡了。)

點擊OK退出properties,再右擊項目,選擇 Index -> Rebuild

但是配置到此以後,還是沒有辦法自動編譯。只好使用自己編寫的Makefile來編譯了。

選擇項目properties.
依次選擇c/c++ build -> Makefile Generation,將build Direcotry指定為Makefile位置。如${workspace_loc:/HelloDriver}。其中的HelloDriver是我的項目根目錄。

然後自己手動編寫Makefile檔案。並放置到項目的根目錄下。

Makefile樣本

pwd = $(shell pwd)KERNEL_SRC = /lib/modules/$(shell uname -r)/buildobj-m := hello.omodule-objs := hello.oall:        $(MAKE) -C $(KERNEL_SRC) M=$(PWD) modulesclean:         rm -f *o *~ .*cmd *o *ko *~ .*cmd  hello.mod.c

右鍵選擇項目->Make Target->Create。在彈出的對話方塊中,填寫Target Name。此處的名稱一般為自己編寫Makefile中目標名稱。在我的Makefile檔案中,我一般寫all。同樣方法也可以添加clean。

此時就可以用Eclipse編寫自己的驅動,並且可以通過Make來自動編譯驅動程式了。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.