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中,執行如下步驟
- cd /path/of/kernel/dir/include/linux/
- 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來自動編譯驅動程式了。