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

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

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



背景技术:

在计算机技术领域,soc(systemonchip:系统芯片)系统是指将电脑或其他电子系统集成到单一芯片的集成电路系统,常应用到嵌入式系统中。典型的soc系统包括处理器、内存(包括只读存储器、随机存取存储器、闪存存储器等)、由定时器、计数器等组成的外部模块、由通用串行总线、以太网接口等组成的连接线口等。因此,与结构简易、功能弱化的单芯片系统相比,soc电路结构更加复杂,功能更加强大,可以处理数字信号、模拟信号、混合信号甚至更高频率的信号。

在实际应用中,soc系统往往执行着非常复杂的指令,处理器与各个外部模块、模块与模块之间的进行着复杂的数据访问和逻辑控制,在这种情况下,由于soc系统在运行时存在着指令操作不当、环境异常改变或者程序运行异常等因素,soc系统有时会发生运行故障,这些故障包括:系统功能执行异常、各模块之间数据访问异常,处理器卡死等。

为了在soc系统发生运行故障时,找出故障原因,在现有技术中,通常会在soc系统中设置监控模块,实时监控并记录soc系统的处理器、闪存以及各个模块在当前时刻的状态信息,以便soc系统发生运行故障时,通过现有技术的处理器调试系统向处理器发出调试指令,使处理器从监控模块中获取状态信息,从而根据状态信息确定故障的原因。但是,当soc系统发生故障时,有时会导致处理器卡死,导致处理器无法响应和执行任何指令,而由于处理器不再执行任何指令,soc系统中的其他模块也处于卡死的状态,此时,由于处理器无法响应来自调试系统的调试指令,现有技术的处理器调试系统就无法在soc系统故障导致处理器卡死时对soc系统进行调试。

因此,针对soc系统而言,如何在soc系统故障导致处理器卡死时实现对soc系统的调试,获得soc系统故障信息,成为本领域技术人员亟待解决的技术问题。



技术实现要素:

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

第一方面,本发明实施例提供了一种处理器调试方法,应用于soc系统中,所述方法包括:当处理器卡死时,定时器发出复位信号和复位有效信号;处理器接收复位信号,复位并重新启动;数据选择器接收复位有效信号,选择将调试等待指令装载至处理器的指令空间中;处理器执行调试等待指令,进入调试等待状态;在处理器调试等待状态下,通过处理器调试接口,对soc系统进行调试。

结合第一方面,在第一方面的第一种可能的实现方式中,所述当处理器卡死时,定时器发出复位信号和复位有效信号的步骤前,还包括:处理器使能定时器,并设置定时器的最大计数时间;处理器按预设时间间隔定期重置定时器的计数时间;所述预设时间间隔小于最大计数时间。

结合第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述当处理器卡死时,定时器发出复位信号和复位有效信号的步骤,包括:当处理器卡死时,处理器无法按预设时间重置定时器的计数时间,定时器持续计数;当定时器的计数到达最大计数时间时,定时器发出复位信号和复位有效信号。

结合第一方面,在第一方面的第三种可能的实现方式中,所述定时器为看门狗定时器。

结合第一方面,在第一方面的第四种可能的实现方式中,所述数据选择器为二选一选择器;所述二选一选择器在处理器重新启动时,如果接收到复位有效信号,则将调试等待指令装载至处理器的指令空间中;如果未接收到复位有效信号,则将处理器引导程序装载至处理器的指令空间中。

结合第一方面,在第一方面的第五种可能的实现方式中,所述在处理器调试等待状态下,通过处理器调试接口,对soc系统进行调试的步骤包括:获取第一现场信息;所述第一现场信息,是指处理器发生卡死时,soc的监控模块中记录的状态信息;根据第一现场信息,确定soc系统故障原因。

结合第一方面,在第一方面的第六种可能的实现方式中,所述处理器根据预设调试指令,对soc系统进行调试的步骤完成之后,还包括:清除复位有效信号,重新启动处理器。

第二方面,本发明实施例提供了一种处理器调试系统,应用于soc系统中,所述系统包括:定时器、数据选择器、第一存储器、处理器;所述定时器,用于在处理器卡死时,发出复位信号和复位有效信号;所述数据选择器,用于在接收复位有效信号时,选择将调试等待指令装载至处理器的指令空间中;所述处理器,用于执行调试等待指令,进入调试等待状态;以及,用于在处理器调试等待状态下,通过处理器调试接口,对soc系统进行调试;所述第一存储器,用于存储调试等待指令。

结合第二方面,在第二方面的第一种可能的实现方式中,所述数据选择器为二选一选择器;所述调试系统还包括:第二存储器;所述第二存储器,用于存储处理器引导程序;所述二选一选择器,用于在处理器启动时,如果接收到复位有效信号,则从第一存储器中,将调试等待指令装载至处理器的指令存储器中;以及,如果未接收到复位有效信号,则从第二存储器中,将处理器引导程序装载至处理器的指令空间中。

