CN102637139A - 嵌入式系统喂狗的方法、装置及单板 - Google Patents

嵌入式系统喂狗的方法、装置及单板 Download PDF

Info

Publication number
CN102637139A
CN102637139A CN2012101089564A CN201210108956A CN102637139A CN 102637139 A CN102637139 A CN 102637139A CN 2012101089564 A CN2012101089564 A CN 2012101089564A CN 201210108956 A CN201210108956 A CN 201210108956A CN 102637139 A CN102637139 A CN 102637139A
Authority
CN
China
Prior art keywords
dog
feeding
feed
duration
processing unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN2012101089564A
Other languages
English (en)
Inventor
刘洪广
廖义祥
张羽
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN2012101089564A priority Critical patent/CN102637139A/zh
Publication of CN102637139A publication Critical patent/CN102637139A/zh
Priority to PCT/CN2012/083054 priority patent/WO2013152584A1/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/0757Error or fault detection not based on redundancy by exceeding limits by exceeding a time limit, i.e. time-out, e.g. watchdogs

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Power Sources (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种嵌入式系统喂狗的方法、装置及单板,涉及通信技术领域,为降低CPU负载,节省线程资源,同时解决由于CPU负载过高导致的系统误复位的问题而发明。所述方法包括:判断是否到达使能喂狗时刻值;当到达所述使能喂狗时刻值时,向喂狗装置发送喂狗使能消息。本发明主要应用于嵌入式系统的异常检测。

Description

嵌入式系统喂狗的方法、装置及单板
技术领域
本发明涉及通信技术领域,尤其涉及一种嵌入式系统喂狗的方法、装置及单板。
背景技术
看门狗是一种防止程序跑飞,陷入死循环的技术,广泛应用于嵌入式系统中,其在系统自动复位方面有着不可替代的作用。
嵌入式系统在上电开机后,需要先后经历引导(Boot loader)程序运行、内核(Kernel)程序运行以及应用程序运行几个阶段。在此期间当系统没有按时喂狗时,看门狗电路对系统进行复位,系统重新运行相应开机程序。目前,主要通过三种方式对看门狗电路进行喂狗:1)硬件喂狗2)软件喂狗3)软硬件结合喂狗。具体的,1)硬件喂狗通过一个包含计数器的物化电路板,定时向嵌入式系统输入高/低电平,从而达到定时喂狗防止系统复位的目的。2)软件喂狗通过在运行的程序中设置定时喂狗规则,从而达到定时喂狗防止系统复位的目的。3)软硬件结合喂狗在系统引导程序启动阶段使用硬件喂狗,在内核正常运行之后使用软件喂狗。
现有涉及软件喂狗的喂狗方式,需要建立线程执行喂狗动作,高频率的喂狗动作会增加中央处理器(Central Processing Unit,简称CPU)的负载,耗费线程资源。当CPU负载过大时,会延时建立喂狗的线程,容易丢失喂狗动作,导致系统误复位。
发明内容
本发明的实施例提供一种嵌入式系统喂狗的方法、装置及单板,能够降低CPU的负载,节省线程资源,同时解决由于CPU负载过高导致的系统误复位的问题。
一方面,本发明实施例提供了一种嵌入式系统喂狗的方法,包括:
判断是否到达使能喂狗时刻值;
当到达所述使能喂狗时刻值时,向喂狗装置发送喂狗使能消息。
另一方面,本发明实施例还提供了一种嵌入式系统喂狗的方法,包括:
接收中央处理器发送的喂狗使能消息;
根据所述喂狗使能消息、预设的喂狗时长以及预设的喂狗间隔,向所述中央处理器发送喂狗信号。
另一方面,本发明实施例提供了一种中央处理器,包括:
处理器,用于判断是否到达使能喂狗时刻值;
发送器,用于当所述处理器判断到达所述使能喂狗时刻值时,向喂狗装置发送喂狗使能消息;
另一方面,本发明实施例还提供了一种喂狗装置,包括:
接收器,用于接收中央处理器发送的喂狗使能消息;
发送器,用于根据所述接收器接收的所述喂狗使能消息、预设的喂狗时长以及预设的喂狗间隔,向所述中央处理器发送喂狗信号。
另一方面,本发明实施例提供了一种嵌入式系统喂狗的单板,包括:
中央处理器和喂狗装置,所述中央处理器和所述喂狗装置之间具有数据交互能力。
本发明实施例提供的嵌入式系统喂狗的方法、装置及单板,能够由中央处理器定时向喂狗装置发送喂狗使能信息,在每次发送喂狗使能信息后由喂狗装置完成多次喂狗动作。与现有技术中由中央处理器完成喂狗动作相比,能够将高频率的喂狗动作转移给喂狗装置处理,可以减少中央处理器的资源开销,避免由于中央处理器负载过高导致的喂狗动作丢失的问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例中嵌入式系统喂狗的方法的流程图;
图2为本发明实施例中另一个嵌入式系统喂狗的方法的流程图;
图3为本发明实施例中嵌入式系统喂狗的示意图;
图4为本发明实施例中另一个嵌入式系统喂狗的示意图;
图5为本发明实施例中再一个嵌入式系统喂狗的方法的流程图;
图6为本发明实施例中又一个嵌入式系统喂狗的方法的流程图;
图7为本发明实施例中中央处理器的结构示意图;
图8为本发明实施例中另一个中央处理器的结构示意图;
图9为本发明实施例中再一个中央处理器的结构示意图;
图10为本发明实施例中喂狗装置的结构示意图;
图11为本发明实施例中另一个喂狗装置的结构示意图;
图12为本发明实施例中嵌入式系统喂狗的单板的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供了一种嵌入式系统喂狗的方法,如图1所示,所述方法包括如下步骤:
101、判断是否到达使能喂狗时刻值。
所述使能喂狗时刻值具有周期性,在每次到达使能喂狗时刻值时,中央处理器向喂狗装置发送喂狗使能消息。
102、当到达使能喂狗时刻值时,向喂狗装置发送喂狗使能消息。
喂狗装置根据该喂狗使能消息,在接收到该喂狗使能消息到接收到下一次喂狗使能消息期间,向中央处理器多次发送喂狗信号。
本发明实施例提供的嵌入式系统喂狗的方法,能够由中央处理器定时向喂狗装置发送喂狗使能信息,在每次发送喂狗使能信息后由喂狗装置完成多次喂狗动作。与现有技术中由中央处理器完成喂狗动作相比,能够将高频率的喂狗动作转移给喂狗装置处理,可以节省中央处理器的线程资源,避免由于中央处理器负载过高导致的喂狗动作丢失的问题。
进一步的,本发明实施例还提供了一种嵌入式系统喂狗的方法,所述方法是对图1所示方法的进一步扩展,如图2所示,所述方法包括如下步骤:
201、设置喂狗持续时间、喂狗时长以及使能喂狗时刻值。
所述喂狗持续时间大于所述喂狗时长。例如可以设置喂狗持续时间为1000s(秒)、喂狗时长为200s,从初始喂狗时刻起,每间隔195s的时刻值为使能喂狗时刻值。所述喂狗持续时间为嵌入式系统从上电开机时刻到应用程序稳定运行时刻之间的时长,实际应用中,喂狗持续时间应稍长于该时长。
需要说明的是,所述喂狗持续时间和所述喂狗时长是相对时间段,所述使能喂狗时刻值是绝对时间点。所述使能喂狗时刻值可以以中央处理器中的时钟为时序进行设置,本发明实施例对此不做限制。
202、判断是否到达使能喂狗时刻值。
203、当到达使能喂狗时刻值时,向喂狗装置发送喂狗使能消息。
所述喂狗使能消息为喂狗指示或者喂狗时长消息。当喂狗使能消息为喂狗指示时,喂狗装置在接收到喂狗使能消息后,在预设的喂狗时长内向中央处理器发送喂狗信号,当喂狗使能消息为喂狗时长消息时,喂狗装置在接收到喂狗使能消息后,在喂狗时长消息中的喂狗时长内向中央处理器发送喂狗信号,此时可以不以预设的喂狗时长为准。
具体的,如图3所示,在系统上电开机时到达第一次使能喂狗时刻值(0s),此时向喂狗装置发送喂狗使能消息,该信息中喂狗时长为200s。当到达第二次使能喂狗时刻值(195s)时,再次向喂狗装置发送喂狗时长消息(200s),该信息用于指示喂狗装置在第200s到第400s之间继续向中央处理器发送喂狗信号。当到达第三次使能喂狗时刻值(390s)时,第三次向喂狗装置发送喂狗时长消息(200s),该信息用于指示喂狗装置在第400s到第600s之间继续向中央处理器发送喂狗信号,以此类推之。喂狗装置在喂狗时长内按照预设的喂狗间隔(或称为喂狗频率)向中央处理器发送喂狗信号。如果喂狗间隔为50ms(毫秒),则在一个喂狗时长内喂狗装置发送4000次喂狗信号。
在现有技术中,软件喂狗的方式是通过建立线程(包内核线程和应用线程)进行喂狗,发送一次喂狗信号需要建立一个喂狗线程。在图3所示的事例中在一段喂狗持续时间内(1000s),需要建立20000次喂狗线程。而本发明实施例中,在一段喂狗持续时间内只需为发送5次喂狗使能消息建立5次线程,而将发送喂狗信号的动作转移给了喂狗装置执行。由于喂狗装置独立于中央处理器,所以其发送喂狗信号不会增加中央处理器的负载。相对于现有技术而言,本发明实施例可以减少19995次线程的建立,能够大大减小中央处理器的负载,节省线程资源。
此外,当中央处理器的负载过大时,会延迟建立喂狗线程,当延迟的时间超过一个喂狗间隔时,就会发生喂狗动作遗漏的情况,从而导致中央处理器对系统进行错误复位。由于本发明实施例能够减小中央处理器的负载,所以还可以避免由于中央处理器负载过大导致的喂狗动作丢失的问题。
可选的,在发送喂狗使能消息之前,还可以判断喂狗持续时间是否结束,当喂狗持续时间结束时,停止向喂狗装置发送喂狗使能消息。喂狗装置在完成最后一个喂狗时长内的喂狗动作后,不再发送喂狗信号。
进一步的,可以在每次向喂狗装置发送喂狗时长之前,可以设置该喂狗时长,即在同一喂狗持续时间内的多个喂狗时长可以不相同。
本发明实施例是以从系统上电开机到应用程序稳定运行为喂狗持续时间进行说明的,此外还可以将嵌入式系统上电开机开始之后的时间划分为多个阶段,根据每个阶段的运行特点设置相应阶段的喂狗持续时间、喂狗时长以及使能喂狗时刻值。例如,可以顺序划分为如下多个阶段:引导(boot)启动阶段、boot运行阶段、boot调试阶段、内核(kernel)引导阶段、内核工作阶段、应用启动阶段以及应用运行阶段。所述根据每个阶段的运行特点设置相应阶段的喂狗持续时间、喂狗时长以及使能喂狗时刻值可以是:根据每个阶段的运行时间设置相应阶段的喂狗持续时间、喂狗时长以及使能喂狗时刻值。其中,喂狗持续时间应稍长于该阶段的运行时间,喂狗时长应小于对应的喂狗持续时间。各个阶段喂狗的实现方式可以参照图2所示的实现方式,并结合各阶段的时长特点进行实现,本发明实施例对此不再一一赘述。
进一步的,在应用运行阶段,还可以接收应用程序发送的高级喂狗使能消息并根据该高级喂狗使能消息向喂狗装置发送喂狗使能消息,从而实现喂狗装置监视内核线程、内核线程监视应用程序线程的目的。所述高级喂狗使能消息可以为喂狗指示或喂狗时长,当接收到高级喂狗使能消息后,向喂狗装置发送喂狗使能消息,该喂狗使能消息与图2中所述的喂狗使能消息以及后续实现方式相同,此处不再赘述。
再进一步的,在应用运行阶段,喂狗信号还可以由应用程序直接发送给内核,由此保证内核监视应用程序的正常运行。
更进一步的,在应用程序处理阶段(包括应用程序启动阶段和应用程序运行阶段),如果到达接收喂狗信号时刻却未接收到喂狗信号,则在对系统进行复位时,可以复位到应用程序启动阶段,由此可以节省从运行上电开机到内核工作阶段之间多个运行阶段重复运行的时间和资源。
在本发明实施例的一个应用场景中,针对系统不同阶段的运行特点,采用了软硬件相结合的方式进行喂狗,具体的,如图4所示:
1)boot启动阶段:该阶段是指系统上电后,中央处理器内部固化的代码自动加载flash中boot映像的过程。该阶段的特点是执行时间较短且执行时长基本固定(即flash读操作的时间)。根据该阶段的特点,采用硬件喂狗的方式,即喂狗装置发送喂狗信号,喂狗持续时间稍大于boot启动时间,当中央处理器未在接收时刻接收到喂狗信号时,对系统重新上电复位。
2)boot运行阶段:该阶段是指boot映像加载后启动运行的时间段。在该阶段boot程序已经正常运行,特别是中断服务函数已经可以正常使用。根据该阶段的特点,采用软件喂狗的方式,即boot程序按照预定的定时间隔向中央处理器发送中断服务函数(相当于喂狗信号),由此实现监视boot程序的运行情况,当boot运行异常时对系统重新上电复位。
3)boot调试阶段:该阶段是指boot程序进入调试模式,其特点与boot运行阶段相同,故喂狗方式也采用boot运行阶段的喂狗方式,此处不再赘述。
4)内核引导阶段:该阶段是指boot程序将内核映像拷贝到内存,以及内核映像开始运行到内核各项服务没有初始化之间的过程。该阶段中boot程序逐步退出运行,而内核也没有完全运行起来,结合其特点,采用图2所述的软硬件结合的方式喂狗,同时,确保喂狗持续时间大于内核加载与启动的时间之和。由此实现监视内核运行情况,当该阶段出现异常时,对系统重新上电复位。
5)内核工作阶段:内核正常运行后至应用程序启动之间的过程。该过程中内核中各项服务可以正常使用。该阶段的喂狗方式与图2所示的喂狗方式相同,此处不再赘述。
6)应用程序启动阶段:该阶段是指内核正常运行后至启动应用程序的过程。应用程序启动过程中需要做大量的监测工作以及初始化工作,耗时较长。该阶段的喂狗方式为硬件喂狗,即喂狗装置按照预设的喂狗持续时间、喂狗间隔发送喂狗信号。
7)应用程序运行阶段:应用程序运行阶段是指应用程序正常运行后的阶段。该阶段中,应用程序会启动一个线程专门负责看门狗事务处理,该线程主要负责向内核发送高级喂狗使能消息,并由内核根据该高级喂狗使能消息向喂狗装置发送喂狗使能消息,此后的实现方式与图2所示的实现方式相同。该喂狗方式可以实现喂狗装置监视内核线程,内核线程监视应用程序线程的作用。当应用程序出现异常时,复位对象为应用程序本身,即复位到应用程序启动阶段重新运行。
图4所示的喂狗方式,能够将系统上电后的阶段划分为多个子阶段,根据每个子阶段的特点,采取不同的喂狗方式。在节省了线程资源的同时,能够更加正确的监视系统运行情况。此外,图4所示的喂狗方式能够监视系统启动的所有阶段,系统在任何一个阶段僵死均可以被发现并复位。进一步的,还可以将嵌入式系统上电开机后的阶段划分为更加精细的子阶段是,并针对每个阶段的特点进行喂狗,本发明实施例对此不做限制。
需要说明的是,本发明实施例中所述内核可以等同理解为中央处理器,但中央处理器不应被等同理解为内核,这是由于在boot处理阶段,内核还未开始运行,此时接收喂狗信号以及复位系统的执行主体表述为中央处理器。
本发明实施例提供的嵌入式系统喂狗的方法,可以减少内核和应用程序的线程,降低线程资源的消耗,从而达到减小中央处理器负载的目的。同时,由于喂狗使能消息来自于内核或应用程序,所以与硬件喂狗的方式相比,软硬件结合的喂狗方式能够更加准确的监视程序运行的异常。
此外,本发明实施例提供的嵌入式系统喂狗的方法,还可以将系统复位到应用程序处理阶段之前,由此节省当应用程序异常时重新运行boot和内核处理阶段所消耗的时间和线程资源。
本发明实施例中的嵌入式系统包括但不仅限于基板管理控制器(BaseboardManagement Controller,简称BMC)系统,本发明实施例对此不做限制。
本发明实施例提供了一种嵌入式系统喂狗的方法,如图5所示,所述方法包括如下步骤:
501、接收中央处理器发送的喂狗使能消息。
在喂狗持续时间内,多次接收喂狗使能消息。
502、根据喂狗使能消息、预设的喂狗时长以及预设的喂狗间隔,向中央处理器发送喂狗信号。
当接收到喂狗使能消息后,在预设的喂狗时长内,根据预设的喂狗间隔向中央处理器多次发送喂狗信号。
当喂狗使能消息中含有喂狗时长消息时,在该喂狗时长内,根据预设的喂狗间隔向中央处理器多次发送喂狗信号。
本发明实施例提供的嵌入式系统喂狗的方法,能够定时接收喂狗使能信息,在接收到喂狗使能信息后完成多次喂狗动作。与现有技术中由中央处理器完成喂狗动作相比,将高频率的喂狗动作转移给喂狗装置处理,可以节省中央处理器的线程资源,避免由于中央处理器负载过高导致的喂狗动作丢失的问题。
进一步的,本发明实施例还提供了一种是嵌入式系统喂狗的方法,所述方法是对图5所示方法的进一步扩展,如图6所示,所述方法包括如下步骤:
601、设置喂狗持续时间以及喂狗间隔。
所述喂狗持续时间可以设置为1000s,所述喂狗间隔可以设置为50ms。
进一步的,还可以根据嵌入式系统上电后各个运行阶段的特点设置对应各个阶段的喂狗持续时间以及喂狗间隔。所述阶段可以顺序为:引导(boot)启动阶段、boot运行阶段、boot调试阶段、内核(kernel)引导阶段、内核工作阶段、应用启动阶段以及应用运行阶段。所述根据每个阶段的运行特点设置相应阶段的喂狗持续时间以及喂狗间隔可以是:根据每个阶段的运行时间设置相应阶段的喂狗持续时间以及喂狗间隔。其中,喂狗持续时间应稍长于阶段的运行时间。
602、接收中央处理器发送的喂狗使能消息。
在喂狗持续时间内,可以多次接收中央处理器发送的喂狗使能消息。
603、根据喂狗使能消息、预设的喂狗时长以及预设的喂狗间隔,向中央处理器发送喂狗信号。
当喂狗使能消息为喂狗指示时,根据喂狗使能消息、预设的喂狗时长以及预设的喂狗间隔,向中央处理器发送喂狗信号。当喂狗使能消息为喂狗时长消息时,根据喂狗使能消息中预设的喂狗时长消息以及预设的喂狗间隔,向中央处理器发送喂狗信号。
具体的,仍如图3所示,在系统上电开机时到达第一次使能喂狗时刻值(0s),此时接收喂狗使能消息,该消息中喂狗时长为200s。当到达第二次使能喂狗时刻值(195s)时,再次接收喂狗使能消息,该信息用于指示喂狗装置在第200s到第400s之间继续向中央处理器发送喂狗信号。当到达第三次使能喂狗时刻值(390s)时,第三次接收喂狗使能消息,该信息用于指示喂狗装置在第400s到第600s之间继续向中央处理器发送喂狗信号,以此类推之。喂狗装置在喂狗时长内按照预设的喂狗间隔(或称为喂狗频率)向中央处理器发送喂狗信号。如果喂狗间隔为50ms,则在一个喂狗时长内喂狗装置发送4000次喂狗信号。
在现有技术中,软件喂狗的方式是通过建立线程(包内核线程和应用线程)进行喂狗,发送一次喂狗信号需要建立一个喂狗线程。在图3所示的事例中在一段喂狗持续时间内(1000s),需要建立20000次喂狗线程。而本发明实施例中,在一段喂狗持续时间内只需为发送5次喂狗使能消息建立5次线程,而将发送喂狗信号的动作转移给了喂狗装置执行。由于喂狗装置独立于中央处理器,所以其发送喂狗信号不会增加中央处理器的负载。相对于现有技术而言,本发明实施例可以减少19995次线程的建立,能够大大减小中央处理器的负载,节省线程资源。
此外,当中央处理器的负载过大时,会延迟建立喂狗线程,当延迟的时间超过一个喂狗间隔时,就会发生喂狗遗漏的情况,从而导致中央处理器对系统进行错误复位。由于本发明实施例能够减小中央处理器的负载,所以还可以避免由于中央处理器负载过大导致的喂狗信号丢失的问题。
在本发明实施例的一个应用场景中,从嵌入式系统上电开机起划分为引导(boot)启动阶段、boot运行阶段、boot调试阶段、内核(kernel)引导阶段、内核工作阶段、应用启动阶段以及应用运行阶段。可以针对嵌入式系统上电后各个运行阶段的特点进行喂狗,其实现方式可以参考图6所示的实现方式并结合各阶段的特点进行实现,本发明实施例对此不再赘述。
在本发明实施例的另一个应用场景中,针对系统不同阶段的运行特点,采用了软硬件相结合的方式进行喂狗,具体的,与图4所示的实现方式相同,此处一并不再赘述。
进一步的,当喂狗持续时间结束时,停止发送喂狗信号。当喂狗持续时间未结束时,如果喂狗时长结束并且没有再次接收到喂狗使能消息时,同样停止向发送喂狗信号。此外还可以手动停止喂狗动作,在本发明实施例的一个应用场景中,当对某一个阶段进行软件喂狗时,需要关闭上一个阶段的喂狗装置,由此避免当系统僵死时,虽然软件喂狗动作停止,但上喂狗装置仍然进行喂狗导致的无法复位系统的问题。
本发明实施例提供的嵌入式系统喂狗的方法,可以减少内核和应用程序的线程,降低线程资源的消耗,从而达到减小中央处理器负载的目的。同时,由于喂狗使能消息来自于内核或应用程序,所以与硬件喂狗的方式相比,软硬件结合的喂狗方式能够更加准确的监视程序运行的异常。
本发明实施例中的嵌入式系统包括但不仅限于BMC系统,本发明实施例对此不做限制。
参考图2所示方法实施例的实现,本发明实施例提供了一种中央处理器,如图7所示,用以实现图2所示的方法实施例,所述中央处理器包括:处理器71、发送器72以及接收器73,其中,
所述处理器71,用于判断是否到达使能喂狗时刻值。
所述使能喂狗时刻值具有周期性,在每次到达使能喂狗时刻值时,所述发送器72向喂狗装置发送喂狗使能消息。
所述发送器72,用于当所述处理器71判断到达使能喂狗时刻值时,向喂狗装置发送喂狗使能消息。
喂狗装置根据该喂狗使能消息,在接收到该喂狗使能消息到接收到下一次喂狗使能消息期间,向中央处理器多次发送喂狗信号。
所述接收器73,用于接收喂狗信号。
进一步的,如图8所示,所述发送器72包括:
第一发送单元81,用于向喂狗装置发送喂狗指示。
第二发送单元82,用于向喂狗装置发送喂狗时长消息。
所述喂狗使能消息为喂狗指示或者喂狗时长消息。当喂狗使能消息为喂狗指示时,喂狗装置在预设的喂狗时长内向中央处理器发送喂狗信号,当喂狗使能消息为喂狗时长消息时,喂狗装置在喂狗时长消息中的喂狗时长内向中央处理器发送喂狗信号,此时可以不以预设的喂狗时长为准。
进一步的,所述处理器71还用于判断喂狗持续时间是否结束。
当所述处理器71判断喂狗持续时间结束时,所述发送器72还用于停止向喂狗装置发送喂狗使能消息。
在发送喂狗使能消息之前,还可以判断喂狗持续时间是否结束,当喂狗持续时间结束时,停止向喂狗装置发送喂狗使能消息。喂狗装置在完成最后一个喂狗时长内的喂狗动作后,不再发送喂狗信号。
进一步的,如图9所示,所述中央处理器还包括:
配置器91,用于根据嵌入式系统上电后各个运行阶段的特点设置对应各个阶段的喂狗持续时间、喂狗时长以及使能喂狗时刻值,其中喂狗持续时间大于喂狗时长。
所述喂狗持续时间大于所述喂狗时长。例如可以设置喂狗持续时间为1000s(秒)、喂狗时长为200s,从开始喂狗时刻起,每间隔195s的时刻值为使能喂狗时刻值。所述喂狗持续时间为嵌入式系统从上电开机时刻到应用程序稳定运行时刻之间的时长,实际应用中,喂狗持续时间应稍长于该时长。
需要说明的是,所述喂狗持续时间和所述喂狗时长是相对时间段,所述使能喂狗时刻值是绝对时间点。所述使能喂狗时刻值可以以中央处理器中的时钟为时序进行设置,本发明实施例对此不做限制。
进一步的,所述接收器73还用于接收应用线程发送的高级喂狗使能消息。
所述发送器72还用于根据所述接收器73接收的高级喂狗使能消息向喂狗装置发送喂狗使能消息。
在应用运行阶段,还可以接收应用程序发送的高级喂狗使能消息并根据该高级喂狗使能消息向喂狗装置发送喂狗使能消息,从而实现喂狗装置监视内核线程、内核线程监视应用程序线程的目的。所述高级喂狗使能消息可以为喂狗指示或者喂狗时长,当接收到高级喂狗使能消息时,向喂狗装置发送喂狗使能消息。
所述接收器73用于接收应用线程发送的喂狗信号。
在应用运行阶段,还可以直接接收应用程序发送的喂狗信号,由此保证内核监视应用程序的正常运行。
进一步的,所述处理器71还用于在应用程序处理阶段,当所述接收器73未按照预设喂狗间隔接收到喂狗信号时,将所述嵌入式系统复位到应用程序启动阶段。
在应用程序处理阶段(包括应用程序启动阶段和应用程序运行阶段),当到达接收喂狗信号时刻时,如果未接收到喂狗信号,在对系统进行复位时,可以复位到应用程序启动阶段,由此可以节省从上电开机到内核工作阶段之间,多个运行阶段重复运行的时间和资源。
本发明实施例提供的中央处理器,可以减少内核和应用程序的线程,降低线程资源的消耗,从而达到减小中央处理器负载的目的。同时,由于喂狗使能消息来自于内核或应用程序,所以与硬件喂狗的方式相比,软硬件结合的喂狗方式能够更加准确的监视程序运行的异常。
此外,本发明实施例提供的中央处理器,还可以将系统复位到应用程序处理阶段之前,由此节省当应用程序异常时重新运行boot和内核处理阶段所消耗的时间和线程资源。
本发明实施例中的嵌入式系统包括但不仅限于BMC系统,本发明实施例对此不做限制。
参考图6所示的方法实施例,本发明实施例提供了一种喂狗装置,如图10所示,用以实现图6所示的方法实施例,所述喂狗装置包括:接收器1001以及发送器1002,其中,
所述接收器1001,用于接收中央处理器发送的喂狗使能消息。
在喂狗持续时间内,所述接收器1001可以多次接收中央处理器发送的喂狗使能消息。
所述发送器1002,用于根据所述接收器1001接收的喂狗使能消息、预设的喂狗时长以及预设的喂狗间隔,向中央处理器发送喂狗信号。
进一步的,所述发送器1002具体用于根据喂狗使能消息以及预设的喂狗间隔,向中央处理器发送喂狗信号。
当喂狗使能消息为喂狗指示时,所述发送器1002根据喂狗使能消息、预设的喂狗时长以及预设的喂狗间隔,向中央处理器发送喂狗信号。当喂狗使能消息为喂狗时长消息时,所述发送器1002根据喂狗使能消息中预设的喂狗时长消息以及预设的喂狗间隔,向中央处理器发送喂狗信号。
进一步的,如图11所示,所述喂狗装置还包括:
配置器1101,用于根据嵌入式系统上电后各个运行阶段的特点设置对应各个阶段的喂狗持续时间以及喂狗间隔。
所述喂狗持续时间可以设置为1000s,所述喂狗间隔可以设置为50ms。
进一步的,还可以根据嵌入式系统上电后各个运行阶段的特点设置对应各个阶段的喂狗持续时间以及喂狗间隔。所述阶段顺序为:引导(boot)启动阶段、boot运行阶段、boot调试阶段、内核(kernel)引导阶段、内核工作阶段、应用启动阶段以及应用运行阶段。所述根据每个阶段的运行特点设置相应阶段的喂狗持续时间以及喂狗间隔可以是:根据每个阶段的运行时间设置相应阶段的喂狗持续时间以及喂狗间隔。其中,喂狗持续时间应稍长于阶段的运行时间。
进一步的,所述发送器1002还用于当喂狗持续时间结束时,停止向中央处理器发送喂狗信号;或者当喂狗时长结束并且所述接收器1001没有接收到中央处理器发送的喂狗使能消息时,停止向中央处理器发送喂狗信号。
如果喂狗持续时间已结束,则停止发送喂狗信号,如果喂狗时长结束并且没有再次接收到喂狗使能消息时,同样停止向发送喂狗信号。
本发明实施例提供的喂狗装置,可以减少内核和应用程序的线程,降低线程资源的消耗,从而达到减小中央处理器负载的目的。同时,由于喂狗使能消息来自于内核或应用程序,所以与硬件喂狗的方式相比,软硬件结合的喂狗方式能够更加准确的监视程序运行的异常。
本发明实施例中的嵌入式系统包括但不仅限于BMC系统,本发明实施例对此不做限制。
进一步的,参考上述图7至图11所述的实施例,本发明实施例提供了一种嵌入式系统喂狗的单板,如图12所示,所述单板包括中央处理器1201以及喂狗装置1202,其中,
所述中央处理器1201为上述图7至图9中任意一幅图所示的中央处理器,所述喂狗装置1202为图10或图11所示的喂狗装置。所述中央处理器1201和喂狗装置1202相连,能够进行数据交互。
本发明实施例提供的嵌入式系统喂狗的单板,可以减少内核和应用程序的线程,降低线程资源的消耗,从而达到减小中央处理器负载的目的。同时,由于喂狗使能消息来自于内核或应用程序,所以与硬件喂狗的方式相比,软硬件结合的喂狗方式能够更加准确的监视程序运行的异常。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘,硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

