zoukankan      html  css  js  c++  java
  • 用VS2013+VELT-0.1.4进行海思平台 Linux内核 的开发

    快乐虾

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

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

    本文仅适用于vs2013 + velt-0.1.4

    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),安装过程参见《用vs2013+velt-0.1.4进行嵌入式开发:插件安装》。下面是它的基本功能:

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

    本文讨论用它来进行海思平台的Linux内核开发。在开发前应当先在Linux下安装好海思SDK中的交叉编译器。依照VELT的要求将Linux下的/work/通过samba共享出来,在Windows下映射为Z:。

    1.2    准备内核代码并共享

    解压缩海思SDK中提供的linux-2.6.35.tgz,将其解压到/work/projects/test,由于/work目录已经通过samba共享给windows,因此这个路径在windows下看起来就是Z:projects est

    1.3    创建内核工程

    接下来在VS中新建一个Hisilicon平台的内核工程:

    注意这里选择的路径Z:projects est,这是我们存放内核代码的根目录。

    当然,这个项目也不是一定要放在这个位置,只是VELT的项目模板是这么配置的,我们为了偷懒少配置路径,也就选择了和它一样的路径。

    1.4    配置编译主机的相关信息

    接下来我们需要配置编译主机的信息,打开项目属性页:

    这里的信息需要根据你的实际配置进行更改!

    1.5    内核配置

    在第一次编译之前,必须配置内核参数并保存:

    不论有没有进行修改,都必须保存一次配置!!

     

    1.6    编译内核

    在进行上述配置后就可以编译了,直接按F7生成项目。

    很轻松吧!

    这里有一个小BUG,当编译有警告时,VELT也认为生成过程有错误!

    1.7    修改编译命令

    有时我们需要更改make的命令,此时可以通过项目属性中的Make页来完成:

    在这里可以写上自己需要的编译命令。

    VELT在登录编译主机后将执行这些bash命令。

    注意这里的命令是在编译主机上执行的bash指令,而不是windows下的命令!!!

    同样,重新生成和清理的命令也可以自行修改。

    1.8    加快IntelliSense的分析速度

    VELT项目模板的IntelliSense配置中,已经加上了linux内核的include目录,但由于这些文件是通过SAMBA共享的,严重影响了IntelliSense的速度,因此我们将其复制到windows下,然后修改IntelliSense的包含目录,让其指向本地的文件:

    这里的路径和预处理器定义都不会影响到UBOOT的编译行为,只是让VS能够正确分析我们的代码而已!

    经过这个操作可以发现IntelliSense分析代码的速度明显加快!!

    1.9    手工编译

    有时我们需要登录编译主机进行一个手工操作,此时可以使用VELT提供的连接编译主机功能:

    VELT会打开一个bash窗口:

    可以看到,VELT已经将部分的变量导出为Bash的变量了,我们可以方便地使用这些变量,如:

    cd $ProjectDir

    就可以进入我们的项目文件所在的目录了。

    而且可以使用bash的代码补全功能访问这些变量,如输入$Pr并按tab时,bash会自动将其补全为$ProjectDir。

    由于已经导出了ARCH和CROSS_COMPILE,在执行make内核时就不再需要输入这两个参数了!

    1.10    项目文件添加

    VELT的项目模板只添加了少数几个文件做为示例,可以根据自己的需要将内核的其它文件添加进来!

    1.11    错误处理

    当开发过程中有语法错误时,VELT可以正确定位到错误所在的位置:

    双击这个错误行就可以自动打开文件进行修改了!

  • 相关阅读:
    Java实现 LeetCode 30 串联所有单词的子串
    Java实现 LeetCode 29 两数相除
    Java实现 LeetCode 29 两数相除
    Java实现 LeetCode 29 两数相除
    Java实现 LeetCode 28 实现strStr()
    Java实现 LeetCode 28 实现strStr()
    Java实现 LeetCode 28 实现strStr()
    Java实现 LeetCode 27 移除元素
    Java实现 LeetCode 27 移除元素
    字符编码终极笔记:ASCII、Unicode、UTF-8、UTF-16、UCS、BOM、Endian
  • 原文地址:https://www.cnblogs.com/lidabo/p/4497770.html
Copyright © 2011-2022 走看看