支持USB的嵌入式软件远程调试器的设计与实现

支持USB的嵌入式软件远程调试器的设计与实现

论文摘要

本文首先介绍了嵌入式系统的基本概念以及相关的调试技术;分析了GDB本地调试和远程调试的工作机制,通过对比分析不同模型的实现方法讨论了当前在嵌入式系统中使用的一些调试模型,开发调试环境为当前非常流行的嵌入式Linux平台。在嵌入式Linux中调试应用程序,需要建立远程调试环境,以便宿主机GDB可以从远程环境获取信息进行调试。GDBserver是一个轻量级的运行于目标机上的调试器,它可以配合主机上的GDB进行嵌入式程序的开发调试,极大的提高效率,降低开发成本。目前GDB远程调试嵌入式Linux应用程序的模式是在目标机端实现GDBserver来充当调试stub的角色,通过串口或TCP连接的方式将宿主机和目标机相连进行调试。随着计算机的高速发展,目前的外设接口上以USB最为流行,通用,GDB的串口或TCP连接调试方式在实际开发中带了很多不便。通用串行总线USB(Universal Serial Bus)是一种具备高传输速率的接口总线。由于它的即插即用PNP(Plug-and-Play),热插拔(Hot Plug)等特点,作为计算机外设的一种连接方式得到了极其广泛的应用,正在逐步取代串口,并口等接口成为新的接口标准。而Linux作为一个使用非常广泛的开源系统,自从2.2.18版内核开始,就加入了对USB的支持,2.4.x版本的内核对USB1.1的支持已相对完善,2.6.x内核更是率先支持了USB2.0规范。本文研究了Linux下USB驱动在主机端和设备端的实现机制及驱动框架,对USB驱动程序的结构进行了深入分析;利用USB设备端驱动实现了通过USB接口进行基于GDB+GDBserver模式的嵌入式Linux软件的远程调试功能,并在S3C2410开发板上测试通过。

论文目录

  • 摘要
  • ABSTRACT
  • 第一章 绪论
  • 1.1 课题背景与选题的意义
  • 1.1.1 背景和依据
  • 1.1.2 选题意义
  • 1.2 当前研究现状及发展态势
  • 1.3 本文完成工作
  • 1.4 本文的组织结构
  • 第二章 嵌入式系统与GDB 调试
  • 2.1 嵌入式系统概述
  • 2.2 嵌入式系统构成
  • 2.3 嵌入式Linux
  • 2.4 GDB 分析
  • 2.5 嵌入式Linux 的调试
  • 2.6 嵌入式Linux 调试概述
  • 2.7 嵌入式Linux 远程调试实例
  • 第三章 GDB 远程调试原理分析
  • 3.1 概述
  • 3.2 现有的调试代理模型分析
  • 3.3 用户态调试代理模型分析
  • 3.4 内核态调试代理kgdb 分析
  • 3.5 RSP 协议分析
  • 3.6 gdbserver 分析
  • 第四章 USB 数据通信分析
  • 4.1 USB 总线特点
  • 4.2 USB 数据传输
  • 4.3 USB 总线结构分析
  • 4.4 USB 设备连接
  • 第五章 USB+GDB+GDBserver 调试实现
  • 5.1 Linux 下USB 驱动实现
  • 5.1.1 设备驱动概述
  • 5.1.2 设备驱动组成机制
  • 5.1.3 关键数据结构
  • 5.1.4 基本函数实现
  • 5.1.5 Linux 下USB 驱动框架
  • 5.1.6 驱动的数据传输
  • 5.1.7 设备的接入与移除操作
  • 5.2 USB 主机端驱动结构实现
  • 5.2.1 核心数据结构
  • 5.2.2 USB 主机控制器驱动(HCD)
  • 5.2.3 USB 驱动(USBD)
  • 5.2.4 USB 设备类驱动
  • 5.3 USB 接口实现GDB 远程调试
  • 5.3.1 USB 设备端驱动结构
  • 5.3.2 Gadget 系统核心数据结构
  • 5.3.3 Gadget 子系统与主机侧的交互
  • 5.3.4 虚拟嵌入式系统为一个网络设备
  • 5.3.5 底层控制器驱动的实现
  • 5.3.6 上层功能驱动的实现
  • 5.3.7 运行效果
  • 5.3.8 建立远程调试环境
  • 5.3.9 USB 接口调试流程
  • 5.3.10 Gadget 框架的思考
  • 第六章 结论和展望
  • 6.1 总结
  • 6.2 工作展望
  • 致谢
  • 参考文献
  • 攻硕期间取得的研究成果
  • 相关论文文献

    标签:;  ;  ;  ;  ;  ;  

    支持USB的嵌入式软件远程调试器的设计与实现
    下载Doc文档

    猜你喜欢