Eclipse 搭建 Linux 核心驅動程式開發環境
1、開發工具 eclipse 、arm-linux-gcc交叉工具鏈、對應開發板的Linux 核心原始碼。
2、安裝開發工具,並將核心原始碼包解壓到指定路徑中,並編譯。 eg:/usr/local/arm/linux_E9_3.0.35_for_Linux
3、利用eclipse新建一個C Project,Empty Project。
然後一路預設next 到新增交叉編譯器路徑。
設定好之後點選完成。
4、工程建好之後,在其工程上右鍵properties---->C/C++ General--->Paths and Symbols.
5、在有右下角選擇Export Settings.
匯出路徑自定義。
6、將編譯好的核心中
在此目錄下執行命令:cat autoconf.h |grep define |awk ‘{print “<macro><name>” $2 “</name><value>” $3 “</value></macro>”}’ > symbol.xml 成功執行該命令後,在generated下會多一個symbol.xml檔案。
7、將這個檔案與之前匯出的.xml檔案開啟
開啟檔案後在之前匯出的檔案中需要新增一行程式碼,在這兩行之間(如果有兩個則在下面的那個裡面新增)
在<language name="C Source File">和 </language>之間新增命令:<macro><name>__KERNEL__</name><value>1</value></macro>
新增後在將開啟的symbol.xml中的內容全部複製到之前新增的程式碼的下方。
在第一個<language name="C Source File">和 </language>之間新增命令:(該命令可根據實際修改)
<includepath>/usr/local/arm/linux_E9_3.0.35_for_Linux/include</includepath>
<includepath>/usr/local/arm/linux_E9_3.0.35_for_Linux/arch/arm/include</includepath>
<includepath>/usr/local/arm/linux_E9_3.0.35_for_Linux/arch/arm/mach-mx6</includepath>
<includepath>/usr/local/arm/linux_E9_3.0.35_for_Linux/arch/arm/plat-samsung/include</includepath>
儲存退出。
8、在開啟eclipse的那個位置將其匯入。
9、在工程中新增C原始檔。
先忽略編譯器的警告資訊。將工程屬性中自動生成Makefile選項去掉
10、在工程中新增Makefile原始檔(注意名稱一定為Makefile)
(makefile檔案中不能隨意敲入空格和TAB),Makefile中ARM版KDIR後跟隨路徑為ARM板中系統核心存放路徑,若寫x86_64版KDIR後面跟隨的路徑為當前電腦系統執行的核心路徑: /lib/modules/3.10.0-514.16.1.el7.x86_64/build
11、因為工程中取消了自動生成makefile所以我們在工程下面新建Debug目錄,並將.C檔案和Makefile檔案放到該目錄中。
12、儲存編譯
13、.ko 檔案通過nfs下載到ARM測試