<menu id="w8yyk"><menu id="w8yyk"></menu></menu>
  • <dd id="w8yyk"><nav id="w8yyk"></nav></dd>
    <menu id="w8yyk"></menu>
    <menu id="w8yyk"><code id="w8yyk"></code></menu>
    <menu id="w8yyk"></menu>
    <xmp id="w8yyk">
    <xmp id="w8yyk"><nav id="w8yyk"></nav>
  • 網站首頁 > 物聯資訊 > 技術分享

    用VS2013+VELT進行Linux開發

    2016-09-28 00:00:00 廣州睿豐德信息科技有限公司 閱讀
    睿豐德科技 專注RFID識別技術和條碼識別技術與管理軟件的集成項目。質量追溯系統、MES系統、金蝶與條碼系統對接、用友與條碼系統對接

    快樂蝦

    http://blog.csdn.net/lights_joy/(QQ群:Visual EmbedLinux Tools 375515651)

    歡迎轉載,但請保留作者信息

     

    1.1.1  什么是VELT

     

    VELT的全稱是Visual EmbedLinuxTools,它是一個visual studio插件,用以輔助完成Linux開發。利用這個插件,將可以在visualstudio的IDE中進行Linux應用程序的開發(包括編譯和調試),也可以進行uboot和linux內核的編譯和調試,并根據編譯時的錯誤信息正確定位到源碼。目前的版本是0.1.6,僅支持vs2013。此插件可以在CSDN下載頻道下載(http://download.csdn.net/detail/lights_joy/8544349)。下面是它的基本功能:

     

    1. 支持x86 Linux,海思hi3516/hi3520,MinGW,Marvell/xCAT這幾個平臺,提供這幾個平臺的項目模板。

    2. 完成UBOOT的編譯,并根據編譯的錯誤信息自動定位到相應的文件位置。

    3. 完成LINUX內核的編譯,并根據編譯的錯誤信息自動定位到相應的文件位置。

    4. VS下利用串口進行內核的簡單調試。

    5. VS下完成Linux內核的配置。

    6. 不使用Makefile進行Linux應用程序的開發。

    7. 使用Makefile進行Linux應用程序的開發。

    8. 可支持Linux下的應用程序、動態庫、靜態庫、Console/GUI等應用的開發與調試。

    9. 使用SSH連接目標機器并用gdb進行應用程序的調試。

    10. 使用Telnet連接目標機器并用gdb進行應用程序的調試。

    11. VS中集成Linux終端(Poderosa),支持SSH/Telnet/Com,在打開終端時自動將VS的變量導出為bash里的變量,如ProjectDir等。

    12. 對于x86 Linux內核,可以直接用Qemu進行調試。

       

     

    1.1.2  IntelliSense的基本原理

     

    VELT沒有自己的代碼分析工具,但由于它使用的工程是VC++工程,因此VC可以完成代碼分析和智能提示,VisualAssist X這樣的插件也可以正常工作!

     

     

     

    1.1.3  編譯的基本原理

     

    VELT本身并不包含任何編譯工具,它所做的工作僅僅是把VS2013這個前端和不同的GNU編譯器連接起來而已,真正的編譯與調試仍然由交叉編譯工具完成,因此在VS下進行Linux開發的前提是Linux下的交叉編譯環境能夠正常工作!

     

    在進行代碼編譯的時候,VELT采用的是遠程編譯的方法,當VS進行編譯操作的時候,VELT使用SSH登錄到Linux主機系統中進行編譯,再分析編譯過程中產生的信息,將之轉換為vs能夠識別的信息,這樣VS就可以在IDE中正確定位錯誤發生的文件!為了達到此目的,需要保證vs2013也能夠正常訪問代碼文件。VELT依賴于Linux的samba或者虛擬機的共享目錄功能來實現項目文件的共享,不支持用scp將文件上傳到Linux后進行編譯。

    RFID設備管理軟件

     

     

    如上圖所示:

     

    vs2013的編譯過程是由MSBUILD來控制的,VELT重載了MsBuild下的編譯任務,如果開發的是Linux程序,VELT將調用putty通過SSH遠程連接到Linux開發機上,再調用開發機上的gcc編譯器進行編譯,如果開發的是MinGW程序,VELT將通過cmd.exe調用MinGW gcc進行編譯。

     

    在編譯過程中,VELT將接收putty.exe或者cmd.exe上的輸出信息進行分析,將這些信息轉換為VS可以識別的錯誤和警告信息輸出到VS的輸出信息欄中。

     

     

     

    1.1.4  應用程序調試的基本原理

     

    Linux應用程序調試這一塊,VELT不但能支持Linux下console應用程序的調試,在Windows上安裝了XServer后也能進行gui應用程序的調試,但只能使用gdb,不支持gdbserver,其調試引擎的結構為:

    RFID設備管理軟件

     

     

    如上圖所示,VELT在WINDOWS端運行了幾個輔助程序。

     

    首先是RemoteConsole,這個程序的主要作用是顯示遠端程序的輸出,并接受用戶輸入傳送給遠端,此程序包含在EmbedLinux的安裝包中。

     

    其次是putty,這個程序用于完成SSH/TELNET/COM連接,并負責調用遠端Linux上的gdb。,此程序包含在EmbedLinux的安裝包中。

     

    如果要在vs下調試Linux下的GUI程序,還需要安裝Xming這個windows下的x server,此程序不在EmbedLinux的安裝包中,需要自己到mingw.org下載并安裝。如果不需要調試GUI程序當然也可以不理會它。

     

    當按下Ctrl-F5不調試運行時,VELT的結構就變成了這樣:

    RFID設備管理軟件

     

     

    此時VC調試引擎將直接調用RemoteConsole,RemoteConsole再根據需要調用putty連接Linux機器并調用目標程序,如果調試的是windows下的程序,RemoteConsole將通過cmd.exe調用本地的TargetApp。

     

     

     

    1.1.5  開發環境

     

    下面是一個典型的嵌入式開發環境配置:

     

    主機開發環境:

     

    系統:WIN8 64位

     

    開發工具:vs2013 + velt-0.1.6

     

    虛擬機:Vmware workstation-11.0。

     

     

     

    編譯主機開發環境:

     

    虛擬機的系統用于交叉編譯和嵌入式開發中各種服務的提供。

     

    操作系統:RHEL-6.3,此虛擬機僅用于開發,不考慮其安全性的配置。

     

    開發工具:gcc、不同平臺下的交叉編譯工具鏈。

     

    系統服務:開啟tftp、samba、ftp、ssh

     

     

     

    目標機:想使用的平臺,如海思、TI、ADI等平臺,或者虛擬機的Linux。

     

    連接方式:telnet / ssh / com

     

    調試方式:gdb / gdbserver

     

     

     

    1.1.6  目錄共享

     

    首先將windows目錄通過vmware的共享目錄功能共享給Linux,如f:\work,在Linux下看到的目錄就是/mnt/hgfs/share/work。

     

    其次將Linux下的目錄通過samba服務共享給windows,如/work,映射到windows下的z:\,這里需要注意的是samba的帳號和我們后面用SSH登錄的帳號應當一致,避免由于權限問題造成不必要的干擾。

     

    當進行uboot和linux內核的開發時,代碼只能放在linux的虛擬硬盤中,而不能放在windows系統中,因為它們需要使用符號鏈接,也需要區分大小寫。

     

    而在進行普通應用程序開發時,如果沒有使用符號鏈接,只需要將代碼放在windows目錄下,這樣可以加快vs的代碼分析速度。

     

     

     

    1.1.7  Sdf文件位置

     

    由于VS2013瀏覽信息放在SDF文件中,而項目文件可能放在虛擬機的共享目錄中,因此需要更改SDF文件的路徑,務必保證它位于windows直接管理的硬盤上,否則在編譯大項目時將導致運行速度緩慢。

    RFID設備管理軟件

     

     

     

     

    1.1.8  VELT安裝

     

    下面開始安裝VELT插件:

     

    1、解開VELT的壓縮包,放到某個目錄下,如我的目錄是:

     

    F:\projects\src\gdb2012\EmbedLinux

     

    此目錄應當避免空格與中文文件名!

     

    2、在環境變量中添加一個叫EMBEDLINUX_ROOT的環境變量:

    RFID設備管理軟件

     

     

    注意路徑結尾的反斜杠。這里的路徑就是VELT壓縮解壓后的路徑。

     

    3、安裝release目錄下的EmbedLinux-0.1.6.vsix:

    RFID設備管理軟件

     

     

    安裝完成后應當可以在vs的幫助信息中看到這個插件:

    RFID設備管理軟件

     

     

    也可以在工具->擴展和更新中看到:

    RFID設備管理軟件

     

     

    4、將msbuild\Platforms目錄下的所有文件復制到:

     

    C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\Platforms

     

    5、打開VS的新建項目窗口,可以看到新添加的幾個平臺:

    RFID設備管理軟件

     

     

    至此安裝完成!

     

    from:http://blog.csdn.net/lights_joy/article/details/44728145

    RFID管理系統集成商 RFID中間件 條碼系統中間層 物聯網軟件集成
    最近免费观看高清韩国日本大全