● 摘要
在嵌入式系统开发中,调试技术的好坏严重影响嵌入式系统的开发效率和软件的质量。目前,嵌入式系统调试主要有基于硬件、软件和模拟器技术三种方法,它们各有优缺点和适用的场合。模拟器作为硬件平台的软件模拟,具有良好的可控性。因此,基于模拟器的调试技术不仅具有软件调试技术的易用性,而且由于它可以模拟实现一定的硬件调试方法从而具有更强大的调试功能。本文在分析比较各种调试技术优缺点的基础上,设计实现了一种基于模拟器的嵌入式远程调试系统。该调试系统以全系统模拟器ArmSim为依托,通过GDB远程调试器实现目标机程序的源码级调试。通过采用层次化的软件体系结构,该调试系统可以灵活地进行扩展,以支持多种调试通信协议、通信方式以及不同的目标机体系结构。同时,在模拟器端加入了对硬件调试技术的模拟,扩充了调试器的适用场合,增强了调试功能。在调试系统的实现过程中,实现了GDB RSP协议的扩展,使之不仅具有基本的远程调试功能,而且还具备模拟器外设信息的反馈功能。除此之外,基于Eclipse平台的调试前端实现使得调试过程变得更加友好和方便。基于模拟器ArmSim的远程调试系统的开发并不是作为其它调试手段的替代产品,而是嵌入式系统调试方法的一种补充和支持,通过它可以配合完善嵌入式系统的调试过程以及缩短嵌入式系统设计开发的时间周期,在嵌入式系统硬件设计的同时即可进行软件的设计开发和调试,达到软硬件协同设计的目的。