一种处理器调试方法及系统与流程

文档序号:12305133阅读:290来源:国知局
一种处理器调试方法及系统与流程

本发明涉及计算机技术领域,尤其涉及一种处理器调试方法及系统。



背景技术:

在计算机技术领域,soc(systemonchip:系统芯片)系统是指将电脑或其他电子系统集成到单一芯片的集成电路系统,常应用到嵌入式系统中。与结构简易、功能弱化的单芯片系统相比,soc电路结构更加复杂,通常达到几百万门到几千万门,功能更加强大,可以处理数字信号、模拟信号、混合信号甚至更高频率的信号。

在soc系统中,处理器是soc系统的重要元件,用于执行程序指令,实现数据运算,与soc系统中的其他模块共同实现特定的soc系统功能。现有技术中,处理器设置有程序计数器(pc:programcounter),程序计数器是处理器内部的一个寄存器,用来顺序存储处理器当前时刻正在执行和刚刚被执行过的多条指令,这个指令序列称为pc值,pc值中的多条指令按照处理器执行指令的先后顺序存储,当处理器运行时,pc值中的指令被处理器连续地取出,同时,新的指令也会被顺序添加进pc值中,使处理器能够不断获取到新的程序指令。

受soc系统中总线连接关系、总线运行状态、模块运行状态、系统运行环境、系统外部环境、人为误操作、指令编写质量等多种因素的影响,处理器在运行中,有时会遇到一些无法正确执行的问题指令,这些问题指令会导致处理器运行异常,甚至会导致处理器发生卡死而瘫痪整个soc系统。现有技术中,当处理器运行异常时,通常通过处理器的调试接口,向处理器发送调试指令,对处理器进行调试,确定处理器异常时指令执行的状态,从而根据指令的执行状态,找到问题指令;但是,当处理器发生卡死时,处理器无法接收任何调试指令,因此,现有技术无法在处理器卡死时确定处理器指令执行的状态。



技术实现要素:

本发明提供了一种处理器调试方法和系统,以解决现有技术中存在的问题。

第一方面,本发明实施例提供了一种处理器调试方法,应用于soc中,所述方法包括:当处理器执行工作程序时,逻辑控制器将处理器的pc值同步发送给fifo存储器;当处理器复位时,所述逻辑控制器判断是否获取到来自wdt(看门狗计时器)的复位标志信号;如果是,则所述逻辑控制器停止向所述fifo存储器中同步发送所述pc值,所述fifo存储器中已存的所述pc值为目标pc值;处理器从所述fifo存储器中获取所述目标pc值。

结合第一方面,在第一方面第一种可能的实现方式中,所述当处理器运行时,逻辑控制器将处理器的pc值同步发送给fifo存储器的步骤之前,还包括:处理器配置所述wdt的最大计数时间,并开启所述wdt计数;所述wdt在计数到达所述最大计数时间时生成复位信号和复位标志信号;当所述wdt计数时,处理器按预设时间重置所述wdt计数时间;所述预设时间小于所述wdt的所述最大计数时间;处理器开始执行工作指令。

结合第一方面,在第一方面第二种可能的实现方式中,所述当处理器执行工作程序时,逻辑控制器将处理器的pc值同步发送给fifo存储器的步骤,包括:所述逻辑控制器获取处理器的所述pc值,所述逻辑控制器将所述pc值中记录的指令按处理器执行顺序逐条发送给所述fifo存储器。

结合第一方面第二种可能的实现方式,在第一方面第三种可能的实现方式中,所述逻辑控制器将所述pc值中记录的指令按处理器执行顺序逐条发送给所述fifo存储器的步骤后,还包括:对最后被发送至所述fifo存储器中的指令添加标记信息。

结合第一方面,在第一方面第四种可能的实现方式中,所述fifo存储器可存储指令的数量多于所述pc值中记录的指令数量。

结合第一方面,在第一方面第五种可能的实现方式中,所述当处理器复位时,所述逻辑控制器判断是否获取到来自wdt的复位标志信号的步骤之后,还包括:如果否,则所述逻辑控制器继续向所述fifo存储器中同步发送所述pc值。

结合第一方面,在第一方面第六种可能的实现方式中,所述处理器从所述fifo存储器中获取所述目标pc值的步骤之后,还包括:清除所述wdt的复位标志信号。

结合第一方面,在第一方面第七种可能的实现方式中,所述fifo存储器为按先入先出法存储数据的寄存器或sram。

