论文部分内容阅读
本文首先介绍了嵌入式系统的基本概念以及相关的调试技术;分析了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开发板上测试通过。