专家
公告
财富商城
电子网
旗下网站
首页
问题库
专栏
标签库
话题
专家
NEW
门户
发布
提问题
发文章
嵌入式
Visual EmbedLinux Tools:让vs支持嵌入式Linux开发
2019-07-12 15:27
发布
生成海报
站内文章
/
嵌入式Linux
17576
0
1002
1
什么是
Visual EmbedLinux Tools
Visual EmbedLinux Tools
简称为
VELT
,它是一个
visual studio
插件,用以辅助完成
Linux
开发。利用这个插件,将可以在
visualstudio
的
IDE
中进行
Linux
应用程序的开发(包括编译和调试),也可以进行
uboot
和
linux
内核的编译和调试,并根据编译时的错误信息正确定位到源码。目前的版本是
0.2.1
,支持
vs2012, vs2013,vs2015
三个版本。此插件
下载地址(
http://download.csdn.net/detail/lights_joy/9280851
)。下面是它的基本功能:
支持
x86 Linux
,海思
hi3516/hi3520
,
MinGW
,
Marvell/xCAT, AM335x
这几个平台,提供向导生成项目模板。
完成
UBOOT
的编译,并根据编译的错误信息自动定位到相应的文件位置。
完成
LINUX
内核的编译,并根据编译的错误信息自动定位到相应的文件位置。
在
VS
下利用串口进行内核的简单调试。
在
VS
下完成
Linux
内核的配置。
不使用
Makefile
进行
Linux
应用程序的开发。
使用
Makefile
进行
Linux
应用程序的开发。
可支持
Linux
下的应用程序、动态库、静态库、
Console/GUI
等应用的开发与调试。
使用
SSH
连接目标机器并用
gdb
进行应用程序的调试。
使用
Telnet
连接目标机器并用
gdb
进行应用程序的调试。
在
VS
中集成终端软件
(PuttyX.ocx)
,支持
SSH/Telnet/Com
。
对于
x86 Linux
内核,可以直接用
Qemu
进行调试。
2
IntelliSense
的基本原理
VELT
没有自己的代码分析工具,但由于它使用的工程是
VC++
工程,因此
VC
可以完成代码分析和智能提示,
VisualAssist X
这样的插件也可以正常工作!
3
编译的基本原理
VELT
本身并不包含任何编译工具,它所做的工作仅仅是把
VS
这个前端和不同的
GNU
编译器连接起来而已,真正的编译与调试仍然由交叉编译工具完成,因此在
VS
下进行
Linux
开发的前提是
Linux
下的交叉编译环境能够正常工作!
在进行代码编译的时候,
VELT
采用的是远程编译的方法,当
VS
进行编译操作的时候,
VELT
使用
SSH
登录到
Linux
主机系统中进行编译,再分析编译过程中产生的信息,将之转换为
vs
能够识别的信息,这样
VS
就可以在
IDE
中正确定位错误发生的文件!为了达到此目的,需要保证
vs
也能够正常访问代码文件。
VELT
依赖于
Linux
的
samba
或者虚拟机的共享目录功能来实现项目文件的共享,不支持用
scp
将文件上传到
Linux
后进行编译。
如上图所示:
vs
的编译过程是由
MSBUILD
来控制的,
VELT
重载了
MsBuild
下的编译任务,如果开发的是
Linux
程序,
VELT
将调用
putty
通过
SSH
远程连接到
Linux
开发机上,再调用开发机上的
gcc
编译器进行编译,如果开发的是
MinGW
程序,
VELT
将通过
cmd.exe
调用
MinGW gcc
进行编译。
在编译过程中,
VELT
将接收
putty.exe
或者
cmd.exe
上的输出信息进行分析,将这些信息转换为
VS
可以识别的错误和警告信息输出到
VS
的输出信息栏中。
在
velt
中需要配置编译器参数:
4
应用程序调试的基本原理
在
Linux
应用程序调试这一块,
VELT
不但能支持
Linux
下
console
应用程序的调试,在
Windows
上安装了
XServer
后也能进行
gui
应用程序的调试,但只能使用
gdb
,不支持
gdbserver
,其调试引擎的结构为:
如上图所示,
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
的结构就变成了这样:
此时
VC
调试引擎将直接调用
RemoteConsole
,
RemoteConsole
再根据需要调用
putty
连接
Linux
机器并调用目标程序,如果调试的是
windows
下的程序,
RemoteConsole
将通过
cmd.exe
调用本地的
TargetApp
。
5
开发环境
下面是一个典型的嵌入式开发环境配置:
主机开发环境:
系统:
WIN8 64
位
开发工具:
vs2013 + velt-0.1.7
虚拟机:
Vmware workstation-11.0
。
编译主机开发环境:
虚拟机的系统用于交叉编译和嵌入式开发中各种服务的提供。
操作系统:
RHEL-6.3
,
此虚拟机仅用于开发,不考虑其安全性的配置。
开发工具:
gcc
、不同平台下的交叉编译工具链。
系统服务:开启
tftp
、
samba
、
ftp
、
ssh
目标机:想使用的平台,如海思、
TI
、
ADI
等平台,或者虚拟机的
Linux
。
连接方式:
telnet / ssh / com
调试方式:
gdb / gdbserver
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
的代码分析速度。
将这两个配置写入到
Velt
的全局参数中:
这样以后新建项目的时候就可以直接使用了。
7
Sdf
文件位置
由于
VS
将浏览信息放在
SDF
文件中,而项目文件可能放在虚拟机的共享目录中,因此需要更改
SDF
文件的路径,务必保证它位于
windows
直接管理的硬盘上,否则在编译大项目时将导致运行速度缓慢。
8
VELT
安装
下面开始安装
VELT
插件:
在开始安装前首先卸载旧版本的插件。
运行
VeltSetup-0.1.9.exe
,一路往下安装就可以了。安装完成后应当可以在
vs
的帮助信息中看到这个插件:
3
、打开
VS
的新建项目窗口,可以看到新添加的
EmbedLinux
平台:
至此安装完成!
9
Velt
卸载
Velt
的卸载可以通过控件面板的卸载功能完成。
Ta的文章
更多
>>
Altium Designer中如何仅显示顶层的元件和顶层布线
0 个评论
SCI、UART与RS232区别
0 个评论
Visual EmbedLinux Tools:让vs支持嵌入式Linux开发
0 个评论
热门文章
×
关闭
举报内容
检举类型
检举内容
检举用户
检举原因
广告推广
恶意灌水
回答内容与提问无关
抄袭答案
其他
检举说明(必填)
提交
关闭
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