嵌入式系统的在线调试系统及其调试方法技术方案

技术编号:2830482 阅读:196 留言:0更新日期:2012-04-11 18:40
嵌入式系统的在线调试系统,包括    嵌入式系统;    通过连接设备与所述嵌入式系统连接的调试终端;    其特征在于:    所述调试终端包括    用户接口模块;    接收所述用户接口模块发出信息的符号处理模块;    根据所述符号处理模块提供的信息对所述嵌入式系统进行调试的目标处理模块,所述目标处理模块包括    执行用户接口模块发出的命令的执行模块;    将执行模块发出的命令信息传送到所述连接设备的通信模块(17);    所述嵌入式系统包括被调试程序以及调试模块;    所述调试模块包括    接收所述连接设备发送的命令信息的通信模块(36);    接收通信模块(36)发出的命令信息的命令处理模块;    保存被调试程序中断时被调试程序信息的上下文处理模块。

【技术实现步骤摘要】

本专利技术涉及一种嵌入式系统的在线调试系统,尤其是嵌入式系统 的动态在线调试系统及应用该在线调试系统的调试方法。
技术介绍
随着电子技术的发展,嵌入式系统已经广泛应用在电子通信、自 动控制等领域。随着嵌入式系统的发展,其运算速度越来越快,存储 容量也越来越大,在嵌入式系统中运行的程序也越来越庞大且更加复 杂,程序运行时出现错误或缺陷几乎是不可避免的。因此,嵌入式系 统中运行的程序编写完毕后,需要进行调试,以便发现并消除缺陷。公开号为CN1752946A的中国专利技术专利申请公开了名为一种嵌 入式系统的调试方法及其系统的专利技术创造。该专利申请公开的嵌入 式系统的调试系统包括相互连接的调试终端和嵌入式系统,嵌入式系 统中包括被调试程序,并在被调试程序中添加调试模块。调试时,首 先在被调试程序中预设若干个断点,并将被调试程序下载到嵌入式系 统中,然后,在嵌入式系统中运行被调试程序。;陂调试程序运行过程 中遇到预设断点时便暂停运行,等待接收调试终端发出的命令。调试 终端读取被调试程序运行环境的数据,并判断被调试程序是否存在问 题,以此判断是否需要继续运行被调试程序。如被调试程序无需继续 运行,则中断调试并结束;若需要继续运行,则由调试模块向被调试 程序发出继续运行命令,被调试程序继续运行直至遇到新的断点。被 调试程序如此运行直至完毕。上述调试方法虽然能有效地对被调试程序进行调试,但由于断点 是预设在被调试程序中,因此,在对被调试程序进行时断点的个数以 及断点设置的位置都已固定,不能在运行过程中再修改。调试时,被 调试程序只能在预设断点处停下,无法在调试过程中添加新的断点。 若需要添加新的断点,只能退出调试后,再在被调试程序中添加新的断点,这样使调试工作很不灵活,并给调试带来不便。同时,由于断 点预设在被调试程序中,无法动态地实现单步运行功能。此外,对较为复杂的被调试程序,往往需要在被调试程序中设置 大量的断点。由于每一断点的设置均占用一定的存储空间,若在被调 试程序中设置断点的数量过多,则需要占用嵌入式系统中大量的存储 空间,而断点在被调试程序运行过程中并不起任何作用,这就造成大 量存储空间的浪费。
技术实现思路
本专利技术的主要目的是提供一种可在调试过程中动态设置断点的嵌入式系统的在线调试系统;本专利技术的另 一 目的是提供一种应用上述嵌入式系统的在线调试系 统对嵌入式系统进行调试的在线调试方法。为实现上述的主要目的,本专利技术提供的嵌入式系统在线调试系统 包括嵌入式系统和调试终端,该嵌入式系统与调试终端通过连接设备 连接。其中,该调试终端包括用户接口模块、符号处理模块和目标处 理模块。用户接口模块接收和解释调试命令,并将调试命令的相关信 息发送给符号处理模块,符号处理模块根据这些信息找出调试命令中 相应变量或函数的地址等信息,并传送到目标处理模块。目标处理模块包括执行模块和通信模块,其中执行模块执行用户 接口模块发出的命令,并根据符号处理模块提供的地址信息向通信模 块发出对嵌入式系统进行调试的具体命令信息,通信模块将该命令信 息发送到连接设备。嵌入式系统包括被调试程序和调试模块,其中被调试程序是在调 试前下载到嵌入式设备上,调试模块包括通信模块、命令处理模块和 上下文处理模块。通信模块用于接收连接设备发送的命令信息,并将 该命令信息传送到命令处理模块,命令处理模块根据该命令信息执行 相应的操作。上下文处理模块在被调试程序中断时保存被调试程序当 前的运行信息,如各寄存器的值等。当然,调试终端的目标处理模块中还可以设置栈帧分析模块,栈 帧分析模块根据用户接口模块发出的信息和符号处理模块提供的相应 地址信息,通过查看嵌入式系统中相应函数的地址、栈帧指针、函数 返回值等信息分析某一 函数的调用关系,并将该调用关系传回用户接 口模块,用户接口模块将调用关系显示出来。由于符号处理模块可以获取各变量、函数的地址等信息,目标处 理模块即可实时通过嵌入式系统的调试模块对被调试程序进行修改, 这样就可以动态的在被调试程序中添加新的断点,大大的方便调试人 员的调试工作。并且由于可以动态添加断点,因此动态的单步运行也 就可以实现。同时,由于断点是在调试时动态添加的,因此在^:调试程序中只 需要设置一个默认断点即可,减少被调试程序占用的存储空间,避免 造成存储空间的浪费。为了实现上述的另 一 目的,本专利技术提供的嵌入式系统在线调试方 法应用在前述的嵌入式系统在线调试系统中,该调试方法包括以下步骤步骤一在被调试程序中添加默认断点,并将被调试程序下载到 嵌入式系统中。步骤二在嵌入式系统中运行被调试程序,被调试程序运行至断 点时暂停运行,上下文处理模块保存被调试程序当前的运行信息,即 将各参数的值、各寄存器中的值和PC (Program Counter,程序计数 器)指针相对位置等信息存储到指定的位置中。步骤三调试终端查看和/或修改被调试程序的运行信息,判断 是否需要在被调试程序中添加新的断点,若需要,则在被调试程序中 添加新的断点,否则,纟丸行下一步。步骤四命令处理模块向被调试程序发送继续运行的命令,上下 文处理模块恢复被调试程序中断时的运行信息,即将步骤二中被存储 的信息还原,被调试程序继续运行。步骤五若被调试程序遇到断点,则返回执行步骤二,否则,继 续运行被调试程序。添加新的断点时,首先由用户接口模块设置需要添加断点的信 息,包括添加断点的位置、断点的类型等,并将这些信息发送至符号 处理模块,符号处理模块找出需要添加断点的地址,如断点在需要添 加到嵌入式系统中的地址等,然后将地址信息发出给执行模块。执行 模块接收到用户接口模块发出需要添加断点的信息,并根据符号处理 模块提供的地址信息,分析需要读取存储在嵌入式系统中哪一地址内 的数据,并通过通信模块及连接设备向嵌入式系统发出读取存储在该 地址内数据的命令信息。调试模块根据该命令信息读取相应数据后返 回至调试终端,调试终端将该数据保存起来。然后执行模块再发出改 写存储在该地址内数据的命令信息,改写为 一个能够引发异常的调试 指令。由上述方法可见,被调试程序运行时遇到断点即暂停运行,并等 待调试终端发出调试命令。若调试终端判断需要添加新的断点时即可 动态的添加新的断点。这样,不需要预先在被调试程序中设置大量的 断点,大大方便调试人员进行调试工作。同时,若需要进行动态单步 运行时,只要在需要单步运行的地方设置单步运行的指令即可。附图说明图l是本专利技术嵌入式系统在线调试系统实施例的示意框图; 图2是本专利技术嵌入式系统在线调试方法实施例的流程图; 图3是本专利技术嵌入式系统在线调试方法实施例中查看被调试程序 运行信息的流程图4是本专利技术嵌入式系统在线调试方法实施例中添加新断点的流程图。以下结合附图及实施例对本专利技术作进 一 步说明。 具体实施例方式参见图1,图1是本专利技术嵌入式系统在线调试系统实施例的示意 框图。调试系统由调试终端1、连接设备2和嵌入式系统3组成,其 中调试终端1通过连接设备2与嵌入式系统3连接。调试终端1包括用户接口模块11、符号处理模块12和目标处理 模块13。用户接口模块11是调试终端1与调试人员的接口界面,用 于接收和解释调试人员设置的调试命令,包括添加新的断点、查看某 一参数的值、查看某一函本文档来自技高网
...

