一种设置系统复位原因监控信息的方法以及监控方法

文档序号:6573935阅读:609来源:国知局
专利名称:一种设置系统复位原因监控信息的方法以及监控方法
技术领域
本发明涉及数据通信领域,尤其涉及的是,一种数据通信产品在应用中设置系统复位原因监控信息的方法以及监控方法。
背景技术
在数据通信领域中,产品在市场应用时会遇到系统由于某种原因复位重启了,数据通信产品复位的原因通常有如下几种断电复位、通过命令复位、软件发现设备异常自动复位、硬件狗叫复位、按复位按钮复位,由于系统复位了,所以复位原因很难通过常用的手段记录到系统日志中,这样事后就很难知道系统的复位原因,从而难以定位产品问题所在,因此不易提高产品的稳定性。
因此,现有技术存在缺陷,需要改进。

发明内容
本发明的目的在于提供一种设置系统复位原因监控信息的方法和监控系统复位原因的方法,用于在系统复位后分析原因,从而确定产品的问题所在。
本发明的技术方案如下一种设置系统复位原因监控信息的方法,其包括步骤A1、系统初始化时保留第一内存区,用于存储监控信息;A2、系统启动后,把系统在复位前所存储的所述监控信息复制到第二内存区;A3、对所述第一内存区进行清零,并把第一内存区的头两个WORD位置分别设置成第一魔术字和第二魔术字;A4、设置第一钩子函数,用于记录命令行操作复位设备的动作,当命令行操作复位设备时,所述第一钩子函数被触发,将所述第一内存区的第三个WORD位置设置为第三魔术字;A5、设置第二钩子函数,用于记录软件操作复位设备的动作,当软件操作复位设备时,所述第二钩子函数被触发,将所述第一内存区的第四个WORD位置设置为第四魔术字。
所述设置系统复位原因监控信息的方法,其中,步骤A3中,所述第一魔术字和第二魔术字分别设置为0xabcdef55、0x55fedcba。
所述设置系统复位原因监控信息的方法,其中,所述第四魔术字设置为与所述第三魔术字相同。
所述设置系统复位原因监控信息的方法,其中,步骤A4中,所述第三魔术字设置为0xaaaaaaaa。
一种监控系统复位原因的方法,其包括步骤B1、系统初始化时保留第一内存区,用于存储监控信息;B2、系统启动后,把系统在复位前所存储的所述监控信息复制到第二内存区;B3、对所述第一内存区进行清零,并把第一内存区的头两个WORD位置分别设置成第一魔术字和第二魔术字;B4、设置第一钩子函数,用于记录命令行操作复位设备的动作,当命令行操作复位设备时,所述第一钩子函数被触发,将所述第一内存区的第三个WORD位置设置为第三魔术字;B5、设置第二钩子函数,用于记录软件操作复位设备的动作,当软件操作复位设备时,所述第二钩子函数被触发,将所述第一内存区的第四个WORD位置设置为第四魔术字;B6、分析系统在复位前所存储的所述监控信息,得到系统复位的原因,所述监控信息存储在所述第二内存区中;具体包括以下步骤C1、判断头两个WORD位置是否所述第一魔术字和所述第二魔术字,是则执行步骤C2,否则确定为系统由断电导致的复位;C2、判断第三个WORD位置是否所述第三魔术字,是则确定为命令行操作复位,否则执行步骤C3;C3、判断第四个WORD位置是否所述第四魔术字,是则确定为软件操作复位设备,否则执行步骤C4;C4、确定为其他原因导致的系统复位。
所述监控系统复位原因的方法,其中,所述步骤C4具体包括确定为硬件狗叫或按复位按钮导致的系统复位。
所述监控系统复位原因的方法,其中,还包括步骤B7生成包含系统复位的原因信息的文件,并保存到掉电内容不丢失的存储装置中。
所述监控系统复位原因的方法,其中,步骤B3中,所述第一魔术字和第二魔术字分别设置为0xabcdef55、0x55fedcba。
所述监控系统复位原因的方法,其中,所述第四魔术字设置为与所述第三魔术字相同。
所述的监控系统复位原因的方法,其中,步骤B4中,所述第三魔术字设置为0xaaaaaaaa。
采用上述方案,本发明可以监控到系统复位的各种原因,为事后定位系统故障提供有效的记录信息,以便于定位系统问题,提高产品在应用中的稳定性。


