碧波液压网 欢迎你,游客。 登录 注册

在VIM中实现对嵌入式软件的调试

版权信息:站内文章仅供学习与参考,如触及到您的版权信息,请与本站联系。

  引 言

  GNU免费提供了一整套工具链,为嵌入式Linux程序的开发和调试提供了完整的支持。其强大的gdb调试工具可以方便地对嵌入式平台上的程序进行跟踪调试;而Linux下强悍的VIM编辑器,不仅可以方便地调用make文件对代码进行编译,而且通过脚本的配置还可轻松地成为高效的代码编辑环境。流传着这样一种说法,“世界上的程序员分三种,一种使用Emacs,一种使用VIM,剩余的是其他。”不去辩论这句话的对与错,单纯从字面意义上来理解,也足见VIM的魅力了。因此,在VIM中实现对嵌入式软件的调试,我们便得到了一个高效、稳定的嵌入式Linux的开发环境。

  1 gdb对嵌入式软件的调试模式

  许多非Linux的嵌入式系统已经在使用gdb与gdbstub对目标板进行远程“交叉调试”;然而,因为Linux内核实现了ptrace()系统调用,所以在对嵌入式应用程序进行调试的时候并不需要gdb stub,而采用gdb套件提供的gdb服务器来对目标板上的嵌入式应用程序进行调试。

  目标板上的gdb服务端gdbserver与主机上的gdb调试器的通信方式主要有两种:使用串口通信的“交叉串行连接”和使用网口的“TCP/IP”联机。鉴于PC端的方便性以及串口资源有限,尤其是现在的笔记本电脑甚至已经不存在串口,所以,大多采用TCP/IP方式,即PC主机与目标板通过网线直连或者PC机与目标板通过路由或者hub等组成局域网通信。这种调试模式如图1所示。

  2 在VIM中实现对嵌入式软件的调试

  我们知道,gdb的功能虽然强大,但由于其基于命令行的操作,所以调试过程不直观,而且Windows下的调试环境集调试与代码编辑为一体,当出现bug的时候,可以方便地对源代码进行修改,相比而言,gdb在这方面又有失色。既然VIM和gdb的功能如此强大,又完全免费,而且完全适合嵌入式这种特殊的开发模式,那么有没有将二者强强联合的方法呢?有,那就是vimgdb。

  vimgdb是给VIM提供一个可选特性的补丁。它可以在VIM编辑器里提供完整的gdb调试器支持,比如设置断点、查看变量值、gdb命令补全等等,并且这些操作可以在VIM中直观地显示出来。下面阐述在VIM中实现时嵌入式软件调试的具体过程。

  2.1 系统环境及所用软件包版本

  PC操作系统:Ubuntu8.10。

  PC编译器:GNU gcc4.3.1。

  PC调试器:GNU gdb6.8。

  目标板Linux内核:2.6.13。

  目标板CPU:S3C2440(ARM9架构)。

  交叉编译器:arm—linux—gcc3.4.1。

  交叉调试器:自编译GNU gdb6.8。

  目标板gdb服务端:自编译GNU gdbserver6.8。

  跨平台开发工具路径:~/build-tools/arm—linux,且已经设置好系统路径变量。

你没有登陆,无法阅读全文内容

您需要 登录 才可以查看,没有帐号? 立即注册

标签:
点赞   收藏

相关文章

发表评论

请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。

用户名: 验证码:

最新评论