Claims (21)

1.一种嵌入式系统喂狗的方法,其特征在于,包括:
判断是否到达使能喂狗时刻值;
当到达所述使能喂狗时刻值时,向喂狗装置发送喂狗使能消息。
2.根据权利要求1所述的方法,其特征在于,所述向喂狗装置发送喂狗使能消息,包括:
向所述喂狗装置发送喂狗指示;或者,
向所述喂狗装置发送喂狗时长消息。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
判断喂狗持续时间是否结束;
当所述喂狗持续时间结束时,停止向所述喂狗装置发送喂狗使能消息。
4.根据权利要求3所述的方法,其特征在于,在所述判断是否到达使能喂狗时刻值之前,所述方法还包括:
根据所述嵌入式系统上电后各个运行阶段的特点设置对应各个阶段的喂狗持续时间、喂狗时长以及使能喂狗时刻值,所述喂狗持续时间大于所述喂狗时长。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
接收应用线程发送的高级喂狗使能消息;
根据所述高级喂狗使能消息向所述喂狗装置发送喂狗使能消息;或者,
接收所述应用线程发送的喂狗信号。
6.根据权利要求1至5中任意一项所述的方法,其特征在于,所述方法还包括:
在应用程序处理阶段,当未按照预设喂狗间隔接收到喂狗信号时,将所述嵌入式系统复位到应用程序启动阶段。
7.一种嵌入式系统喂狗的方法,其特征在于,包括:
接收中央处理器发送的喂狗使能消息;
根据所述喂狗使能消息、预设的喂狗时长以及预设的喂狗间隔,向所述中央处理器发送喂狗信号。
8.根据权利要求7所述的方法,其特征在于,当所述喂狗使能消息为喂狗时长消息时,所述根据所述喂狗使能消息、预设的喂狗时长以及预设的喂狗间隔,向所述中央处理器发送喂狗信号,包括:
根据所述喂狗使能消息以及所述预设的喂狗间隔,向所述中央处理器发送喂狗信号。
9.根据权利要求8所述的方法,其特征在于,所述方法还包括:
根据所述嵌入式系统上电后各个运行阶段的特点设置对应各个阶段的喂狗持续时间以及喂狗间隔。
10.根据权利要求9所述的方法,其特征在于,当所述喂狗持续时间结束时,停止向所述中央处理器发送喂狗信号;或者,
当所述喂狗时长结束并且没有接收到所述中央处理器发送的喂狗使能消息时,停止向所述中央处理器发送喂狗信号。
11.一种中央处理器,其特征在于,包括:
处理器,用于判断是否到达使能喂狗时刻值;
发送器,用于当所述处理器判断到达所述使能喂狗时刻值时,向喂狗装置发送喂狗使能消息;
接收器,用于接收喂狗信号。
12.根据权利要求11所述的中央处理器,其特征在于,所述发送器包括:
第一发送单元,用于向所述喂狗装置发送喂狗指示;
第二发送单元,用于向所述喂狗装置发送喂狗时长消息。
13.根据权利要求12所述的中央处理器,其特征在于,所述处理器还用于判断喂狗持续时间是否结束;
当所述处理器判断所述喂狗持续时间结束时,所述发送器还用于停止向所述喂狗装置发送喂狗使能消息。
14.根据权利要求13所述的中央处理器,其特征在于,所述中央处理器还包括:
配置器,用于根据所述嵌入式系统上电后各个运行阶段的特点设置对应各个阶段的喂狗持续时间、喂狗时长以及使能喂狗时刻值,所述喂狗持续时间大于所述喂狗时长。
15.根据权利要求14所述的中央处理器,其特征在于,所述接收器还用于接收应用线程发送的高级喂狗使能消息;
所述发送器还用于根据所述接收器接收的所述高级喂狗使能消息向所述喂狗装置发送喂狗使能消息;
所述接收器用于接收所述应用线程发送的喂狗信号。
16.根据权利要求11至15中任意一项所述的中央处理器,其特征在于,所述处理器还用于在应用程序处理阶段,当所述接收器未按照预设喂狗间隔接收到喂狗信号时,将所述嵌入式系统复位到应用程序启动阶段。
17.一种喂狗装置,其特征在于,包括:
接收器,用于接收中央处理器发送的喂狗使能消息;
发送器,用于根据所述接收器接收的所述喂狗使能消息、预设的喂狗时长以及预设的喂狗间隔,向所述中央处理器发送喂狗信号。
18.根据权利要求17所述的喂狗装置,其特征在于,所述发送器具体用于根据所述喂狗使能消息以及所述预设的喂狗间隔,向所述中央处理器发送喂狗信号。
19.根据权利要求18所述的喂狗装置,其特征在于,所述喂狗装置还包括:
配置器,用于根据所述嵌入式系统上电后各个运行阶段的特点设置对应各个阶段的喂狗持续时间以及喂狗间隔。
20.根据权利要求19所述的喂狗装置,其特征在于,所述发送器还用于当所述喂狗持续时间结束时,停止向所述中央处理器发送喂狗信号;或者,
当所述喂狗时长结束并且所述接收器没有接收到所述中央处理器发送的喂狗使能消息时,停止向所述中央处理器发送喂狗信号。
21.一种嵌入式系统喂狗的单板,其特征在于,所述单板包括:如权利要求11至16中任意一项所述的中央处理器,以及如权利要求17至20中任意一项所述的喂狗装置,其中所述中央处理器和所述喂狗装置之间具有数据交互能力。
CN2012101089564A 2012-04-13 2012-04-13 嵌入式系统喂狗的方法、装置及单板 Pending CN102637139A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN2012101089564A CN102637139A (zh) 2012-04-13 2012-04-13 嵌入式系统喂狗的方法、装置及单板
PCT/CN2012/083054 WO2013152584A1 (zh) 2012-04-13 2012-10-17 嵌入式系统喂狗的方法、装置及单板

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2012101089564A CN102637139A (zh) 2012-04-13 2012-04-13 嵌入式系统喂狗的方法、装置及单板