本发明实施例提供的技术方案,为了在soc系统故障导致处理器卡死的状态下,实现对soc系统的调试,当处理器发生卡死时,定时器发出复位信号和复位有效信号,其中,处理器在接收到复位信号后,复位并重新启动,使处理器从卡死的状态中恢复;数据选择器接收到复位有效信号,将调试等待指令装载至处理器的指令空间中,处理器在重新启动后执行调试等待指令,进入调试等待状态;最后,通过处理器的调试接口,向处理器发出调试指令,对soc系统进行调试。本发明实施例提供的技术方案,能够在soc系统故障导致处理器卡死时,将处理器从卡死状态中恢复并进入调试等待模式,然后通过处理器调试接口,对soc系统进行调试,解决了现有技术中在soc系统故障导致处理器卡死时,无法对soc系统进行调试的问题。

附图说明

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

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

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

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

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

具体实施方式

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

实施例一

参见图1,为本发明实施例提供的一种处理器调试方法的流程图,应用于soc系统中,该方法包括以下步骤:

步骤s110,当处理器卡死时,定时器发出复位信号和复位有效信号。

当处理器发生卡死时,处理器无法响应和处理任何程序指令,soc系统中的各个模块也因处理器的卡死而无法继续执行任何工作任务,因此,各个模块均保持着处理器发生卡死时的工作状态;而soc系统中的监控模块中也记录下了处理器发生卡死时,各个模块的状态信息;由于,处理器发生卡死后,soc的工作任务不再继续执行,所以各个模块的工作状态不再发生变化,因此,记录模块中记录的各个模块的状态信息保持不变。

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

步骤s010,处理器使能定时器,并设置定时器的最大计数时间。

本步骤中,处理器使能定时器,使定时器开始工作并计数,相当于开启了本调试方法的开关。本实施例中,步骤s010可以在soc系统运行工作任务之前执行,也可在soc系统工作的过程中,在任何需要使用本调试方法时,执行步骤s010。

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

本步骤中,由于处理器定期重置定时器的预设时间间隔小于定时器的最大计数时间,因此,在处理器处于正常工作状态时,定时器在到达最大计数时间之前就会被处理器重置,使定时器在一个计数周期内始终不会到达最大计数时间。

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

步骤s111,当处理器卡死时,处理器无法按预设时间重置定时器的计数时间,定时器持续计数。

本步骤中,由于处理器发生卡死,处理器已经无法响应和执行任何指令,因此处理器无法在预设时间重置定时计数器,定时计数器在预设时间到达后,由于没有被处理器重置,会持续计数。

步骤s112,当定时器的计数到达最大计数时间时,定时器发出复位信号和复位有效信号。

定时器能够计数到达最大计数时间,说明处理器发生了卡死,没有按预设时间重置定时器的计数时间,使定时器持续计数,最终到达了最大计数时间,定时器在到达最大计数时间时,发出了复位信号和复位有效信号。

可选地,本实施例中,所述定时器为看门狗定时器。

步骤s120,处理器接收复位信号,复位并重新启动。

本步骤中,处理器在接收复位信号,复位并重新启动后,从原本卡死的状态中恢复,使处理器能够响应并执行程序指令。本实施例中的复位信号只能复位处理器,而不对soc系统中的任何其他设备和模块起作用,因此,在处理器复位并重新启动之后,soc系统的其他设备和模块依然保持着处理器卡死时的工作状态,soc的记录模块中,也保存着处理器卡死时各个模块的状态信息。

步骤s130,数据选择器接收复位有效信号,选择将调试等待指令装载至处理器的指令空间中。

本实施例中,数据选择器为二选一选择器。二选一选择器执行步骤s130的方法为:在处理器启动时,如果接收到复位有效信号,则将调试等待指令装载至处理器的指令空间中;如果未接收到复位有效信号,则将处理器引导程序装载至处理器的指令空间中。本实施例中,由于定时器在处理器卡死时发出了复位有效信号,因此,在步骤s130中,二选一选择器接收到复位有效信号,将调试等待指令装载至处理器的指令空间中。

示例地,在本实施例中,soc系统运行c语言程序,调试等待指令为c语言程序中的while(1)指令。因此,本实施例在步骤s130中,将while(1)指令对应的机器码装载至处理器的指令空间中。

步骤s140,处理器执行调试等待指令,进入调试等待状态。

示例地,当二选一选择器将while(1)指令装载至处理器的指令空间中之后,处理器不停地执行while(1)指令,即处理器进入调试等待状态,直到处理器接收到调试指令。

步骤s150,在处理器调试等待状态下,通过处理器调试接口,对soc系统进行调试。

由于在步骤s140之后,处理器已经从卡死的状态恢复,并重新启动进入调试等待状态,因此,在步骤s150中,可通过处理器的调试接口,对soc系统进行调试。

图3为本发明实施例提供的一种处理器调试方法的步骤s150的流程图,在本实施例中,步骤s150包括以下步骤:

步骤s151,获取第一现场信息;所述第一现场信息,是指处理器发生卡死时,soc的监控模块中记录的状态信息。

