复位方法及其装置的制作方法

文档序号:6370228阅读:118来源:国知局
专利名称:复位方法及其装置的制作方法
技术领域
本发明涉及片上系统领域,尤其涉及一种复位方法及其装置。
背景技术
随着集成电路生产制造工艺的不断发展,片上系统(System On Chip, S0C)中同样面积大小的单颗芯片上可以集成越来越多的复杂电路逻辑。在SOC出现异常时,为了防止SOC挂死,会触发异常复位,从而使得SOC中的电路逻辑自动恢复到确定的初始状态。目前,在SOC中,一旦SOC发生异常,会触发整 个SOC全局复位,即SOC中所有的电路逻辑和寄存器都恢复到SOC的上电复位初始状态,因此,缺少有效的方法对SOC异常复位问题进行定位。

发明内容
本发明的实施例提供一种复位方法及其装置,可以提供SOC异常复位发生时的现场信息,方便异常复位问题的定位。为解决上述技术问题,本发明的实施例采用如下技术方案一种复位方法,包括根据复位源选择复位方式,所述复位源包括上电复位和异常复位;当所述复位源为异常复位时,触发片上系统SOC内的处理器内核复位,以防止所述SOC挂死,并使所述SOC内的其他模块的寄存器保持所述异常复位发生时的值不变;读取所述其他模块的寄存器在所述异常复位发生时的值并保存;触发全局软复位使所述SOC恢复到确定的初始状态,以使所述SOC能够正常工作。一种复位装置,包括复位选择单元,用于根据复位源选择复位方式,所述复位源包括上电复位和异常复位;第一复位单元,用于当所述复位源为异常复位时,触发片上系统SOC内的处理器内核复位,以防止所述SOC挂死,并使所述SOC内的其他模块的寄存器保持所述异常复位发生时的值不变;保存单元,用于读取所述其他模块的寄存器在所述异常复位发生时的值并保存;第二复位单元,用于触发全局软复位使所述SOC恢复到确定的初始状态,以使所述SOC能够正常工作。本发明实施例提供的复位方法及其装置,与现有技术中异常复位发生时触发全局复位相比,保存SOC异常复位发生时的现场信息,方便了 SOC异常复位问题的定位。


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图I为本发明实施例提供中一种复位方法的流程图;图2为本发明实施例提供中另一种复位方法的流程图;图3为本发明实施例提供中另一种复位方法的流程图;图4为本发明实施例提供中一种复位装置的结构框图;图5为本发明实施例提供中另一种复位装置的结构框图。
具体实施例方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。如图I所示,本发明实施例提供了一种SOC的复位方法,包括步骤101、根据复位源选择复位方式,复位源包括上电复位和异常复位;具体地,上电复位是由外接电源管理单元(Power Management Unit, PMU)输出到SOC上电复位管脚的电平跳变触发,而异常复位是由SOC内部的看门狗(Watchdog)功能模块或其他功能模块触发。通过读取SOC中复位状态寄存器的值,可以获取上述复位源信息,因此可以根据复位源信息对复位方式进行选择。步骤102、当复位源为异常复位时,触发片上系统SOC内的处理器内核复位,以防止SOC挂死,并使SOC内的其他模块的寄存器保持异常复位发生时的值不变;具体地,处理器内核复位即使处理器内核的电路逻辑恢复到确定的初始状态,可以防止整个SOC挂死,同时除了处理器内核之外其他模块中寄存器未复位,从而使未复位的模块中寄存器的值保持不变。步骤103、读取上述其他模块的寄存器在异常复位发生时的值并保存;具体地,上述其他模块的寄存器在SOC异常复位发生时的值能够作为SOC异常发生时的现场信息,从而反映导致SOC发生异常的原因,因此可以在未复位时通过处理器内核读取上述其他模块的寄存器的值并保存起来。步骤104、触发全局软复位使SOC恢复到确定的初始状态,以使SOC能够正常工作。具体地,在获得SOC发生异常时的现场信息之后,触发SOC全局软复位,全局软复位具体是使SOC内部的电路逻辑和寄存器都恢复到确定的初始状态,从而确保SOC进入正常工作状态。在SOC进入正常工作状态后,可以读取之前保存的各模块的寄存器在异常复位发生时的值,从而根据异常复位发生时的现场信息,在不影响SOC正常工作的同时,对异常复位问题进行定位分析。根据以上描述,本发明实施例提供的复位方法,与现有技术中异常复位发生时触发全局复位相比,保存SOC异常复位发生时的现场信息,方便了 SOC异常复位问题的定位。如图2所示,进一步地,在触发全局软复位使SOC恢复到确定的初始状态,以使SOC能够正常工作的步骤之后,还包括
步骤105、读取上述其他模块的寄存器在SOC异常复位发生时的值,以便于对异常复位发生的原因进行定位分析。具体地,由于SOC此时已经恢复正常的工作状态,因此可以根据异常复位发生时的现场信息,在不影响SOC正常工作的同时,对异常复位问题进行定位分析。进一步地,还包括步骤106、当复位源为上电复位时,触发全局软复位以使SOC正常启动。具体地,在根据复位源选择复位方式之后,若判断复位源为上电复位,则进入SOC的正常启动流程即可。具体地,上述步骤103、读取上述其他模块的寄存器在异常复位发生时的值并保存的步骤包括
步骤1031、读取上述其他模块的寄存器在异常复位发生时的值,并保存到不受全局软复位控制的存储空间。具体地,上述不受全局软复位控制的存储空间可以是非易失性存储器或者硬盘、存储卡等。如图3所示,进一步地,在步骤103、读取上述其他模块的寄存器在异常复位发生时的值并保存的步骤之前,还可以包括步骤1021、触发用于使处理器内核访问上述其他模块的互联总线复位,以防止互联总线挂死。具体地,可以在触发处理器内核复位的同时触发互联总线复位,以防止互联总线挂死,从而使处理器内核无法访问上述其他模块并读取和保存寄存器的值。除了直接触发互联总线复位,还可以根据互联总线是否挂死来决定是否复位互联总线。需要说明的是,若SOC中包括调试专用逻辑电路,则无需触发互联总线复位,处理器内核通过调试专用逻辑电路访问上述各模块并读取和保存寄存器的值即可。调试专用逻辑电路在SOC正常工作模式下不作用,用于为处理器内核提供后门式的访问通路。其他具体的复位方法与上述实施例相同,在此不再赘述,本发明实施例提供的复位方法,与现有技术中异常复位发生时触发全局复位相比,可以在不影响SOC正常工作的同时,保存SOC异常复位发生时的现场信息,方便了 SOC异常复位问题的定位。如图4所示,本发明实施例还提供一种SOC的复位装置,包括复位选择单元1,用于根据复位源选择复位方式,复位源包括上电复位和异常复位;第一复位单元2,用于当所述复位源为异常复位时,触发片上系统SOC内的处理器内核复位,以防止SOC挂死,并使SOC内的其他模块的寄存器保持异常复位发生时的值不变;保存单元3,用于读取上述其他模块的寄存器在异常复位发生时的值并保存;第二复位单元4,用于触发全局软复位使SOC恢复到确定的初始状态,以使SOC能够正常工作。具体的复位方法与上述实施例相同,在此不再赘述,在SOC进入正常工作状态后,可以读取之前保存的各模块的寄存器在异常复位发生时的值,从而根据异常复位发生时的现场信息,在不影响SOC正常工作的同时,对异常复位问题进行定位分析。
根据以上描述,本发明实施例提供的复位装置,与现有技术中异常复位发生时触发全局复位相比,保存SOC异常复位发生时的现场信息,方便了 SOC异常复位问题的定位。进一步地,第一复位单元2还可以用于,在读取上述其他模块的寄存器在异常复位发生时的值并保存的步骤之前,触发用于使处理器内核访问上述其他模块的互联总线复位,以防止互联总线挂死。进一步地,保存单元3具体用于,读取上述其他模块的寄存器在异常复位发生时的值,并保存到不受所述全局软复位控制的存储空间如图5所示,上述复位装置还包括读取单元5,用于读取上述其他模块的寄存器在SOC异常复位发生时的值,以便于对异常复位发生的原因进行定位分析。进一步地,第二复位单元4还用于,当复位源为上电复位时,触发全局软复位以使SOC正常启动。进一步地,不受全局软复位控制的存储空间为非易失性存储器。具体的复位方法与上述实施例相同,在此不再赘述,本发明实施例提供的复位装置,与现有技术中异常复位发生时触发全局复位相比,可以在不影响SOC正常工作的同时,保存SOC异常复位发生时的现场信息,方便了 SOC异常复位问题的定位。通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘,硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。以上所述,仅为本发明的具体实施方式
,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。权利要求
1.一种复位方法,其特征在于,包括 根据复位源选择复位方式,所述复位源包括上电复位和异常复位; 当所述复位源为异常复位时,触发片上系统SOC内的处理器内核复位,以防止所述SOC挂死,并使所述SOC内的其他模块的寄存器保持所述异常复位发生时的值不变; 读取所述其他模块的寄存器在 所述异常复位发生时的值并保存; 触发全局软复位使所述SOC恢复到确定的初始状态,以使所述SOC能够正常工作。
2.根据权利要求I所述的复位方法,其特征在干, 在读取所述其他模块的寄存器在所述异常复位发生时的值并保存的步骤之前,还包括 触发用于使所述处理器内核访问所述其他模块的互联总线复位,以防止所述互联总线挂死。
3.根据权利要求I或2所述的复位方法,其特征在干, 所述读取所述其他模块的寄存器在所述异常复位发生时的值并保存的步骤包括读取所述其他模块的寄存器在所述异常复位发生时的值,并保存到不受所述全局软复位控制的存储空间。
4.根据权利要求3所述的复位方法,其特征在于,在所述触发全局软复位使所述SOC恢复到确定的初始状态,以使所述SOC能够正常工作的步骤之后,还包括 读取所述其他模块的寄存器在所述SOC异常复位发生时的值,以便于对所述异常复位发生的原因进行定位分析。
5.根据权利要求3所述的复位方法,其特征在干, 所述不受所述全局软复位控制的存储空间为非易失性存储器。
6.根据权利要求I至5任一所述的复位方法,其特征在于,还包括 当复位源为上电复位时,触发全局软复位以使所述SOC正常启动。
7.一种复位装置,其特征在于,包括 复位选择单元,用于根据复位源选择复位方式,所述复位源包括上电复位和异常复位; 第一复位单元,用于当所述复位源为异常复位时,触发片上系统SOC内的处理器内核复位,以防止所述SOC挂死,并使所述SOC内的其他模块的寄存器保持所述异常复位发生时的值不变; 保存単元,用于读取所述其他模块的寄存器在所述异常复位发生时的值并保存; 第二复位单元,用于触发全局软复位使所述SOC恢复到确定的初始状态,以使所述SOC能够正常工作。
8.根据权利要求7所述的复位装置,其特征在干, 所述第一复位单元还用于,在读取所述其他模块的寄存器在所述异常复位发生时的值并保存的步骤之前,触发用于使所述处理器内核访问所述其他模块的互联总线复位,以防止所述互联总线挂死。
9.根据权利要求7或8所述的复位装置,其特征在干, 所述保存単元具体用于,读取所述其他模块的寄存器在所述异常复位发生时的值,并保存到不受所述全局软复位控制的存储空间。
10.根据权利要求9所述的复位装置,其特征在于,还包括 读取单元,用于读取所述其他模块的寄存器在所述SOC异常复位发生时的值,以便于对所述异常复位发生的原因进行定位分析。
11.根据权利要求9所述的复位装置,其特征在干, 所述不受所述全局软复位控制的存储空间为非易失性存储器。
12.根据权利要求7至11任一所述的复位装置,其特征在干, 所述第二复位单元还用于,当复位源为上电复位时,触发全局软复位以使所述SOC正常启动。
全文摘要
本发明公开了一种复位方法及其装置,涉及片上系统领域,可以提供SOC异常复位发生时的现场信息,方便异常复位问题的定位。该复位方法包括根据复位源选择复位方式,所述复位源包括上电复位和异常复位;当所述复位源为异常复位时,触发片上系统SOC内的处理器内核复位,以防止所述SOC挂死,并使所述SOC内的其他模块的寄存器保持所述异常复位发生时的值不变;读取所述其他模块的寄存器在所述异常复位发生时的值并保存;触发全局软复位使所述SOC恢复到确定的初始状态,以使所述SOC能够正常工作。
文档编号G06F11/00GK102736957SQ20121016512
公开日2012年10月17日 申请日期2012年5月25日 优先权日2012年5月25日
发明者余剑锋, 卢华 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1