第二方面,本发明实施例提供了一种处理器调试系统,应用于soc中,所述系统包括:处理器、逻辑控制器、fifo存储器和wdt;所述逻辑控制器,用于当处理器执行工作程序时,将处理器的pc值同步发送给fifo存储器;以及,用于在获取到来自wdt的复位标志信号时,停止向所述fifo存储器中同步发送所述pc值;所述fifo存储器,用于接收并存储所述逻辑控制器同步发送的所述pc值;所述wdt,用于生成所述复位标志信号,并将所述复位标志信号发送给所述逻辑控制器;所述处理器,用于从所述fifo存储器中获取目标pc值。

结合第二方面,在第二方面第一种可能的实现方式中,所述处理器还用于:配置所述wdt的最大计数时间,并开启所述wdt计数;所述wdt在计数到达所述最大计数时间时生成复位信号和复位标志信号;以及,当所述wdt计数时,按预设时间重置所述wdt计数时间;所述预设时间小于所述wdt的所述最大计数时间;以及,执行工作程序。

本发明实施例提供的技术方案,为了实现在处理器卡死时获取处理器卡死时指令的执行状态,首先,在处理器运行时,逻辑控制器将处理器的pc值同步发送给fifo存储器,当处理器复位时,逻辑控制器判断是否获取到来自wdt的复位标志信号,如果是,则说明处理器发生了卡死而被wdt复位,逻辑控制器停止向fifo存储器中同步发送pc值,因此,fifo存储器中始终存储着处理器发生卡死时的pc值,本方案将处理器卡死时的pc值作为目标pc值;然后,处理器从fifo存储器中获取目标pc值;目标pc值中的指令就能够反映出处理器卡死时指令的执行状态,从而,解决了现有技术无法在处理器卡死时确定处理器指令执行的状态的问题。

附图说明

为了更清楚地说明本发明的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种处理器调试方法的流程图;

图2为本发明实施例提供的一种处理器调试方法步骤s110的流程图;

图3为本发明实施例提供的一种处理器调试系统的框图。

具体实施方式

为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

本领域名词解释

看门狗计时器(wdt:watchdogtimer):看门狗计时器是一种硬件计时设备,它实际上是一个定时计数器。使用时,给看门狗计时器一个数字,即配置了看门狗计时器的最大计数时间;当处理器执行程序时,看门狗开始倒计时计数,处理器会在规定时间内发出重置看门狗计时器的指令,使看门狗计时器复位,并重新开始计数;如果看门狗计时器的倒计时计数减到0,即到达了最大计数时间,看门狗计时器就会发出复位信号和复位标志信号,该复位信号发送给处理器,会使处理器复位并重新启动。

fifo存储器:fifo是firstinputfirstoutput的缩写,中文解释为:先入先出队列,fifo存储器是采用先入先出队列方法存储数据的存储器。fifo存储器能将程序指令按照进入存储器的先后顺序列队存储,当fifo存储器中的程序指令队列排满时,每当有一个新的程序指令进入时,位于队列最前端程序指令就会从fifo存储器中被取出,其他指令依次向前移动一个位置,队列最末端由于指令向前移动而空出的位置,由新进入的指令补位。形象地说,这个过程类似于在超市排队结账的过程,先排队的人先结账离开,队伍末端不断有人加入到排队的队伍中。

实施例一

参见图1,为本发明实施例提供的一种处理器调试方法的流程图。所述方法包括以下步骤:

步骤s110,当处理器执行工作程序时,逻辑控制器将处理器的pc值同步发送给fifo存储器。

本实施例中的pc值顺序包含了处理器当前时刻正在执行的指令和刚刚被执行过的多条指令,且pc值中包含的指令数量不变,这些指令按照处理器执行指令的先后顺序存储,逻辑控制器将pc值同步发送给fifo存储器,使fifo存储器中也顺序存储pc值中的多条指令。由于处理器不断地执行指令,逻辑控制器中的pc值会不断更新,因此,为了保证fifo中存储的指令,能够反映出处理器当前执行指令的状态,逻辑控制器需要将pc值同步地发送到fifo存储器中,使处理器中的pc值与fifo存储器中存储的pc值始终保持同步。

步骤s120,当处理器复位时,所述逻辑控制器判断是否获取到来自wdt的复位标志信号。

考虑到处理器在运行过程中会出现由于卡死导致看门狗计时器到达最大计数时间,从而发出复位信号导致处理器复位的情况,以及,处理器由于执行了复位指令而主动复位的情况,本实施例采用了通过逻辑控制器判断是否获取到来自wdt的复位标志信号的方法,确定处理器是否是由于卡死而复位。由于wdt在到达最大计数时间时,会同时发出复位信号和复位标志信号,因此,如果处理器发生复位时,逻辑控制器接收到了来自wdt的复位标志信号,说明处理器是由于卡死而复位,如果处理器发生复位时,逻辑控制器没有收到来自wdt的复位标志信号,则说明处理器是由于执行了复位指令而主动复位。

