嵌入式处理器宕机的处理方法

文档序号:9274607阅读:411来源:国知局
嵌入式处理器宕机的处理方法
【技术领域】
[0001]本发明涉及嵌入式系统领域,尤其涉及一种基于硬件与软件共同检测并处理嵌入式处理器的宕机异常方法。
【背景技术】
[0002]嵌入式处理器中的软件在运行中如果发生致命的异常,会使处理器宕机,导致控制端软件无法接入,处理器上的调试信息无法获取。尤其是在脱离硬件仿真器的正式产品运行环境下,嵌入式处理器在宕机时,缺乏手段获取处理器的软件运行记录,不容易对处理器的宕机原因进行分析。
[0003]通常的宕机处理流程如图1所示,在该流程中,处理器的复位破坏了宕机时的第一运行现场,无法对异常原因进行分析;并且该流程往往需要大量的测试版本进行尝试,才能定位问题。

【发明内容】

[0004]为解决现有技术中存在的上述问题,本发明实施例一方面提供了一种嵌入式处理器宕机的处理方法,方法包括:
使用软件存活检测为后续处理器是否存活的判断提供第一依据;
使用硬件存活检测为后续处理器是否存活的判断提供第二依据;
处理器存活判断根据软件与硬件的检测结果决定处理器是否存活;
处理器软复位对宕机进行强制恢复,但不破坏处理器的运行环境;
处理器根据硬件特征,决定是运行宕机后处理程序,或者重新运行正常程序。
[0005]宕机后处理程序用于重新建立与控制端的通信链路;
宕机后处理程序将处理器宕机后的内存传送给控制端;
在链接正常程序时,保留一段内存,在生成正常程序的可执行文件镜象后,将宕机后处理程序追加到预留的内存中。
[0006]本发明实施例,采用一种基于硬件与软件共同检测并处理嵌入式处理器的宕机异常方法,提供了新的处理器宕机后处理手段,增强了嵌入式系统的可调测性,有利于准确、高效的定位嵌入式处理器宕机类的复杂问题。
【附图说明】
[0007]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0008]图1为嵌入式处理器的宕机常规处理流程的示意图;
图2为本发明的嵌入式处理器的宕机处理的第一实施例的流程示意图; 图3为本发明的嵌入式处理器宕机的处理方法和装置的第一实施例中宕机后处理程序的存储不意图。
【具体实施方式】
[0009]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0010]图2,是本发明的嵌入式处理器宕机的处理方法的第一实施例的流程示意图,该方法包括:
步骤Sll:软件存活检测。
[0011]本步骤中,软件模块基于请求?应答的模式,由控制端向被检测的处理器发送软件请求,要求处理器进行响应。
[0012]本步骤中,在控制端发出请求后,同时启动接收时间窗,如果在时间窗内未收到被检测端的响应,则记为一次检测超时,同时再次发送请求。在经过连续的多次检测超时后,即可认为处理器不存活。
[0013]示例性的,可以从控制端向被检测的处理器发送PING命令,或发送特定格式的数据字段。
[0014]步骤S12:硬件存活检测。
[0015]本步骤中,硬件存活检测基于侦听模式,即由跟被检测处理器连接的其它处理器或芯片,被动的检测处理器的活动状态,如检测处理器外部管脚上的电平变化。
[0016]硬件存活检测较软件存活检测有更严格的要求,如果在设定的时间窗内,一直未检测到处理器的活动状态变化,即可认为处理器不存活。
[0017]步骤S13:判定处理器是否存活。
[0018]本步骤中,根据Sll和S12的检测结果判定处理器是否存活。
[0019]步骤S14:处理器软复位。
[0020]本步骤中,当判定为处理器不存活后,触发处理器的软复位,使程序从启动代码开始重新执行。软复位的触发方式,可以通过与被检测处理器相连接的其它处理器来触发,或者直接使用跟处理器软复位管脚连接的其它可行方式。
[0021]步骤S15:读取硬件特征。
[0022]本步骤中,根据期望的后续处理流程,需要设定硬件特征,从而使启动代码选择相应的可执行程序。启动代码在最开始的最小运行环境中,需要读取硬件特征。硬件特征如处理器外部管脚的电平,处理器内部某个寄存器等。
[0023]步骤S16:判定是否进行宕机后处理。
[0024]本步骤中,当启动代码将根据硬件特征判定需要运行宕机后处理程序。
[0025]步骤S17:运行宕机后处理程序。
[0026]本步骤中,启动代码将跳转到宕机后处理程序执行。宕机后处理程序用于重新建立与控制端的通信链路,并且将处理器在宕机后的内存传送给控制端,开发人员再利用收集的内存信息对宕机的原因进行分析。
[0027]本发明实施例,为用户提供了嵌入式系统宕机后的分析手段,便于用户读取准确的获取处理宕机的原因,提高问题定位的效率。
[0028]上文对本发明中嵌入式系统的调试方法的实施例作了详细介绍。下面将相应于上述方法的调试装置作进一步阐述。
[0029]图3,是本发明的嵌入式系统的调试装置的第一实施例中宕机后处理程序的存储结构示意图,该装置100包括正常程序110、宕机后处理程序120。
[0030]其中,模块110,是用户的正常功能代码;模块120,是存储宕机后处理程序的预留的内存。在编译与链接宕机后处理程序时,需要指定程序的运行堆栈、数据段、代码段等所有内容,均只能在预留的内存中存在。
[0031]以上所述仅为本发明的较佳实施例而已,并不用于限定本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
【主权项】
1.一种嵌入式处理器宕机的处理方法,其特征在于,所述方法包括: 软件存活检测为后续处理器是否存活的判断提供第一依据; 硬件存活检测为后续处理器是否存活的判断提供第二依据; 处理器存活判断根据软件与硬件的检测结果决定处理器是否存活; 处理器软复位对宕机进行强制恢复,但不破坏处理器的运行环境; 处理器重新运行启动代码; 处理器根据硬件特征,决定是运行宕机后处理程序,或者重新运行正常程序。2.如权利要求1所述的方法,其特征在于,所述软件存活检测基于请求?应答的模式,即由控制端向被检测的处理器发送软件请求,要求处理器进行响应。3.如权利要求1所述的方法,其特征在于,所述软件存活检测在控制端发出请求后,同时启动接收时间窗,如果在时间窗内未收到被检测端的响应,则记为检测超时,同时再次发送请求; 所述软件存活检测在经过连续的多次检测超时后,即可认为处理器不存活。4.如权利要求1所述的方法,其特征在于,所述硬件存活检测基于侦听模式,由与被检测处理器连接的其它处理器或芯片,被动的检测处理器的活动状态; 所述的硬件存活检测在设定的时间窗内,一直未检测到处理器的活动状态变化,即可认为处理器不存活。5.如权利要求1所述的方法,其特征在于,当判定处理器不存活后,触发所述处理器的软复位,使程序从启动代码开始重新执行。6.如权利要求1所述的方法,其特征在于,所述根据期望的后续处理流程,需要设定硬件特征,从而使启动代码选择相应的可执行程序; 所述启动代码在最开始的最小运行环境中,需要读取硬件特征。7.如权利要求1所述的方法,其特征在于,所述宕机后处理程序当启动代码根据硬件特征判定需要运行时,程序将跳转到所述宕机后处理程序执行。8.如权利要求1所述的方法,其特征在于,所述宕机后处理程序的方法包括: 用于重新建立与控制端的通信链路; 将处理器宕机后的内存传送给控制端; 开发人员再利用收集的内存信息对宕机的原因进行分析。9.如权利要求1所述的方法,其特征在于,所述宕机后处理程序是在内存保留区域预存的代码; 所述内存保留区域需要在链接正常程序时,保留一段内存,在生成正常程序的可执行文件镜象后,将宕机后处理程序追加到预留的内存中。
【专利摘要】本发明涉及嵌入式系统领域,提供了一种基于硬件与软件共同检测并处理嵌入式处理器的宕机异常方法,提供了新的处理器宕机后处理手段,增强了嵌入式系统的可调测性,有利于准确、高效的定位嵌入式处理器宕机类的复杂问题。
【IPC分类】G06F11/07, G06F1/24, G06F9/445
【公开号】CN104991832
【申请号】CN201510344469
【发明人】何宗彬, 周果
【申请人】成都彬鸿科技有限公司
【公开日】2015年10月21日
【申请日】2015年6月20日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1