用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:\projects\src\gdb2012\EmbedLinux

此目录应当避免空格与中文文件名!

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

注意路径结尾的反斜杠。

3、安装release目录下的EmbedLinux.Installer-0.1.4.vsix:

安装完成后应当可以在vs的帮助信息中看到这个插件:

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

4、将msbuild\Platforms目录下的所有文件复制到:

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

5、打开VS的新建项目窗口,可以看到新添加的三个平台:

至此安装完成!

时间: 2024-09-14 20:37:09

用vs2013+velt-0.1.4进行嵌入式开发 进行海思平台 UBOOT 开发的相关文章

用VS2013+VELT进行Linux开发

快乐虾 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内核的编译和调试

Silverlight企业应用开发实践-AgileEAS.NET平台5.0 Silverlight支撑预览

一.AgileEAS.NET平台简介 AgileEAS.NET平台是一套应用系统快速开发平台,用于帮助中小软件开发商快速构建自己的企业信息管理类开发团队,以达到节省开发成本.缩短开发时间,快速适应市场变化的目的,AgileEAS.NET应用开发平台包含基础类库.资源管理平台.运行容器.开发辅助工具等四大部分,资源管理平台为敏捷并行开发提供了设计.实现.测试等开发过程的并行. AgileEAS.NET平台基于软件过程改进以及构件化快速开发两方面达到这方面的目标,在软件过程改进实践方面,提出了独有的

Erasm++ 0.1.1发布 嵌入式运行汇编器

Erasm++ 是一个C++++的嵌入式运行汇编器,即是一个用于C++运行代码生成的嵌入式域名特定语言(EDSL).它支持完整的编译时间语法检查和快速运行的代码生成器,以及数据的静态计算.当前版本支持Intel 64 和 IA-32架构. Erasm++ 0.1.1该版本支持PDF格式手册.更新了GenericDsm,新的指令解码器库,以及Erasm++.增加了一些演示程序和便利库,在GitHub上载发布了tarball. 软件信息:https://github.com/nishiuramako

Qore Programming Language 0.8.4发布 嵌入式多线程编程语言

Qore Programming Language 是一款http://www.aliyun.com/zixun/aggregation/17547.html">功能强大.嵌入式多线程逻辑和面向对象的编程语言,其设计是应用于以灵活的脚本为基础的企业界面开发.它也可作为一种通用语言. Qore Programming Language 0.8.4该版本进行了重要的更新,增加了用户模块,模块在运行时扩展语言,现在可以书面Qore本身的支持.Qore现在支持绑定到值类型,它提供了可运行在任何Qo

IBM Connections Mail 1.0社会化功能及嵌入式用户体验简介

Connections Mail 1.0 提供了对传统的邮件和日历的访问服务,这一部分的功能在第一篇文章中有详细的介绍.Connections Mail 1.0 还高效集成了 Connections 4.0 的用户概要文档,文件,博客,论坛,社区等社会化的功能,这些社会化的功能为用户提供了嵌入式的社会体验,从而提高工作效率和社交的可视性.本文将结合邮件和日历的具体应用场景,对 Connections Mail 1.0 这些社会化的用户体验进行详细的介绍. IBM Connections 4.0

Clash 4.0.5-x86发布 通用嵌入式操作系统

Clash一个通用的嵌入式操作系统,http://www.aliyun.com/zixun/aggregation/18736.html">允许用户定制到路由器,防火墙,3G网关,接入点,紧急救援系统,甚至无盘客户平台系统环境. Clash 4.0.5-x86该版本iceWM被替换为Fluxbox和startx的固定例行程序. PHP手册页被包括和iptables被删除.libnss文件被转移到noarch包的dropbear中.增加了四个虚拟控制台.增加了RDP客户端(rdesktop)

Erasm++ 0.1.2发布 嵌入式运行汇编器

Erasm++ 是一个C++++的嵌入式运行汇编器,即是一个用于C++运行代码生成的嵌入式域名特定语言(EDSL).它支持完整的编译时间语法检查和快速运行的代码生成器,以及数据的静态计算.当前版本支持Intel 64 和 IA-32架构. Erasm++ 0.1.2该版本修复了在演示程序中的错误. 软件信息:https://github.com/nishiuramakoto/erasm-plusplus 下载地址:https://github.com/downloads/nishiuramako

《圣殿祭司的ASP.NET4.0专家技术手册》----1-1 ASP.NET平台的三分天下

1-1 ASP.NET平台的三分天下 圣殿祭司的ASP.NET4.0专家技术手册 如果访问微软www.asp.net网站,会发现ASP.NET技术目前有3位成员:Web Form.MVC和Web Pages,如图1-1所示.它们各有不同的定位与特色,彼此的开发方式也不相同.目前,使用人数与市场占有率最高的仍是Web Form,而MVC近两年有不少技术玩家和项目采用,至于Web Pages,则是另外的Web Matrix开发工具预定的网页开发技术,它走更易于使用的开发路线. 你心里可能有疑问:"为

嵌入式 hi3518平台uboot引导nfs文件系统

首先贴出来我的bootargs的设置(注没有换行符!!!): setenv bootargs noinitrd mem=64M root=/dev/nfs init=/linuxrc rw nfsroot=10.10.2.59:/opt/rootfs/ ip=10.10.1.156:10.10.2.59:10.10.1.1:255.255.255.0:skdkjzz:eth0:off console=ttyAMA0,115200   Linux编译生成zImage,但是uboot不能识别,ubo