• 用vs2013+velt-0.1.4进行嵌入式开发 进行海思平台 UBOOT 开发


    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)。

    以下是它的基本功能:

    1. 支持x86 Linux,海思hi3516/hi3520,MinGW这几个平台,提供这几个平台的项目模板。

    2. 完毕UBOOT的编译,并依据编译的错误信息自己主动定位到对应的文件位置。

    3. 完毕LINUX内核的编译,并依据编译的错误信息自己主动定位到对应的文件位置。

    4. 在VS下完毕Linux内核的配置。

    5. 不使用Makefile进行Linux应用程序的编译。

    6. 使用Makefile进行Linux应用程序的开发。

    7. 使用SSH连接目标机器并用gdb进行应用程序的调试。

    8. 使用Telnet连接目标机器并用gdb进行应用程序的调试。

    9. 在VS中集成Linux终端(Poderosa)。支持SSH/Telnet/Com,在打开终端时自己主动将VS的变量导出为bash里的变量。如ProjectDir等。


    1.2    VELT的基本原理


    VELT本身并不包括不论什么编译工具,它所做的工作仅仅是把VS2013这个前端和不同的GNU编译器连接起来而已,真正的编译与调试仍然由交叉编译工具完毕!

    在进行代码编译的时候,VELT採用的是远程编译的方法,当VS进行编译操作的时候,VELT使用SSH登录到Linux主机系统中进行编译,再分析编译过程中产生的信息,将之转换为vs能够识别的信息,这样VS就能够在IDE中正确定位发生错误的文件!

    VELT依赖于Linux的samba或者虚拟机的共享文件夹功能来实现项目文件的共享,不支持用scp将文件上传到Linux后进行编译。

    在调试这一块。VELT眼下仅能支持Linux下console应用程序的调试,且仅仅能使用gdb,不支持gdbserver,其调试引擎的结构为:


    如上图所看到的,VELT在WINDOWS端执行了两个辅助程序。一个是RemoteConsole,这个程序的主要作用是显示远端程序的输出,并接受用户输入传送给远端。还有一个是python解释器,这个解释器用于完毕SSH/TELNET/COM连接,并负责调用远端Linux上的gdb。这两个应用程序仅当启动调试的时候才执行,寻常并不使用它。

    当启动项目调试时,VC调试引擎将载入RemoteConsole.exe。因为这是一个WINDOWS的本地程序。所以VS能够正常载入。

    当VC引擎启动时,VELT扩展将接收到此事件,并调用自己的调试引擎,在这个调试引擎中。它将通过网络连接RemoteConsole,以控制GDB的执行并接收gdb的事件。将之反映到IDE中。


    1.3    开发环境


    以下是一个典型的嵌入式开发环境配置:

    主机开发环境:

    系统:WIN8 64位

    开发工具:vs2013 + velt-0.1.4

    虚拟机:Vmware workstation-11.0。


    编译主机开发环境:

    虚拟机的系统用于交叉编译和嵌入式开发中各种服务的提供。

    操作系统:RHEL-6.3。此虚拟机仅用于开发,不考虑其安全性的配置。

    开发工具:gcc、不同平台下的交叉编译工具链。

    系统服务:开启tftp、samba、ftp、ssh


    目标机:想使用的平台,如海思、TI、ADI等平台。或者虚拟机的Linux。

    连接方式:telnet / ssh / com

    调试方式:gdb / gdbserver


    1.4    文件夹共享


    首先将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.5    Sdf文件位置


    因为VS2013浏览信息放在SDF文件里,而项目文件可能放在虚拟机的共享文件夹中,因此须要更改SDF文件的路径,务必保证它位于windows直接管理的硬盘上。否则在编译大项目时将导致执行速度缓慢。



    1.6    VELT安装


    以下開始安装VELT插件:

    1、解开VELT的压缩包,放到某个文件夹下。如我的文件夹是:

    F:projectssrcgdb2012EmbedLinux

    此文件夹应当避免空格与中文文件名称!

    2、在环境变量中加入一个叫EMBEDLINUX_ROOT的环境变量:


    注意路径结尾的反斜杠。

    3、安装release文件夹下的EmbedLinux.Installer-0.1.4.vsix:


    安装完毕后应当能够在vs的帮助信息中看到这个插件:


    也能够在工具->扩展和更新中看到:


    4、将msbuildPlatforms文件夹下的全部文件拷贝到:

    C:Program Files (x86)MSBuildMicrosoft.Cppv4.0V120Platforms




    5、打开VS的新建项目窗体。能够看到新加入的三个平台:



    至此安装完毕!



  • 相关阅读:
    清理disuz垃圾用户信息SQL语句
    解决C++代码单元测试中的难题不可验证和IO调用
    开源分布式平台mooon系统结构
    只显示指定网卡IP地址命令
    优秀开源杀毒软件ClamAV
    pyenv本地安装python
    TCP/IP学习笔记:ARP
    [linux] 如何在vim里面把空格缩进改为tab缩进
    TCP/IP学习笔记:ICMP
    TCP/IP学习笔记:UDP
  • 原文地址:https://www.cnblogs.com/wgwyanfs/p/6726839.html
Copyright © 2020-2023  润新知