本发明专利技术公开了一种嵌入式设备的复位故障定位的实现方法,包括步骤:a.初始化存储器时,在随机存储器中划出一块区域作为保留内存;b.提供一个软复位钩子函数和一个看门狗复位钩子函数;c.设备复位,调用软复位钩子函数或者看门狗复位钩子函数,将复位信息写入保留内存;d.根据保留内存中的信息判断复位原因。本发明专利技术能够保存复位原因,定位因软件、硬件掉电、看门狗故障、CPU复位管脚收到复位信号导致的复位原因。
【技术实现步骤摘要】
本专利技术涉及。
技术介绍
嵌入式设备必须稳定可靠地工作,如果发生复位,是严重的故障,需要开发者准确定位原因。嵌入式设备的复位原因可以分为以下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,表明状态是已上电。以上所述仅为本专利技术的较佳实施例而已,并不用以限制本专利技术,凡 在本专利技术的精神和原则之内所作的任何修改、等同替换和改进等,均应 包含在本专利技术的保护范围之内。本文档来自技高网...
【技术保护点】
一种嵌入式设备的复位故障定位的实现方法,其特征在于,包括以下步骤:a、初始化存储器时,在随机存储器中划出一块区域作为保留内存;b、提供一个软复位钩子函数和一个看门狗复位钩子函数;c、设备复位,调用软复位钩子函数或者看门狗复位钩子函数,将复位信息写入保留内存;d、根据保留内存中的信息判断复位原因。
【技术特征摘要】
1、一种嵌入式设备的复位故障定位的实现方法,其特征在于,包括以下步骤a、初始化存储器时,在随机存储器中划出一块区域作为保留内存;b、提供一个软复位钩子函数和一个看门狗复位钩子函数;c、设备复位,调用软复位钩子函数或者看门狗复位钩子函数,将复位信息写入保留内存;d、根据保留内存中的信息判断复位原因。2、 如权利要求1所述的嵌入式设备的复位故障定位的实现方法, 其特征在于,所述方法还包括步骤e、在保留内存中写满已上电标 志。3、 如权利要求1所述的嵌入式设备的复位故障定位的实现方法, 其特征在于,所述步骤a还包括将保留内存划分为信息区和状态区。4、 如权利要求1所述的嵌入式设备的复位故障定位的实现方法, 其特征在于,所述步骤c中,软件复位时调用软复位钩子函数,将软 件复位时的系统信息写入保留内存信息区,并将保留内存状态区写满 已被软件复位标志;看门狗复位时调用看门狗复位钩子函数,将复 位时的系统信息写入保留内存信息区,并将保留内存状态区写满已 被看门狗复位标志。5、 如权利要求1所述的嵌入式设备的复位...
【专利技术属性】
技术研发人员:林晓翰,
申请(专利权)人:中兴通讯股份有限公司,
类型:发明
国别省市:94[中国|深圳]
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。