基于嵌入式操作系统的仿真调试系统及方法技术方案

技术编号:8883088 阅读:195 留言:0更新日期:2013-07-04 02:00
本发明专利技术公开一种基于嵌入式系统的仿真调试系统及方法,该系统包括:代理进程模块,用于接收调试主机发送的控制命令,并控制调试进程模块的运行;调试进程模块,在该代理进程模块的控制下响应该调试主机发送过来的调试要求,并调用TAP驱动模块进行调试操作;TAP驱动模块,以操作系统驱动程序的形式提供仿真器对开发板访问的接口;以及嵌入式系统,用于完成系统级别调度,利用本发明专利技术,不仅可以改进仿真器的稳定性,而且便于仿真器功能的扩展。

【技术实现步骤摘要】

本专利技术涉及一种仿真调试系统及方法,特别是涉及一种。
技术介绍
仿真器是用于嵌入式设备的常用设备,用于嵌入式程序的调试,其主要目的是使嵌入式程序执行过程可控,以便了解程序的运行状态,常见的调试手段包括:断点、单步查看资源等等。图1是现有技术中常见的一个仿真器的基本结构图,其中,虚框所示部分即为仿真调试设备,它能将上位机的调试指令转化成满足IEEE1149.1的信号并下发至待调试的开发板(即图中之目标板)上,它主要包括调试处理单元和TAP (测试访问端口)控制器这两部分。对于上述仿真器,针对实际需求,其调试处理单元可以有不同的实现。如果是针对比较简单而且相对固定的调试需求,该调试处理单元可以设计的比较简单,仅需要做一些信号上的转换,可以使用固定的硬件逻辑实现,这样的方案具有成本低、速度快的优点,但缺点是灵活性差;针对于复杂调试需求,调试处理单元可以使用通用或专用处理器作为调试处理器,以保证能对复杂的调试需求做出及时的响应。针对采用通用处理器作为调试处理单元的方案,通常会使用嵌入式操作系统,而将调试控制程序作为系统上的一个进程。图2为现有技术中使用通用处理器的仿真调试系统的系统结构图。其中,调试进程响应调试主机发过来的调试要求(基于RDP,Remote DebugProtocol,远程调试协议),并调用TAP驱动进行调试操作,TAP驱动以操作系统驱动程序的形式提供仿真器使用JTAG对开发板访问的接口,而嵌入式系统完成系统级别调度,为调试进程提供一个通用的运行环境。基于上述仿真调试方案的仿真器灵活度高,可以支持比较复杂的调试要求,但稳定性相对较差,并且调试主机与调试进程之间的通信是单向的,不便于调试主机对仿真器状态的监控,不便于扩展新特性。综上所述,可知先前技术之仿真调试系统存在稳定性差且不易于扩展的问题,因此实有必要提出改进的技术手段,来解决此一问题
技术实现思路
为克服上述现有技术存在的不足,本专利技术的主要目的在于提供一种基于嵌入式系统的仿真调试系统及方法,其不仅可以改进仿真器的稳定性,而且便于仿真器功能的扩展。为达上述及其它目的,本专利技术提供一种基于嵌入式系统的仿真调试系统,应用于一仿真器,至少包括:代理进程模块,用于接收调试主机发送的控制命令,并控制调试进程模块的运行;调试进程模块,在该代理进程模块的控制下响应该调试主机发送过来的调试要求,并调用TAP驱动模块进行调试操作;TAP驱动模块,以操作系统驱动程序的形式提供仿真器对开发板访问的接口 ;以及嵌入式系统,用于完成系统级别调度。进一步地,该代理进程模块与该调试进程模块使用管道进行通信,同时共享一缓冲区,用于保存扫描链上的处理器状态。进一步地,该代理进程模块还用于对该调试进程模块进行异常检测与干预。进一步地,该异常包括该调试进程模块异常退出或者处在不正确的调试状态。进一步地,若该代理进程模块检测到该调试进程模块异常退出,则重启该调试进程模块;若该代理进程模块检测到该调试进程模块处于不正确的调试状态,此时若尚未建立调试连接,则直接重启该调试进程模块,若已经建立调试连接则等待本次调试完成后,再重启该调试进程模块。为达上述及其他目的,本专利技术提供一种基于嵌入式系统的仿真调试方法,应用于一仿真器,其包括如下步骤:该仿真器启动时,启动代理进程,由代理进程启动调试进程,调试进程启动后,通过所提供的接口扫描开发板上的信息并报告给该代理进程,由代理进程登记该信息与调试状态,并上报给调试主机;该调试主机发起调试请求,向该代理进程发送建立连接的控制命令;该代理进程接到建立连接的控制命令后,分配空闲端口返回给该调试主机,并通知该调试进程,然后记录;该调试进程使用分配到的端口建立一个线程等待该调试主机发起连接;该调试主机使用该端口发起调试请求;该调试进程响应连接,建立调试连接;调试结束后,该调试主机发送关闭连接命令给该代理进程;该代理进程得到响应后,通知该调试进程关闭连接,并于完成后通知该调试主机;以及该调试主机关闭连接,该代理进程更新状态。进一步地,于该代理进程接到控制命令并通知该调试进程后,还包括如下步骤:代理进程持续检测调试进程是否有异常退出或处于不正常的调试状态;若检测到该调试进程异常退出,则重启该调试进程;若检测到该调试进程处于不正常的调试状态,若此时尚未建立调试连接,则直接重启该调试进程,若已建立连接则等待本次调试完成后,重启该调试进程。进一步地,该调试进程的异常退出包括该调试进程超时未响应该代理进程与该调试进程被异常关闭。进一步地,若该代理进程检测到该调试进程连接被异常关闭,则执行如下步骤以重启该调试进程:保存调试现场和调试状态;关闭原有调试连接,并清除原有连接记录;重新建立调试连接;以及恢复调试现场,调整调试连接状态。进一步地,该调试进程处于不正常的调试状态包括该调试进程与该代理进程通信异常。与现有技术相比,本专利技术一种基于嵌入式系统的仿真调试系统及方法通过利用代理进程模块控制调试进程模块的运行,避免调试主机直接控制调试进程模块,不仅提高了仿真器的稳定性,而且便于仿真器功能的扩展。通过本专利技术,调试主机可以在异常情况下软复位仿真器,降低了等候时间;同时,调试主机可以随时保存调试现场,以免一旦发生异常导致丢失现场附图说明图1是现有技术中常见的一个仿真器的基本结构图;图2为现有技术中使用通用处理器的仿真调试系统的系统结构图;图3为本专利技术一种基于嵌入式系统的仿真调试系统的系统结构图;图4为本专利技术较佳实施例中代理进程模块和调试进程模块交互的示意图;图5为本专利技术较佳实施例中连接状态切换图;图6为本专利技术较佳实施例中调试状态切换图;图7为本专利技术基于嵌入式系统的仿真调试方法的步骤流程图。具体实施例方式以下通过特定的具体实例并结合附图说明本专利技术的实施方式,本领域技术人员可由本说明书所揭示的内容轻易地了解本专利技术的其它优点与功效。本专利技术亦可通过其它不同的具体实例加以施行或应用,本说明书中的各项细节亦可基于不同观点与应用,在不背离本专利技术的精神下进行各种修饰与变更。图3为本专利技术一种基于嵌入式系统的仿真调试系统的系统结构图。如图3所示,本专利技术一种基于嵌入式系统的仿真调试系统,应用于一仿真器,至少包括:代理进程模块301、调试进程模块302、TAP驱动模块303以及嵌入式系统304代理进程模块301用于接收调试主机发送的控制命令,并根据该控制命令控制调试进程模块302的运行;调试进程模块302在代理进程模块301的控制下响应调试主机发送过来的调试要求,并调用TAP驱动模块303进行调试操作,其中,代理进程模块301与调试进程模块302使用管道进行通信,同时共享一片缓冲区,用于保存扫描链上的处理器状态;TAP驱动模块303以操作系统驱动程序的形式提供仿真器使用JTAG对开发板访问的接口 ;嵌入式系统304用于完成系统级别调度,为调试进程提供一个通用的环境。具体来说,当应用本专利技术的仿真器启动时,代理进程模块301首先启动,然后由代理进程模块301启动调试进程模块302 ;调试进程模块302启动后,通过JTAG接口扫描开发板上的信息并报给代理进程模块301,代理进程模块301登记该信息和调试状态,并上报给调试主机;当开始调试时,由调试主机发起调试请求,调试主机向代理进程模块301发送控制命令本文档来自技高网
...

【技术保护点】
一种基于嵌入式系统的仿真调试系统,应用于一仿真器,至少包括:代理进程模块,用于接收调试主机发送的控制命令,并控制调试进程模块的运行;调试进程模块,在该代理进程模块的控制下响应该调试主机发送过来的调试要求,并调用TAP驱动模块进行调试操作;TAP驱动模块,以操作系统驱动程序的形式提供仿真器对开发板访问的接口;以及嵌入式系统,用于完成系统级别调度。

【技术特征摘要】

【专利技术属性】
技术研发人员:钮玥
申请(专利权)人:联芯科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1