一种嵌入式设备的复位故障定位的实现方法

文档序号:6573730阅读:203来源:国知局
专利名称:一种嵌入式设备的复位故障定位的实现方法
技术领域
本发明涉及一种嵌入式设备的复位故障定位的实现方法。
背景技术
嵌入式设备必须稳定可靠地工作,如果发生复位,是严重的故障,
需要开发者准确定位原因。嵌入式设备的复位原因可以分为以下4类 看门狗复位、软件复位、硬件掉电复位、CPU复位管脚收到复位脉沖信 号。通常的方法是在软件复位时,通过软复位钩子函数,记录复位原 因。但是看门狗复位、硬件掉电复位、CPU复位管脚收到复位脉沖信号 都没有复位信息,无法区分和定位复位的原因。

发明内容
本发明所要解决的技术问题是提供一种嵌入式设备的复位故障定 位方法,定位因软件、硬件掉电、看门狗故障、CPU复位管脚收到复位
信号导致的复位原因。
为解决上述技术问题,本发明是通过以下技术方案实现的 一种嵌入式设备的复位故障定位的实现方法,包括以下步骤
a、 初始化存储器时,在随才踏储器中划出一块区域作为保留内存;
b、 提供一个软复位钩子函数和一个看门狗复位钩子函数;
c、 设备复位,调用软复位钩子函数或者看门狗复位钩子函数,将复位信息写入保留内存;
d、 4艮据保留内存中的信息判断复位原因。
其中,所述方法还包括步骤e、在保留内存中写满"已上电"标志。 其中,所述步骤a还包括将保留内存划分为信息区和状态区。 其中,所述步骤c中,软件复位时调用软复位钩子函数,将软件复 位时的系统信息写入保留内存信息区,并将保留内存状态区写满"已被 软件复位"标志;看门狗复位时调用看门狗复位钩子函数,将复位时的 系统信息写入保留内存信息区,并将保留内存状态区写满"已被看门狗 复位"标志。
其中,步骤d中所述判断复位原因的方法为 dl、若保留内存状态区的内容都是"已被看门狗复位"标志,则为看 门狗复位;
d2、若保留内存状态区的内容都是"已被软件复位"标志,则为软件 复位;
d3、若保留内存的状态区的内容都是"已上电"标志,则为CPU复位
管脚收到复位脉冲信号;
d4、若保留内存状态区的内容含有除了"已被看门狗复位"标志、"已
被软件复位"标志、"已上电,,标志以外的值,则为硬件掉电复位。
其中,所述步骤d还包括将复位原因写入嵌入式设备的运行日志。
其中,所述步骤d还包括将所述判断结果记录下来。
其中,所述保留内存的大小由实际需要和物理内存决定。
其中,所述保留内存专用于写复位信息,不被其它的写操作所访问。本发明具有如下有益效果
1) 复位后能够保存复位原因;
2) 能够定位因软件、硬件掉电、看门狗故障、CPU复位管脚收到 复位信号导致的复位原因。


图l是本发明定位方法的流程图。
具体实施例方式
下面结合附图和具体实施例对本发明作进一步详细的描述 图1所示为本发明定位方法的流程图,具体包括以下步骤
101、嵌入式设备上电,初始化存储器时,在RAM中划出一块区域, 用于记录嵌入式设备的复位信息,此区域称为保留内存,专用于写复位 信息,不被其它写操作所访问。然后再将保留内存划分为两个部分信 息区、状态区。保留内存的大小由实际需要和物理内存决定。
例如'.嵌入式设备的物理内存是32MB,地址空间是[O,Oxlffffff], 可设置保留内存的大小为20KB,地址范围是[OxlffbOOO, Oxlffiffi]。其 中,前10KB是信息区,地址范围是
,后10KB是 状态区,地址范围是地址范围是

