首页 > 代码库 > VELT-0.1.3开发:汇编支持

VELT-0.1.3开发:汇编支持

快乐虾

http://blog.csdn.net/lights_joy/

欢迎转载,但请保留作者信息


VELT的全称是Visual EmbedLinuxTools,它是一个与visual gdb类似的visual studio插件,用以辅助完成Linux开发。利用这个插件,将可以在visual studioIDE中进行Linux应用程序的开发(包括编译和调试),也可以进行ubootlinux内核的编译,并根据编译时的错误信息正确定位到源码。目前的版本是0.1.2,仅支持vs2013,是一个刚刚启动开发不久的插件。可以在CSDN下载频道下载(http://download.csdn.net/detail/lights_joy/8359251),安装过程参见《Vs2013+VELT-0.1.0进行Linux开发:环境搭建》。下面是它的基本功能:

  1. 支持x86 Linuxhi3516hi3520MinGW这几个平台。

  2. 完成UBOOT的编译,并根据编译的错误信息自动定位到相应的文件位置。

  3. 完成LINUX内核的编译,并根据编译的错误信息自动定位到相应的文件位置。

  4. 完成LINUX内核的配置。

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

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

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


下面我们在VELT中加上汇编支持。


1.1  WIN32/x64平台


对于WIN32X64,只需要在生成自定义中选择汇编即可:

技术分享

技术分享


此操作的结果是VS在我们的工程文件中加上了:

 <ImportGroup Label="ExtensionTargets">

   <ImportProject="$(VCTargetsPath)\BuildCustomizations\masm.targets" />

 </ImportGroup>

但显然这仅仅只有在WIN32平台下才可用,因此我们将之修改为:

 <Import Condition="$(Platform)==‘Win32‘"Project="$(VCTargetsPath)\BuildCustomizations\masm.targets" />

 <Import Condition="$(Platform)==‘x64‘"Project="$(VCTargetsPath)\BuildCustomizations\masm.targets" />

在项目中添加一个test.asm文件,然后就可以看到MASM的编译选项了!!

 


1.2  GNU平台


对于GNU的编译器,因为VELT提供了自己的编译任务,只需要将项目中的.s文件设置为C/C++编译就可以了。当然,这种方式无法针对每个文件单独设置编译参数!

as生成的错误信息格式与gcc略有不同:

1>  c:\mingw\\bin\as.exe   -o..\obj\MinGW\Debug\ConsoleApplication\test.obj test.s

1>  test.s: Assembler messages:

1>  test.s:3: Error: too many memory referencesfor `mov‘

需要进行转换后VS才能正确识别。

1>  c:\mingw\\bin\as.exe   -o ..\obj\MinGW\Debug\ConsoleApplication\test.objtest.s

1>  test.s: Assembler messages:

1>  test.s(3): error C2005:  too many memory references for `mov‘





??

VELT-0.1.3开发:汇编支持