图1为本发明的设置系统复位原因监控信息的方法流程图;图2为本发明的监控系统复位原因的方法流程图;图3为本发明监控系统复位原因的方法的一种实施方式的流程图。
具体实施例方式
以下对本发明的较佳实施例加以详细说明。
本发明主要利用了各数据通信产品的软硬件特性,具体说明如下。
内存非断电复位其内容不丢失的特性,由于内存在设备复位后里面所记录的信息是不会丢失的,还是复位前保留的原值,这就为本发明记录一些相关信息提供了一个高速的媒质,并且不会因为本发明加入监控信息影响系统的正常运行。如果断电复位设备则内存里的内容就会丢失,这就为本发明区分断电复位和硬件狗复位提供了依据,可以在内存记录区加入魔术字(magic number),通过校验魔术字来确定设备是否为断电复位。
嵌入式系统可以为用户保留部分内存的特性,数据通信产品使用的操作系统一般会为用户保留一部分内存,操作系统不会控制这块内存,而用户可以使用这一部分内存,这样当设备复位并再次启动后,本发明复位前记录的监控信息就不会被操作系统清理掉,为本发明根据这些监控信息确定上次复位的原因提供了支撑。
命令行复位系统和软件自复位系统的入口可控性特性,通过命令行复位系统,本发明可以在复位函数入口去加入钩子函数监控命令行复位动作,软件自复位操作系统也在底层提供了一个统一的复位函数,这样就可以在这里面加入钩子函数(hook)监控软件自复位的动作。
据此,如图1所示,本发明提供了一种设置系统复位原因监控信息的方法(简称设置方法),其包括以下步骤。
A1、系统初始化时保留第一内存区,用于存储监控信息;例如,保留至少四个字(Word)的区域,作为监控信息的存储区。
A2、系统启动后,把系统在复位前所存储的所述监控信息复制到第二内存区(即记录区);本发明对于第二内存区的大小不作限制,至少不得小于所述第一内存区即可,这样才能够存储第一内存区中所存储的所述监控信息。
A3、对所述第一内存区进行清零,并把第一内存区的头两个WORD位置分别设置成第一魔术字和第二魔术字;例如,可以将所述第一魔术字和第二魔术字分别设置为0xabcdef55、0x55fedcba。所述第一魔术字和第二魔术字可以分别占据1个字(Word)的位置,即两个字节(Byte)。通过两个魔术字占据两个WORD位置,可以避免内存短时间掉电内容不丢失,从而引起误判系统复位原因;当然也可以使用其它魔术字,只要能够避免内存短时间掉电内容不丢失从而引起误判系统复位原因的概率即可。
A4、设置第一钩子函数,用于记录命令行操作复位设备的动作,当命令行操作复位设备时,所述第一钩子函数被触发,将所述第一内存区的第三个WORD位置设置为第三魔术字;例如,可以将所述第三魔术字设置为0xaaaaaaaa。
A5、设置第二钩子函数,用于记录软件操作复位设备的动作,当软件操作复位设备时,所述第二钩子函数被触发,将所述第一内存区的第四个WORD位置设置为第四魔术字。其中,所述第四魔术字可以设置为与所述第三魔术字相同,例如,可以将第三魔术字和第四魔术字同时设置为0xaaaaaaaa。当然,也可以设置为不相同。
采用上述方法,对于系统的三种复位原因,进行了基本定义,设置了系统复位原因的监控信息,为分析系统复位原因提供了具体的参考。
同时,在所述设置方法的基础上,如图2所示,本发明还提供了一种监控系统复位原因的方法(简称监控方法),其包括步骤B1、系统初始化时保留第一内存区,用于存储监控信息;B2、系统启动后,把系统在复位前所存储的所述监控信息复制到第二内存区;B3、对所述第一内存区进行清零,并把第一内存区的头两个WORD位置分别设置成第一魔术字和第二魔术字;B4、设置第一钩子函数,用于记录命令行操作复位设备的动作,当命令行操作复位设备时,所述第一钩子函数被触发,将所述第一内存区的第三个WORD位置设置为第三魔术字;B5、设置第二钩子函数,用于记录软件操作复位设备的动作,当软件操作复位设备时,所述第二钩子函数被触发,将所述第一内存区的第四个WORD位置设置为第四魔术字;
B6、分析系统在复位前所存储的所述监控信息,得到系统复位的原因,所述监控信息存储在所述第二内存区中;具体包括以下步骤C1、判断头两个WORD位置是否所述第一魔术字和所述第二魔术字,是则执行步骤C2,否则确定为系统由断电导致的复位;C2、判断第三个WORD位置是否所述第三魔术字,是则确定为命令行操作复位,否则执行步骤C3;C3、判断第四个WORD位置是否所述第四魔术字,是则确定为软件操作复位设备,否则执行步骤C4;C4、确定为其他原因导致的系统复位。例如,确定为硬件狗叫或按复位按钮导致的系统复位。
在步骤B6之后,所述监控方法还包括步骤B7生成包含系统复位的原因信息的文件,并保存到掉电内容不丢失的存储装置中,用于之后的分析工作。
其中,步骤B1至B5,具体可以与上述设置方法中的步骤A1至A5相同或相似,例如,第一至第四魔术字的设置与上述第一至第四魔术字的具体设置方法相同。
如图3所示,是本发明的监控方法的一个具体实施例,分为如下步骤1.操作系统初始化时保留一块内存区域留给记录监控信息使用,操作系统不会控制这部分内容。
2.系统起来后把复位前系统记录的监控信息复制一份到另外一块内存区域(即记录区)以供分析使用。
3.先把记录区清零用来记录本次系统运行的信息,每次操作都要清零以保证本次监控记录不受上次影响。
4.把记录区的头两个WORD分别设置成魔术字0xabcdef55和0x55fedcba,必须使用双WORD,这样才能避免内存短时间掉电内容不丢失从而引起误判系统复位原因;也可以使用其它魔术字,但是同样必须避免内存短时间掉电内容不丢失从而引起误判系统复位原因的概率。
5.做一个钩子函数记录命令行操作函数复位设备的动作,如果使用命令行复位设备则这个钩子函数被触发就在记录区第三个WORD处设置为0xaaaaaaaa(标识例外状况未处理的异常的代码),也可以使用其它魔术字,但是同样必须避免内存短时间掉电内容不丢失从而引起误判系统复位原因的概率。
例如,记录命令行操作函数复位设备的动作的钩子函数如下void uasReloadRecord(){g_uas SystemMonitorInfo->uas_reload=0xaaaaaaaa;caeheFlush(DATA_CACHE,(char*)g_uasSystemMonitorInfo,sizeof(UAS_SYS_MON_INFO));}6.做一个钩子函数记录软件自复位操作函数复位设备的动作,如果使用软件自动复位设备则这个钩子函数被触发就在记录区第四个WORD处设置为0xaaaaaaaa,也可以与第三个WORD不相同,也可以使用其它魔术字,但是要注意避免内存短时间掉电内容不丢失从而引起误判系统复位原因的概率。
7.分析上次系统复位的记录信息,如图3所示,如果记录区头两个WORD不是魔术字0xabcdef55和0x55fedcba则系统由断电导致的复位;如果魔术字校验正确并且记录区第三个WORD处值为0xaaaaaaaa则系统上次复位原因为命令行复位;如果魔术字校验正确并且记录区第四个WORD处值为0xaaaaaaaa则系统上次复位原因为软件自动复位;如果魔术字校验正确但是记录区的第三个WORD处值不为0xaaaaaaaa并且第四个WORD处值不为0xaaaaaaaa则系统为硬件狗叫或者是按复位按钮导致的系统复位。
8.把分析过的复位信息用文件保存在flash上,也可以放到硬盘等掉电内容不丢失的存储装置上,以备后续分析。
综上,采用上述方案,本发明可以监控到系统复位的各种原因,为事后定位系统故障提供有效的记录信息,以便于定位系统问题,提高产品在应用中的稳定性。
应当理解的是,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,而所有这些改进和变换都应属于本发明所附权利要求的保护范围。
权利要求
1.一种设置系统复位原因监控信息的方法,其包括步骤A1、系统初始化时保留第一内存区,用于存储监控信息;A2、系统启动后,把系统在复位前所存储的所述监控信息复制到第二内存区;A3、对所述第一内存区进行清零,并把第一内存区的头两个WORD位置分别设置成第一魔术字和第二魔术字;A4、设置第一钩子函数,用于记录命令行操作复位设备的动作,当命令行操作复位设备时,所述第一钩子函数被触发,将所述第一内存区的第三个WORD位置设置为第三魔术字;A5、设置第二钩子函数,用于记录软件操作复位设备的动作,当软件操作复位设备时,所述第二钩子函数被触发,将所述第一内存区的第四个WORD位置设置为第四魔术字。
2.根据权利要求1所述设置系统复位原因监控信息的方法,其特征在于,步骤A3中,所述第一魔术字和第二魔术字分别设置为0xabcdef55、0x55fedcba。
3.根据权利要求1所述设置系统复位原因监控信息的方法,其特征在于,所述第四魔术字设置为与所述第三魔术字相同。
4.根据权利要求1或3所述设置系统复位原因监控信息的方法,其特征在于,步骤A4中,所述第三魔术字设置为0xaaaaaaaa。
5.一种监控系统复位原因的方法,其包括步骤B1、系统初始化时保留第一内存区,用于存储监控信息;B2、系统启动后,把系统在复位前所存储的所述监控信息复制到第二内存区;B3、对所述第一内存区进行清零,并把第一内存区的头两个WORD位置分别设置成第一魔术字和第二魔术字;B4、设置第一钩子函数,用于记录命令行操作复位设备的动作,当命令行操作复位设备时,所述第一钩子函数被触发,将所述第一内存区的第三个WORD位置设置为第三魔术字;B5、设置第二钩子函数,用于记录软件操作复位设备的动作,当软件操作复位设备时,所述第二钩子函数被触发,将所述第一内存区的第四个WORD位置设置为第四魔术字;B6、分析系统在复位前所存储的所述监控信息,得到系统复位的原因,所述监控信息存储在所述第二内存区中;具体包括以下步骤C1、判断头两个WORD位置是否所述第一魔术字和所述第二魔术字,是则执行步骤C2,否则确定为系统由断电导致的复位;C2、判断第三个WORD位置是否所述第三魔术字,是则确定为命令行操作复位,否则执行步骤C3;C3、判断第四个WORD位置是否所述第四魔术字,是则确定为软件操作复位设备,否则执行步骤C4;C4、确定为其他原因导致的系统复位。
6.根据权利要求5所述监控系统复位原因的方法,其特征在于,所述步骤C4具体包括确定为硬件狗叫或按复位按钮导致的系统复位。
7.根据权利要求5所述监控系统复位原因的方法,其特征在于,还包括步骤B7生成包含系统复位的原因信息的文件,并保存到掉电内容不丢失的存储装置中。
8.根据权利要求5所述监控系统复位原因的方法,其特征在于,步骤B3中,所述第一魔术字和第二魔术字分别设置为0xabcdef55、0x55fedcba。
9.根据权利要求5所述监控系统复位原因的方法,其特征在于,所述第四魔术字设置为与所述第三魔术字相同。
10.根据权利要求5或9所述的监控系统复位原因的方法,其特征在于,步骤B4中,所述第三魔术字设置为0xaaaaaaaa。
全文摘要
本发明提供了一种设置系统复位原因监控信息的方法和监控系统复位原因的方法,后者包括步骤系统初始化时保留第一内存区存储监控信息;系统启动后,把监控信息复制到第二内存区;对第一内存区进行清零,并把第一内存区的头两个WORD位置分别设置成第一魔术字和第二魔术字;设置第一钩子函数,当命令行操作复位设备,将第一内存区的第三个WORD位置设置为第三魔术字;设置第二钩子函数,当软件操作复位设备,将第一内存区的第四个WORD位置设置为第四魔术字;分析系统在复位前所存储的监控信息,得到系统复位的原因,监控信息存储在第二内存区中。从而可以为事后定位系统故障提供有效的记录信息,便于定位系统问题,提高产品的稳定性。
文档编号G06F11/36GK101071396SQ20071007518
公开日2007年11月14日 申请日期2007年6月22日 优先权日2007年6月22日
发明者胡文丰 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1