102、 提供一个软复位钩子函数和一个看门狗复位钩子函数。
103、 嵌入式设备发生复位。
104、 软件复位时调用软复位钩子函数,将软件复位时的系统信息写 入保留内存信息区,并将保留内存状态区写满"已被软件复位"标志;看门狗复位时调用看门狗复位钩子函数,将复位时的系统信息写入保留内 存信息区,并将保留内存状态区写满"已被看门狗复位"标志。
例如软件复位时调用软复位钩子函数,在保留内存信息区首地址 OxlffbOOO写入系统信息,写入的长度小于等于10240字节。从保留内 存状态区首地址0xlffd800开始,连续写入 10240个 SOFT_REBOOT—STATUS,表明状态是"已被软件复位"。
看门狗复位时调用看门狗复位钩子函数,在保留内存信息区首地 址0xlf!b000写入系统信息,写入的长度小于等于10240字节。从保留 内存状态区首地址0xlffd800开始,连续写入10240个WATCHDOG —REBOOT—STATUS,表明状态是"已#錄门狗复位"。 其中,定义状态标志为
#defme SOFT—REBOOT—STATUS (unsigned char)Oxll #define WATCHDOG_REBOOT_STATUS (unsigned char)0x22 #define POWER_ON_STATUS (unsigned char)0x33 105、根据保留内存的信息区和状态区判断复位原因,记录复位原 因,还可以将复位原因写入嵌入式设备的运行日志。判断方法为
1) 若状态区的内容都是WATCHDOG_REBOOT—STATUS,则是看 门狗复位,再根据保留内存信息区判断复位的具体原因。
2) 若保留内存状态区的内容都是SOFT—REBOOT—STATUS,则是 软件复位,再根据保留内存信息区判断复位的具体原因。
3 )由于硬件掉电会导致RAM器件的存储内容变为随机值,只要保 留内存状态区
的内容含有一个或一个以上除了SOFT—REBOOT—STATUS、 WATCHDOG—REBOOT—STATUS 、 POWER_ON—STATUS以外的值,就是硬件掉电复位。
4 )若保留内存的状态区的内容都是POWER—ON—STATUS ,则是 CPU复位管脚收到复位脉冲信号。
106、嵌入式设备上电并判断复位原因后,在保留内存状态区写满 "已上电"标志。从保留内存状态区首地址0xlffd800开始,连续写入 10240个POWER_ON—STATUS,表明状态是"已上电"。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡 在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应 包含在本发明的保护范围之内。
权利要求
1、一种嵌入式设备的复位故障定位的实现方法,其特征在于,包括以下步骤a、初始化存储器时,在随机存储器中划出一块区域作为保留内存;b、提供一个软复位钩子函数和一个看门狗复位钩子函数;c、设备复位,调用软复位钩子函数或者看门狗复位钩子函数,将复位信息写入保留内存;d、根据保留内存中的信息判断复位原因。
2、 如权利要求1所述的嵌入式设备的复位故障定位的实现方法, 其特征在于,所述方法还包括步骤e、在保留内存中写满"已上电"标 志。
3、 如权利要求1所述的嵌入式设备的复位故障定位的实现方法, 其特征在于,所述步骤a还包括将保留内存划分为信息区和状态区。
4、 如权利要求1所述的嵌入式设备的复位故障定位的实现方法, 其特征在于,所述步骤c中,软件复位时调用软复位钩子函数,将软 件复位时的系统信息写入保留内存信息区,并将保留内存状态区写满 "已被软件复位"标志;看门狗复位时调用看门狗复位钩子函数,将复 位时的系统信息写入保留内存信息区,并将保留内存状态区写满"已 被看门狗复位"标志。
5、 如权利要求1所述的嵌入式设备的复位故障定位的实现方法,其特征在于,步骤d中所述判断复位原因的方法为dl、若保留内存状态区的内容都是"已被看门狗复位"标志,则为 看门狗复位;d2、若保留内存状态区的内容都是"已被软件复位"标志,则为软 件复位;d3、若保留内存的状态区的内容都是"已上电"标志,则为CPU 复位管脚收到复位脉沖信号;d4、若保留内存状态区的内容含有除了"已#:看门狗复位"标志、"已被软件复位"标志、"已上电"标志以外的值,则为硬件掉电复位。
6、 如权利要求1所述的嵌入式设备的复位故障定位的实现方法, 其特征在于,所述步骤d还包括将复位原因写入嵌入式设备的运行 曰志。
7、 如权利要求1所述的嵌入式设备的复位故障定位的实现方法, 其特征在于,所述步骤d还包括将所述判断结果记录下来。
8、 如权利要求1至5中任一所述的嵌入式设备的复位故障定位 的实现方法,其特征在于,所述保留内存的大小由实际需要和物理内 存决定。
9、 如权利要求1至5中任一所述的嵌入式设备的复位故障定位 的实现方法,其特征在于,所述保留内存专用于写复位信息,不被其 它的写才喿作所访问。
全文摘要
本发明公开了一种嵌入式设备的复位故障定位的实现方法,包括步骤a.初始化存储器时,在随机存储器中划出一块区域作为保留内存;b.提供一个软复位钩子函数和一个看门狗复位钩子函数;c.设备复位,调用软复位钩子函数或者看门狗复位钩子函数,将复位信息写入保留内存;d.根据保留内存中的信息判断复位原因。本发明能够保存复位原因,定位因软件、硬件掉电、看门狗故障、CPU复位管脚收到复位信号导致的复位原因。
文档编号G06F11/36GK101286130SQ20071007383
公开日2008年10月15日 申请日期2007年4月11日 优先权日2007年4月11日
发明者林晓翰 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1