2015年3月5日 星期四

增加linux kernel的marco到eclipse上



參考自:
http://blog.csdn.net/blaider/article/details/7474786
http://jarson.asia/%E4%BD%BF%E7%94%A8eclipse%E5%BC%80%E5%8F%91linux%E9%A9%B1%E5%8A%A8/


1. 取得kernel的所有define值

1.1 切換到autoconf.h的目錄下:
  新一點的kernel:
  cd {path of kernel dir}/include/generated/
  舊一點的kernel:
  cd {path of kernel dir}/include/linux/
1.2 將autoconf.h 轉換輸出成 symbol.xml
  cat autoconf.h |grep define |awk '{print "" $2 "" $3 ""}' > symbol.xml


2. 建立eclipse設定初始值

新建一個project, 建完於其上右鍵選properties, 左側選 c/c++ general -> paths and symbols, 之後右側
2.1  includes/languages/GNU C 新增以下路徑:
  {path of kernel dir}/include
  {path of kernel dir}/arch/arm/include (x86的話改成:{path of kernel dir}/arch/x86/include)
2.2 symbols/languages/GNU C 新增以下macro
  Name: __KERNEL__
  Value: 1
  (在之後輸出的.xml 中會是 "<macro><name>__KERNEL__</name><value>1</value></macro>")

3. 增加eclipse所需的define值

3.1 Export ProjNameSetting.xml
  File->gt;Export(C/C++/C/C++ Project Settings) 輸出成 ProjNameSetting.xml
3.2 增加autoconf.h中的define值
  在 <macro><name>__KERNEL__</name><value>1</value></macro> 後增加 1.2中 symbol.xml的所有內容

4. Import ProjNameSetting.xml

  File->Import(C/C++/C/C++ Project Settings) 選擇 Step3 中的ProjNameSetting.xml


5. Refresh

在project 上,右鍵選Indexer->Rebuild


//之後再補上在其上編譯driver的點