Publications (1)

Publication Number Publication Date
CN102637139A true CN102637139A (zh) 2012-08-15

Family

ID=46621540

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2012101089564A Pending CN102637139A (zh) 2012-04-13 2012-04-13 嵌入式系统喂狗的方法、装置及单板

Country Status (2)

Country Link
CN (1) CN102637139A (zh)
WO (1) WO2013152584A1 (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013152584A1 (zh) * 2012-04-13 2013-10-17 华为技术有限公司 嵌入式系统喂狗的方法、装置及单板
CN103645962A (zh) * 2013-12-18 2014-03-19 北京华环电子股份有限公司 基于NiosII系统的看门狗实现方法及装置
CN104679606A (zh) * 2015-03-18 2015-06-03 北京全路通信信号研究设计院有限公司 一种看门狗电路检测方法和装置
CN105279046A (zh) * 2015-11-04 2016-01-27 研华科技(中国)有限公司 一种提高嵌入式系统可靠性的方法
CN105550579A (zh) * 2016-02-02 2016-05-04 浪潮电子信息产业股份有限公司 一种基于tpcm实现bmc完整性度量的方法
CN104679606B (zh) * 2015-03-18 2018-02-09 北京全路通信信号研究设计院集团有限公司 一种看门狗电路检测方法和装置
CN110297724A (zh) * 2019-06-27 2019-10-01 厦门四信通信科技有限公司 嵌入式软件看门狗设计方法、装置、设备及存储介质
CN116302662A (zh) * 2023-05-22 2023-06-23 麒麟软件有限公司 一种ARMv8架构下基于Linux系统实现硬件看门狗的方法

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104899110A (zh) * 2015-06-05 2015-09-09 宁波三星智能电气有限公司 看门狗的设置及喂狗方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5513319A (en) * 1993-07-02 1996-04-30 Dell Usa, L.P. Watchdog timer for computer system reset
CN2713538Y (zh) * 2004-06-09 2005-07-27 港湾网络有限公司 看门狗控制电路
CN1908856A (zh) * 2005-08-05 2007-02-07 中兴通讯股份有限公司 一种复位电路装置
CN101271414A (zh) * 2008-05-06 2008-09-24 江苏东大金智建筑智能化系统工程有限公司 嵌入式系统的全程喂狗方法
CN101510165A (zh) * 2009-02-25 2009-08-19 华为技术有限公司 看门狗电路的喂狗方法、装置和单板

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101188828A (zh) * 2006-11-16 2008-05-28 中兴通讯股份有限公司 双处理器移动终端监控处理从处理器工作状态的方法
CN101751303B (zh) * 2008-12-17 2012-09-19 Tcl集团股份有限公司 一种嵌入式设备中的看门狗系统及其控制方法
CN201804321U (zh) * 2010-09-29 2011-04-20 南京安能电气控制设备有限公司 一种微机保护装置中的看门狗电路
CN102637139A (zh) * 2012-04-13 2012-08-15 华为技术有限公司 嵌入式系统喂狗的方法、装置及单板

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5513319A (en) * 1993-07-02 1996-04-30 Dell Usa, L.P. Watchdog timer for computer system reset
CN2713538Y (zh) * 2004-06-09 2005-07-27 港湾网络有限公司 看门狗控制电路
CN1908856A (zh) * 2005-08-05 2007-02-07 中兴通讯股份有限公司 一种复位电路装置
CN101271414A (zh) * 2008-05-06 2008-09-24 江苏东大金智建筑智能化系统工程有限公司 嵌入式系统的全程喂狗方法
CN101510165A (zh) * 2009-02-25 2009-08-19 华为技术有限公司 看门狗电路的喂狗方法、装置和单板

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013152584A1 (zh) * 2012-04-13 2013-10-17 华为技术有限公司 嵌入式系统喂狗的方法、装置及单板
CN103645962A (zh) * 2013-12-18 2014-03-19 北京华环电子股份有限公司 基于NiosII系统的看门狗实现方法及装置
CN104679606A (zh) * 2015-03-18 2015-06-03 北京全路通信信号研究设计院有限公司 一种看门狗电路检测方法和装置
CN104679606B (zh) * 2015-03-18 2018-02-09 北京全路通信信号研究设计院集团有限公司 一种看门狗电路检测方法和装置
CN105279046A (zh) * 2015-11-04 2016-01-27 研华科技(中国)有限公司 一种提高嵌入式系统可靠性的方法
CN105550579A (zh) * 2016-02-02 2016-05-04 浪潮电子信息产业股份有限公司 一种基于tpcm实现bmc完整性度量的方法
CN110297724A (zh) * 2019-06-27 2019-10-01 厦门四信通信科技有限公司 嵌入式软件看门狗设计方法、装置、设备及存储介质
CN116302662A (zh) * 2023-05-22 2023-06-23 麒麟软件有限公司 一种ARMv8架构下基于Linux系统实现硬件看门狗的方法

Also Published As

Publication number Publication date
WO2013152584A1 (zh) 2013-10-17

Similar Documents

Publication Publication Date Title
CN102637139A (zh) 嵌入式系统喂狗的方法、装置及单板
US9489213B2 (en) Shutdown method, startup method, and communication terminal
KR101248255B1 (ko) 모바일 네트워크 장치 배터리 보존 시스템 및 방법들
CN100541438C (zh) 一种控制看门狗电路复位的方法和装置
JP6457611B2 (ja) パワー・オーバー・イーサーネットのための電力調達機器、方法、及び装置
CN101324855B (zh) 辅助cpu工作状态的检测方法、系统、组件及多cpu设备
CN104601203A (zh) 一种低功耗蓝牙设备动态调整连接参数的方法及装置
CN101510165B (zh) 看门狗电路的喂狗方法、装置和单板
CN102508734A (zh) 操作系统恢复方法及智能设备
CN102891762B (zh) 连续处理网络数据的系统及方法
CN103605536A (zh) 一种嵌入式操作系统的启动方法、装置及基板管理控制器
CN110502369B (zh) 一种设备死机恢复的方法、装置和存储介质
CN101557307B (zh) 调度自动化系统应用状态管理方法
CN110764829B (zh) 一种多路服务器cpu隔离方法及系统
JP2008003735A (ja) 無停電電源装置に接続された情報処理システムの自動停止方式
CN102169451A (zh) 一种监控cpu运行的方法和装置
US7949898B2 (en) Multi-microprocessor system and control method for the same
CN108897248A (zh) 一种多cpu控制器和移动机器人
US20180329476A1 (en) Method for performing destination power management with aid of source data statistics in storage system, and associated apparatus
CN112822039B (zh) 双机热备系统主备模式切换的方法
CN110119111B (zh) 通信方法及装置、存储介质、电子装置
CN203858622U (zh) 双boot切换的实现装置
CN102412948A (zh) 数据震荡环境下的高可靠性备份的实现方法及装置
CN104536840A (zh) 一种看门狗计时器及其控制方法
CN108287670B (zh) 一种系统关机时保护数据的方法及bmc

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C12 Rejection of a patent application after its publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20120815