步骤s130,如果是,则所述逻辑控制器停止向所述fifo存储器中同步发送所述pc值,所述fifo存储器中已存的所述pc值为目标pc值。

本步骤中,如果逻辑控制器判断是否获取到来自wdt的复位标志信号的结果为是,则说明处理器发生了卡死,因此,逻辑控制器停止向fifo存储器中同步发送pc值,使fifo存储器中存储的pc值不再发生变化。由于本实施例中的pc值中包含了处理器当前时刻正在执行的指令和刚刚被执行过的多条指令,当处理器发生卡死,逻辑控制器停止向fifo存储器中同步发送pc值时,fifo存储器中存储的pc值中所包含的指令就是处理器卡死时正在执行的指令和卡死前刚刚执行过的指令,这些指令反映了处理器异常时指令执行的状态,因此,此时fifo存储器中已存的pc值被作为目标pc值。

步骤s140,处理器从所述fifo存储器中获取所述目标pc值。

本步骤中,处理器执行获取目标pc值的指令,从fifo存储器中获取到目标pc值,并输出到外部设备中,本实施例中的外部设备,可以是供技术人员使用的带有屏幕的调试设备,也可以是用来存储已获取到的目标pc值的外部存储器;本领域的技术人员通过分析本步骤中获取到的目标pc值,能够找出导致处理器卡死的问题指令,并根据问题指令确定出处理器卡死的原因。

本实施例在执行步骤s110之前,还包括以下步骤:

步骤s010,处理器配置所述wdt的最大计数时间,并开启所述wdt计数;所述wdt在计数到达所述最大计数时间时生成复位信号和复位标志信号。

本步骤的目的是开启wdt的计数功能,当wdt不开启计数时,本实施例提供的处理器调试方法处于关闭状态;当wdt开启计数时,本实施例提供的处理器调试方法开启。

步骤s020,当所述wdt计数时,处理器按预设时间重置所述wdt计数时间;所述预设时间小于所述wdt的所述最大计数时间。

本步骤中,处理器被设置为按预设时间重置wdt的计数时间,使处理器在正常运行的情况下,wdt的计数在到达最大计数时间之前就会被重置,wdt不会发出复位信号和复位标志信号,而当处理器卡死时,处理器就不会按照预设时间重置wdt的计数时间,wdt在到达最大计数时间时生成复位信号和复位标志信号。因此,本步骤实现了在处理器发生卡死时,wdt能够生成复位信号和复位标志信号。

步骤s030,处理器开始执行工作指令。

本步骤中,工作指令是为了实现soc系统特定功能而执行的指令,受soc系统中总线连接关系、总线运行状态、模块运行状态、系统运行环境、系统外部环境、人为误操作、指令编写质量等多种因素的影响,指令中可能会包含一些问题指令,并且,某些问题指令会导致处理器发生卡死,本实施例在执行了步骤s010和步骤s020之后,执行步骤s030,使处理器执行工作指令,就可以通过后续的步骤s110至步骤s140确定处理器卡死时指令执行的状态,从而根据指令执行的状态,找到问题指令。

进一步地,参见图2,为本发明实施例提供的一种处理器调试方法的步骤s110的流程图,本实施例中的步骤s110,包括以下步骤:

步骤s111,所述逻辑控制器获取处理器的所述pc值。

本实施例中,逻辑控制器从处理器内部的程序计数器中获取到处理器的pc值,由于处理器在运行时不断地执行工作指令,因此,逻辑控制器不断地从处理器获取新的指令,即逻辑控制器获取到的pc值中包含的指令随着处理器执行指令的顺序不断地更新,使pc值中始终包含处理器当前时刻正在执行和刚刚被执行过的多条指令。

步骤s112,所述逻辑控制器将所述pc值中记录的指令按处理器执行顺序逐条发送给所述fifo存储器。

本实施例中,随着处理器不断地执行工作指令,逻辑控制器不断地从处理器中获得指令,处理器中的pc值不断更新,每当处理器的pc值中更新了一条指令时,逻辑控制器都会把这条指令同步发送给fifo存储器,该发送过程随着处理器不断执行工作指令而连续发生。

进一步地,本实施例中,在步骤s112之后,还包括:

步骤s113,对最后被发送至所述fifo存储器中的指令添加标记信息。

