用VS2013+VELT-0.1.4進行海思平臺 Linux內核 的開發
快樂蝦
http://blog.csdn.net/lights_joy/(QQ群:Visual EmbedLinux Tools 375515651)
歡迎轉載,但請保留作者信息
本文僅適用于vs2013 + velt-0.1.4
1.1 什么是VELT
VELT的全稱是Visual EmbedLinuxTools,它是一個與visual gdb類似的visual studio插件,用以輔助完成Linux開發。利用這個插件,將可以在visual studio的IDE中進行Linux應用程序的開發(包括編譯和調試),也可以進行uboot和linux內核的編譯,并根據編譯時的錯誤信息正確定位到源碼。目前的版本是0.1.4,僅支持vs2013。此插件可以在CSDN下載頻道下載(http://download.csdn.net/detail/lights_joy/8429771),安裝過程參見《用vs2013+velt-0.1.4進行嵌入式開發:插件安裝》。下面是它的基本功能:
-
支持x86 Linux,海思hi3516/hi3520,MinGW這幾個平臺,提供這幾個平臺的項目模板。
-
完成UBOOT的編譯,并根據編譯的錯誤信息自動定位到相應的文件位置。
-
完成LINUX內核的編譯,并根據編譯的錯誤信息自動定位到相應的文件位置。
-
在VS下完成Linux內核的配置。
-
不使用Makefile進行Linux應用程序的編譯。
-
使用Makefile進行Linux應用程序的開發。
-
使用SSH連接目標機器并用gdb進行應用程序的調試。
-
使用Telnet連接目標機器并用gdb進行應用程序的調試。
-
在VS中集成Linux終端(Poderosa),支持SSH/Telnet/Com,在打開終端時自動將VS的變量導出為bash里的變量,如ProjectDir等。
本文討論用它來進行海思平臺的Linux內核開發。在開發前應當先在Linux下安裝好海思SDK中的交叉編譯器。依照VELT的要求將Linux下的/work/通過samba共享出來,在Windows下映射為Z:\。
1.2 準備內核代碼并共享
解壓縮海思SDK中提供的linux-2.6.35.tgz,將其解壓到/work/projects/test,由于/work目錄已經通過samba共享給windows,因此這個路徑在windows下看起來就是Z:\projects\test\
1.3 創建內核工程
接下來在VS中新建一個Hisilicon平臺的內核工程:
注意這里選擇的路徑Z:\projects\test,這是我們存放內核代碼的根目錄。
當然,這個項目也不是一定要放在這個位置,只是VELT的項目模板是這么配置的,我們為了偷懶少配置路徑,也就選擇了和它一樣的路徑。
1.4 配置編譯主機的相關信息
接下來我們需要配置編譯主機的信息,打開項目屬性頁:
這里的信息需要根據你的實際配置進行更改!
1.5 內核配置
在第一次編譯之前,必須配置內核參數并保存:
不論有沒有進行修改,都必須保存一次配置!!
1.6 編譯內核
在進行上述配置后就可以編譯了,直接按F7生成項目。
很輕松吧!
這里有一個小BUG,當編譯有警告時,VELT也認為生成過程有錯誤!
1.7 修改編譯命令
有時我們需要更改make的命令,此時可以通過項目屬性中的Make頁來完成:
在這里可以寫上自己需要的編譯命令。
VELT在登錄編譯主機后將執行這些bash命令。
注意這里的命令是在編譯主機上執行的bash指令,而不是windows下的命令!!!
同樣,重新生成和清理的命令也可以自行修改。
1.8 加快IntelliSense的分析速度
在VELT項目模板的IntelliSense配置中,已經加上了linux內核的include目錄,但由于這些文件是通過SAMBA共享的,嚴重影響了IntelliSense的速度,因此我們將其復制到windows下,然后修改IntelliSense的包含目錄,讓其指向本地的文件:
這里的路徑和預處理器定義都不會影響到UBOOT的編譯行為,只是讓VS能夠正確分析我們的代碼而已!
經過這個操作可以發現IntelliSense分析代碼的速度明顯加快!!
1.9 手工編譯
有時我們需要登錄編譯主機進行一個手工操作,此時可以使用VELT提供的連接編譯主機功能:
VELT會打開一個bash窗口:
可以看到,VELT已經將部分的變量導出為Bash的變量了,我們可以方便地使用這些變量,如:
cd $ProjectDir
就可以進入我們的項目文件所在的目錄了。
而且可以使用bash的代碼補全功能訪問這些變量,如輸入$Pr并按tab時,bash會自動將其補全為$ProjectDir。
由于已經導出了ARCH和CROSS_COMPILE,在執行make內核時就不再需要輸入這兩個參數了!
1.10 項目文件添加
VELT的項目模板只添加了少數幾個文件做為示例,可以根據自己的需要將內核的其它文件添加進來!
1.11 錯誤處理
當開發過程中有語法錯誤時,VELT可以正確定位到錯誤所在的位置:
雙擊這個錯誤行就可以自動打開文件進行修改了!
RFID管理系統集成商 RFID中間件 條碼系統中間層 物聯網軟件集成