【技术保护点】
嵌入式系统的在线调试系统,包括嵌入式系统;通过连接设备与所述嵌入式系统连接的调试终端;其特征在于:所述调试终端包括用户接口模块;接收所述用户接口模块发出信息的符号处理模块;根据所述符号处理模块提供的信息对所述嵌入式系统进行调试的目标处理模块,所述目标处理模块包括执行用户接口模块发出的命令的执行模块;将执行模块发出的命令信息传送到所述连接设备的通信模块(17);所述嵌入式系统包括被调试程序以及调试模块;所述调试模块包括接收所述连接设备发送的命令信息的通信模块(36);接收通信模块(36)发出的命令信息的命令处理模块;保存被调试程序中断时被调试程序信息的上下文处理模块。

【技术特征摘要】
1、嵌入式系统的在线调试系统,包括嵌入式系统;通过连接设备与所述嵌入式系统连接的调试终端;其特征在于所述调试终端包括用户接口模块;接收所述用户接口模块发出信息的符号处理模块;根据所述符号处理模块提供的信息对所述嵌入式系统进行调试的目标处理模块,所述目标处理模块包括执行用户接口模块发出的命令的执行模块;将执行模块发出的命令信息传送到所述连接设备的通信模块(17);所述嵌入式系统包括被调试程序以及调试模块;所述调试模块包括接收所述连接设备发送的命令信息的通信模块(36);接收通信模块(36)发出的命令信息的命令处理模块;保存被调试程序中断时被调试程序信息的上下文处理模块。2、 根据权利要求1所述嵌入式系统的在线调试系统,其特征在于所述目标处理模块还包括栈帧分析模块,所述栈帧分析模块根据 通信模块(17)提供的信息分析被调试程序中函数调用关系信息。3、 根据权利要求1或2所述嵌入式系统的在线调试系统,其特 征在于所述嵌入式系统为智能卡,所述连接设备为读卡器。4、 应用如权利要求2所述嵌入式系统在线调试系统的调试方 法,包括以下步骤步骤一在被调试程序中添加默认断点,并将被调试程序下载到 嵌入式系统中; 步骤二在嵌入式系统中运行被调试程序,被调试程序运行至断点时暂停运行,所述上下文处理模块保存被调试程序当前的运行信 自 步骤三调试终端查看和/或修改被调试程序的运行信息,判断 是否需要在被调试程序中添加新的断点,若需要,则在被调试程序中 添加新的断点,否则,执行下一步;步骤四所述命令处理模块向被调试程序发送继续运行的命令, 上下文处理模块恢复被调试程序中断时的运行信息,被调试程...

【专利技术属性】
技术研发人员:郭伟徐云锋张斌
申请(专利权)人:东信和平智能卡股份有限公司
类型:发明
国别省市:44

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

1