本步骤的目的,是通过对最后被发送至所述fifo存储器中的指令添加标记信息来确定fifo存储器中pc值包含的指令被处理器执行的先后顺序,即被添加标记信息的指令为最后被处理器执行的指令,其他指令的执行顺序根据指令在fifo存储器中的队列位置即可得出。由于,随着逻辑控制器不断把指令发送给fifo存储器,最后被发送至fifo存储器中的指令不断发生变化,因此,本步骤中,被添加标签信息的指令也在不断发生变化,当一条新的指令被发送到fifo存储器时,fifo存储器中存储的前一条指令的标签信息就会转移到新的指令上。

可选地,本实施例中,所述fifo存储器可存储指令的数量多于所述pc值中记录的指令数量。该可选方案可以使fifo存储器存储更多的指令,当处理器发生卡死,逻辑控制器不再把pc值同步发送给fifo存储器时,fifo存储器中能够保存处理器卡死时刻,目标pc值中的全部指令,以及一些处理器更早执行的指令,从而,为技术人员提供更多的指令信息,有助于技术人员更全面地分析指令信息,找出问题指令。

可选地,本实施例在步骤s120之后,还包括:

步骤s131,如果否,则所述逻辑控制器继续向所述fifo存储器中同步发送所述pc值。

由于处理器在运行时,还可能由于执行复位指令而复位,这种情况下wdt是不会生成复位标志信号的,因此步骤s120的判断结果为否。当处理器执行了复位指令而复位时,处理器并没有发生卡死,所以,本步骤中,当步骤s120的判断结果为否时,逻辑控制器继续向fifo存储器中同步发送所述pc值。

进一步地,本实施例中,在步骤s140之后,还包括:

步骤s150,清除所述wdt的复位标志信号。

由于在步骤s140中,已经从fifo存储器中获取到了目标pc值,在步骤s150中,清除wdt的复位标志信号,使逻辑控制器重新开始将处理器的pc值同步发送给fifo存储器,从而继续本实施例的调试过程。

此外,需要说明的是,本实施例中的fifo存储器可以使用按先入先出法存储数据的寄存器或sram,当然,也可以使用其他能够实现fifo存储器功能的其他存储介质。

本发明实施例提供的技术方案,为了实现在处理器卡死时获取处理器卡死时指令的执行状态,首先,在处理器运行时,逻辑控制器将处理器的pc值同步发送给fifo存储器,当处理器复位时,逻辑控制器判断是否获取到来自wdt的复位标志信号,如果是,则说明处理器发生了卡死而被wdt复位,逻辑控制器停止向fifo存储器中同步发送pc值,因此,fifo存储器中始终存储着处理器发生卡死时的pc值,本方案将处理器卡死时的pc值作为目标pc值;然后,处理器从fifo存储器中获取目标pc值;目标pc值中的指令就能够反映出处理器卡死时指令的执行状态,从而,解决了现有技术无法在处理器卡死时确定处理器指令执行的状态的问题。

实施例二

参见图3,为本发明实施例提供的一种处理器调试系统的框图。所述系统包括:处理器210、逻辑控制器220、fifo存储器230和wdt240;

所述逻辑控制器220,用于当处理器210执行工作程序时,将处理器210的pc值同步发送给fifo存储器230;

以及,用于在获取到来自wdt240的复位标志信号时,停止向所述fifo存储器230中同步发送所述pc值;

所述fifo存储器230,用于接收并存储所述逻辑控制器220同步发送的所述pc值;

所述wdt240,用于生成所述复位标志信号,并将所述复位标志信号发送给所述逻辑控制器220;

所述处理器210,用于从所述fifo存储器230中获取目标pc值。

进一步地,本实施例中,所述处理器210还用于:

配置所述wdt240的最大计数时间,并开启所述wdt240计数;所述wdt240的计数在到达所述最大计数时间时生成复位信号和复位标志信号;

以及,当所述wdt240计数时,按预设时间重置所述wdt240计数时间;所述预设时间小于所述wdt240的所述最大计数时间;

以及,执行工作程序。

本发明实施例提供的技术方案,为了实现在处理器卡死时获取处理器卡死时指令的执行状态,首先,在处理器运行时,逻辑控制器将处理器的pc值同步发送给fifo存储器,当处理器复位时,逻辑控制器判断是否获取到来自wdt的复位标志信号,如果是,则说明处理器发生了卡死而被wdt复位,逻辑控制器停止向fifo存储器中同步发送pc值,因此,fifo存储器中始终存储着处理器发生卡死时的pc值,本方案将处理器卡死时的pc值作为目标pc值;然后,处理器从fifo存储器中获取目标pc值;目标pc值中的指令就能够反映出处理器卡死时指令的执行状态,从而,解决了现有技术无法在处理器卡死时确定处理器指令执行的状态的问题。

本发明可用于众多通用或专用的计算系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络pc、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。

本发明可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本发明,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本发明旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。

应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1