由于在soc系统运行时,各个模块的状态不断发生变化,因此监控模块中记录的状态信息也不断更新,直到处理器发生卡死,因此,本实施例中的第一现场信息,记录了处理器发生卡死时,soc系统中各个模块的运行状态,如:各个模块的配置信息、各个模块正在执行的程序指令、内存中存储的数据、系统总线的数据访问情况、系统各个模块的负载状况等。

步骤s152,根据第一现场信息,确定soc系统故障原因。

由于第一现场信息中包含了处理器卡死时各个模块的状态信息,所以,第一现场信息中包含了处理器在卡死前最后执行的程序指令,以及处理器卡死时各个模块的配置信息,内存中存储的数据,系统总线的数据访问情况等,因此,根据第一现场信息就能够找到导致soc系统故障的原因,这些故障原因可以包括:程序代码缺陷、系统配置错误、总线数据访问故障等。

此外,本实施例中,在执行了步骤s150,确定了系统故障原因以后,可根据故障原因修改程序代码,更改系统配置等;然后,清除复位标志信号,清除复位有效信号可通过让处理器执行清除复位有效信号的指令实现。在清除掉复位有效信号以后,重新启动处理器,由于,复位有效信号已经清除,二选一选择器不会接收到复位有效信号,因此,二选一选择器将处理器引导程序装载到处理器的指令空间中,处理器以正常模式启动。处理器启动后,继续使用本方法,并运行soc系统的工作程序,以验证系统故障是否已经排除,如果处理器不再卡死,则系统故障已经排除;如果处理器再次卡死,本方法会继续确定系统故障原因,直到处理器不再卡死为止。

本发明实施例提供的技术方案,为了在soc系统故障导致处理器卡死的状态下,实现对soc系统的调试,当处理器发生卡死时,定时器发出复位信号和复位有效信号,其中,处理器在接收到复位信号后,复位并重新启动,使处理器从卡死的状态中恢复;数据选择器接收到复位有效信号,将调试等待指令装载至处理器的指令空间中,使处理器在重新启动后执行调试等待指令,进入调试等待状态;最后,通过处理器的调试接口,向处理器发出调试指令,对soc系统进行调试。本发明实施例提供的技术方案,能够在soc系统故障导致处理器卡死时,将处理器从卡死状态中恢复并进入调试等待模式,然后通过处理器调试接口,对soc系统进行调试,解决了现有技术中在soc系统故障导致处理器卡死时,无法对soc系统进行调试的问题。

参见图4,为本发明实施例提供的一种处理器调试系统的框图,该系统包括:定时器21、数据选择器22、处理器23、第一存储器24、第二存储器25。

定时器21,用于在处理器卡死时,发出复位信号和复位有效信号;

数据选择器22,用于在接收复位有效信号时,选择将调试等待指令装载至处理器23的指令空间中;

所述处理器23,用于执行调试等待指令,进入调试等待状态;以及,用于在处理器调试等待状态下,通过处理器调试接口,对soc系统进行调试;

所述第一存储器,用于存储调试等待指令;

第一存储器24,用于存储调试等待指令;

第二存储器25,用于存储处理器引导程序;

本实施例中,定时器21为看门狗定时器,数据选择器22为二选一选择器,本实施例中的二选一选择器,用于在处理器23启动时,如果接收到复位有效信号,则从第一存储器24中,将调试等待指令装载至处理器23的指令存储器中;以及,如果未接收到复位有效信号,则从第二存储器25中,将处理器引导程序装载至处理器23的指令空间中。

本实施例中,第一存储器和第二存储器可以是非易失性存储器(nvram:non-volatilememory),包括只读内存(rom:read-onlymemory)和闪存(flashmemory),如:可擦可编程只读内存eprom(prom:erasableprogrammablereadonlymemory)、nand(与非门)闪存等。

示例地,本实施例的soc系统运行c语言程序,调试等待指令为c语言程序中的while(1)指令,因此,本实施例中的第一存储器24中存储的是wihle(1)指令对应的机器码,该机器码可以被处理器识别,从而使处理器23启动后执行whlie(1)指令,进入调试等待状态。

本发明实施例提供的技术方案,为了在soc系统故障导致处理器卡死的状态下,实现对soc系统的调试,当处理器发生卡死时,定时器发出复位信号和复位有效信号,其中,处理器在接收到复位信号后,复位并重新启动,使处理器从卡死的状态中恢复;数据选择器接收到复位有效信号,将调试等待指令装载至处理器的指令空间中,处理器在重新启动后执行调试等待指令,进入调试等待状态;最后,通过处理器的调试接口,向处理器发出调试指令,对soc系统进行调试。本发明实施例提供的技术方案,能够在soc系统故障导致处理器卡死时,将处理器从卡死状态中恢复并进入调试等待模式,然后通过处理器调试接口,对soc系统进行调试,解决了现有技术中在soc系统故障导致处理器卡死时,无法对soc系统进行调试的问题。

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

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

需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

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

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

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