论文部分内容阅读
随着嵌入式系统以及ARM微处理器家族的不断发展,基于ARM架构微处理器的嵌入式设计及应用在现代工程领域变得极为普遍。在嵌入式系统的开发过程中,调试系统主要用来定位、纠正程序中的错误或是硬件设计上的漏洞,一个完善的调试系统能够极大地提高嵌入式系统的开发效率。然而,由于目前ARM芯片的生产厂商多达数十家,出于知识产权及商业利益的原因,他们所提供的商用调试软件及硬件均未开源且大多很昂贵,调试软件与硬件所使用的协议也无法相互兼容,缺少一个统一的规范,开发人员往往需要为不同生产厂商的ARM架构微处理器购买互不兼容又十分昂贵的独立调试系统,大大地增加了嵌入式系统开发的成本。同时,由于国内的ARM微处理器生产厂商较少,针对ARM微处理器调试系统的研究尚处于起步阶段,特别是针对ARM最新推出的Cortex架构微处理器调试系统的研究基本还处于空白状态,这对国内开展嵌入式开发的研究工作产生了一定的阻碍。因此,提出一个能够跨硬件平台及软件操作系统平台的开源跨平台调试系统就显得十分有意义。本文旨在研究一套基于ARM公司最新的Cortex架构微处理器中的CoreSight调试接口的跨平台开源调试系统,统一不同ARM微处理器生产厂商之间的调试规范,简化基于Cortex架构微处理器的调试系统的开发,降低其使用难度。完整的ARM调试系统由两大组成部分:硬件调试器和PC调试软件。本文针对目前各类商用调试系统协议间不兼容的问题,详细阐述了如何基于CoreSight调试接口、CMSIS DAP协议和GDB远程串行调试协议这三大关键调试组件来实现跨平台ARM调试系统的原理及方法,着重分析了如何利用CoreSight调试接口实现不同生产厂商的ARM微处理器中调试接口的兼容性,提出了基于Python及GDB远程串行通信协议实现跨操作系统的GDB调试服务器的设想及实施方案。本文的主要创新性工作和成果包括:提出了利用CoreSight调试接口及CMSISDAP协议来兼容不同生产厂商的ARM Cortex架构微处理器的调试接口的设计方案;设计了一个基于STM32F103微处理器的硬件调试器,并在其中实现了CMSISDAP协议栈和USB HID驱动程序;设计并实现了一个基于Python语言和GDB远程串行调试协议的GDB调试服务器,配合开源的GDB调试软件实现了跨操作系统平台的软件运行;在GDB调试服务器中分析并实现了GDB调试命令到CoreSight调试接口的寄存器配置的转换方案;提出了基于Pylnstaller开源软件的Python源程序打包方案,实现了基于独立可执行程序的软件发布。利用本文所设计的硬件调试器和GDB调试服务器,结合GDB调试软件,实现了一套完整的ARM调试系统。在多个开发平台上验证了该ARM调试系统的程序下载及调试功能,并与现有国外商用调试系统进行了比对测试,验证了本系统在成本远低于国外商用调试系统的前提下,依然能实现稳健的跨平台兼容性及调试性能。本文所设计的GDB软件调试服务器在开源会议及相关活动上进行了分享,并在开源软件网站上提供下载,获得了开源软件爱好者们的好评与肯定,对我国开发具有自主知识产权的ARM调试系统已显示出良好的参考和借鉴意义。