CN112948162A - 一种防止单片机死机的方法、装置、系统及存储介质 - Google Patents
一种防止单片机死机的方法、装置、系统及存储介质 Download PDFInfo
- Publication number
- CN112948162A CN112948162A CN202110275623.XA CN202110275623A CN112948162A CN 112948162 A CN112948162 A CN 112948162A CN 202110275623 A CN202110275623 A CN 202110275623A CN 112948162 A CN112948162 A CN 112948162A
- Authority
- CN
- China
- Prior art keywords
- layer
- period
- dog feeding
- feeding signal
- hardware
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 57
- 238000004891 communication Methods 0.000 claims description 16
- 238000004590 computer program Methods 0.000 claims description 5
- 230000002159 abnormal effect Effects 0.000 abstract description 4
- 230000007246 mechanism Effects 0.000 abstract description 4
- 230000008569 process Effects 0.000 description 10
- 230000006870 function Effects 0.000 description 7
- 238000001514 detection method Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 206010033799 Paralysis Diseases 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000005672 electromagnetic field Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error 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/0751—Error or fault detection not based on redundancy
- G06F11/0754—Error or fault detection not based on redundancy by exceeding limits
- G06F11/0757—Error 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)
- Debugging And Monitoring (AREA)
Abstract
本发明实施例公开了一种防止单片机死机的方法、装置、系统及存储介质。其中,该方法包括:应用层根据当前业务确定第一周期,并在第一周期内向驱动层发送喂狗信号;驱动层在第一周期内接收到应用层发送的喂狗信号,则在第二周期内向硬件层发送喂狗信号;硬件层在第二周期内未接收到驱动层发送的喂狗信号,则向单片机发送复位信号。本发明实施例提供的技术方案,能够解决传统看门狗中固定小周期复位机制的局限性,从而适应单片机多业务、多系统以及多调度的各类异常重启的需求,保证单片机正常运行。
Description
技术领域
本发明实施例涉及单片微型计算机应用领域,尤其涉及一种防止单片机死机的方法、装置、系统及存储介质。
背景技术
随着单片微型计算机(简称单片机)技术的发展,单片机已经广泛应用在工业控制、通讯、航空、智能家电、医疗和军事等各大领域。但是单片机在运行过程中,如果受到来自外界电磁场的干扰会出现死机现象,导致整个设备的系统陷入停滞状态,造成不可预计的后果。看门狗是防止单片机死机导致系统瘫痪的重要手段。
传统的看门狗在固定周期内没有接收到喂狗信号则向单片机发送复位信号,但是固定周期很短,无法适应单片机复杂耗时的大数据应用,并且很多单片机的高级应用都存在耗时不固定且超出固定周期的现象,例如,带操作系统应用的单片机启动时系统加载耗时在5~20秒,又如,多进程多线程复杂应用的单片机运行中时间资源分配不均匀会导致某些应用停滞的时间超出固定周期,而传统的看门狗无法解决上述问题。
目前,尚未有更好的方法解决单片机死机的问题。
发明内容
本发明实施例提供了一种防止单片机死机的方法、装置、系统及存储介质,能够解决传统看门狗中固定小周期复位机制的局限性,从而适应单片机多业务、多系统以及多调度的各类异常重启的需求,保证单片机正常运行。
第一方面,本发明实施例提供了一种防止单片机死机的方法,应用于防止单片机死机的系统,所述防止单片机死机的系统包括单片机和硬件层,所述单片机包括应用层和驱动层,所述应用层和所述驱动层通信相连,所述驱动层和所述硬件层通信连接,所述硬件层和所述单片机通信连接,该方法包括:
所述应用层根据当前业务确定第一周期,并在所述第一周期内向所述驱动层发送喂狗信号;
所述驱动层在所述第一周期内接收到所述应用层发送的喂狗信号,则在第二周期内向所述硬件层发送喂狗信号;
所述硬件层在所述第二周期内未接收到所述驱动层发送的喂狗信号,则向所述单片机发送复位信号。
第二方面,本发明实施例提供了一种防止单片机死机的装置,集成于防止单片机死机的系统,所述防止单片机死机的系统包括单片机和硬件层,所述单片机包括应用层和驱动层,所述应用层和所述驱动层通信相连,所述驱动层和所述硬件层通信连接,所述硬件层和所述单片机通信连接,该装置包括:
配置于所述应用层中的第一信号发送模块,用于根据当前业务确定第一周期,并在所述第一周期内向所述驱动层发送喂狗信号;
配置于所述驱动层中的第二信号发送模块,用于在所述第一周期内接收到所述应用层发送的喂狗信号,则在第二周期内向所述硬件层发送喂狗信号;
配置于所述硬件层中的第三信号发送模块,用于在所述第二周期内未接收到所述驱动层发送的喂狗信号,则向所述单片机发送复位信号。
第三方面,本发明实施例提供了一种防止单片机死机的系统,该系统包括:
单片机和硬件层,所述单片机包括应用层和驱动层,所述应用层和所述驱动层通信相连,所述驱动层和所述硬件层通信连接,所述硬件层和所述单片机通信连接;
所述防止单片机死机的系统用于执行本发明任意实施例所述的防止单片机死机的方法。
第四方面,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本发明任意实施例所述的防止单片机死机的方法。
本发明实施例提供了一种防止单片机死机的方法、装置、系统及存储介质,首先应用层根据当前业务确定第一周期,并在第一周期内向驱动层发送喂狗信号,接着驱动层在第一周期内接收到应用层发送的喂狗信号,则在第二周期内向硬件层发送喂狗信号,最后硬件层在第二周期内未接收到驱动层发送的喂狗信号,则向单片机发送复位信号。本发明实施例提供的技术方案,能够解决传统看门狗中固定小周期复位机制的局限性,从而适应单片机多业务、多系统以及多调度的各类异常重启的需求,保证单片机正常运行。
附图说明
图1为本发明实施例一提供的一种防止单片机死机的方法的流程图;
图2A为本发明实施例二提供的一种防止单片机死机的方法的流程图;
图2B为本发明实施例二提供的方法中应用层、驱动层、硬件层以及单片机之间进行交互的流程图;
图3为本发明实施例三提供的一种防止单片机死机的装置的结构示意图;
图4为本发明实施例四提供的一种防止单片机死机的系统的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例一
图1为本发明实施例一提供的一种防止单片机死机的方法的流程图,本实施例可适用于防止单片机死机以及保证单片机正常运行的情况。本实施例提供的防止单片机死机的方法可以由本发明实施例提供的防止单片机死机的装置来执行,该装置可以通过软件和/或硬件的方式实现,并集成在执行本方法的防止单片机死机的系统中。
参见图1,本实施例的方法包括但不限于如下步骤:
S110,应用层根据当前业务确定第一周期,并在第一周期内向驱动层发送喂狗信号。
其中,单片机中的应用层可以理解为根据项目的不同分别编写按键功能程序,属于最上层的程序,它使用的是驱动层提供的消息接口。单片机中的驱动层主要是对寄存器的数值进行操作,即无论硬件层是怎么接线的,驱动层都不需要考虑,只需要考虑寄存器的数值是什么,它的另外一个功能是为驱动层提供消息接口。
具体的,单片机在运行过程中,如果受到来自外界电磁场的干扰会出现死机现象,导致整个设备的系统陷入停滞状态,造成不可预计的后果。而看门狗是防止单片机死机导致系统瘫痪的重要手段,通过软硬件结合的方式实现对单片机系统运行状况的监控。看门狗的工作原理为:稳定运行的软件会在执行完特定指令后进行喂狗,若在一定周期内看门狗没有收到来自软件的喂狗信号,则认为系统故障,会进入中断处理程序或强制系统复位。由于应用层中包含了多种业务,而每个业务对应的周期可能不同,因此应用层根据当前业务能够确定出当前业务所对应的第一周期,并在第一周期内向驱动层发送喂狗信号,以便后续驱动层在第一周期内接收到应用层发送的喂狗信号,则在第二周期内向硬件层发送喂狗信号。
S120,驱动层在第一周期内接收到应用层发送的喂狗信号,则在第二周期内向硬件层发送喂狗信号。
其中,硬件层是驱动层的基础,可以理解为与实现单片机功能相关的硬件设施。
应用层在第一周期内向驱动层发送喂狗信号之后,驱动层确定在第一周期内接收到应用层发送的喂狗信号,则在第二周期内向硬件层发送喂狗信号,以便后续硬件层确定在第二周期内未接收到驱动层发送的喂狗信号,则向单片机发送复位信号,从而避免单片机出现死机现象,导致整个设备的系统陷入停滞状态,造成损失。
S130,硬件层在第二周期内未接收到驱动层发送的喂狗信号,则向单片机发送复位信号。
驱动层在第二周期内向硬件层发送喂狗信号之后,硬件层确定在第二周期内未接收到驱动层发送的喂狗信号,说明硬件层或者单片机可能出现了故障,则向单片机发送复位信号。
本实施例提供的技术方案,首先应用层根据当前业务确定第一周期,并在第一周期内向驱动层发送喂狗信号,接着驱动层在第一周期内接收到应用层发送的喂狗信号,则在第二周期内向硬件层发送喂狗信号,最后硬件层在第二周期内未接收到驱动层发送的喂狗信号,则向单片机发送复位信号,能够解决传统看门狗中固定小周期复位机制的局限性,从而适应单片机多业务、多系统以及多调度的各类异常重启的需求,保证单片机正常运行。
在一些实施例中,所述应用层根据当前业务确定第一周期,可以具体包括:所述应用层检测当前业务是否发生变化;若是,则所述应用层根据变化后的业务确定所述变化后的业务对应的执行时间,根据所述执行时间确定所述第一周期,以及发送配置第一周期的命令至所述驱动层,以使所述驱动层配置所述第一周期。
其中,第一周期可以理解为看门狗的周期。
具体的,应用层中存在各种业务,每种业务的执行时间有长有短,因此需要根据不同业务的执行时间配置看门狗的第一周期。应用层能够检测到当前业务是否发生变化,若应用层检测到当前业务发生变化,则根据变化后的业务确定变化后的业务对应的执行时间,确定变化后的业务对应的执行时间的方式可以为:根据变化后的业务的历史执行情况,确定历史每次执行过程所花费的时间,然后对这些时间求取平均值,得到该变化后的业务对应的执行时间,或者将变化后的业务在历史执行过程中所花费的时间最长的那次执行过程对应的时间确定为该变化后的业务对应的执行时间;还可以为:在应用层中存储不同业务分别对应的执行时间,例如以对应关系表的形式存储,当需要确定变化后的业务对应的第一周期时,直接查询这个表就能够得到,该对应关系表可以根据实际的业务需求提前设置。在得到了变化后的业务对应的执行时间之后,根据该执行时间能够确定第一周期,例如将执行时间加上预设时间之后得到的值确定为第一周期,其中,预设时间可以预先设置好,也可以根据实际情况而定,本实施例不作具体限制。并且应用层会发送配置第一周期的命令至驱动层,以使驱动层根据接收到的命令配置第一周期。相反,若应用层检测到当前业务未发生变化,则对应的第一周期不需要改变。
需要说明的是:确定变化后的业务对应的执行时间的方式还有很多种,本发明实施例不做具体限制。
本实施例中,应用层通过检测当前业务是否发生变化,在发生变化的时候重新确定第一周期,在未发生变化的时候,不改变第一周期,使得传统的看门狗中固定周期变为可变化的周期,从而适应很多单片机高级应用中存在的耗时不固定且超出固定周期的情况,例如,带操作系统应用的单片机启动时系统加载耗时在5~20秒之间,又如多进程多线程复杂应用的单片机运行中时间资源分配不均匀导致某些应用停滞的时间超出固定周期等。
在一些实施例中,所述驱动层在所述第一周期内未接收到所述应用层发送的喂狗信号,则不在第二周期内向所述硬件层发送喂狗信号,以使所述单片机进行复位。
本发明实施例中,通过驱动层在第一周期内未接收到应用层发送的喂狗信号,则不在第二周期内向硬件层发送喂狗信号,那么硬件层也不会接收到驱动层发送的喂狗信号,从而硬件层会向单片机发送复位信号,以使单片机进行复位,避免了单片机发生死机的情况。
在一些实施例中,在所述硬件层向所述单片机发送复位信号之后,还可以具体包括:所述单片机根据接收到的所述复位信号,控制所述单片机执行重启操作。
本发明实施例中,单片机根据接收到的复位信号,控制单片机执行重启操作,避免了单片机发生死机造成系统瘫痪,以及为用户节省了时间和效率。
实施例二
图2A为本发明实施例二提供的一种防止单片机死机的方法的流程图。本发明实施例是在上述实施例的基础上进行优化。可选的,本实施例对在驱动层在第一周期内接收到应用层发送的喂狗信号之前的过程以及在硬件层在第二周期内未接收到驱动层发送的喂狗信号之前的过程进行详细的解释说明。
参见图2A,本实施例的方法包括但不限于如下步骤:
S210,应用层根据当前业务确定第一周期,并在第一周期内向驱动层发送喂狗信号。
可选的,在应用层根据当前业务确定第一周期之前,还可以具体包括:应用层启动驱动层。
具体的,应用层可以向驱动层发送启动信号,从而启动驱动层。
本发明实施例中,通过在应用层中启动驱动层,便于后续驱动层管理软件看门狗、配置看门狗周期、检测驱动层是否接收到应用层的喂狗信号以及驱动层根据第一差值确定是否向硬件层发送喂狗信号。
进一步的,应用层在第一周期内向驱动层发送喂狗信号之后,还可以具体包括:应用层进行业务调度。
本发明实施例中,通过应用层进行业务调度,能够执行不同的业务,从而实现相应的功能。同时应用层进行业务调度之后,还要继续检测当前业务是否发生变化。
S220,驱动层开启中断定时器,并在中断定时器调度中检测是否接收到应用层发送的喂狗信号。
其中,中断定时器可以为由单片机中的定时器溢出而申请的中断,驱动层通过开启优先级最高的中断定时器运行独立的周期调度,在中断定时器调度中实现检测驱动层是否接收到应用层发送的喂狗信号以及驱动层是否要向硬件层发送喂狗信号。
需要说明的是:本实施例中,中断定时器调度能够反复执行,从而不断检测驱动层是否接收到应用层发送的喂狗信号。
具体的,驱动层能够开启中断定时器,并在中断定时器调度中不断的检测是否接收到应用层发送的喂狗信号,以便后续若驱动层接收到应用层发送的喂狗信号,则获取并记录应用层向驱动层发送喂狗信号的第一时刻。
可选的,在驱动层开启中断定时器之前,还可以具体包括:驱动层启动硬件层。
具体的,驱动层可以向硬件层发送启动信号,从而启动硬件层。
本发明实施例中,通过在驱动层中启动硬件层,便于后续硬件层管理硬件看门狗、检测硬件层是否接收到驱动层的喂狗信号以及硬件层是否向单片机发送复位信号。
S230,若驱动层接收到应用层发送的喂狗信号,则获取并记录应用层向驱动层发送喂狗信号的第一时刻。
具体的,如果驱动层接收到应用层发送的喂狗信号,则获取并记录应用层向驱动层发送喂狗信号的第一时刻,第一时刻能够用于计算驱动层多长时间没有接收到应用层发送的喂狗信号,以便后续驱动层将当前时刻与第一时刻相减,得到第一差值,并将第一差值与第一周期的大小进行比较,以确定驱动层在第一周期内是否接收到应用层发送的喂狗信号。
需要说明的是:由于应用层向驱动层发送喂狗信号的时刻和驱动层接收到应用层发送喂狗信号的时刻之间的时间差很小,因此可以忽略不计,那么应用层向驱动层发送喂狗信号的时刻可以等同于驱动层接收到应用层发送喂狗信号的时刻。
可选的,若驱动层未接收到应用层发送的喂狗信号,则将上一次应用层向驱动层发送喂狗信号的时刻作为第一时刻,以免第一时刻的记录出现错误,影响后续S240的执行。
S240,驱动层将当前时刻与第一时刻相减,得到第一差值,并将第一差值与第一周期的大小进行比较,以确定驱动层在第一周期内是否接收到应用层发送的喂狗信号。
驱动层将当前时刻与第一时刻相减之后,能够得到第一差值。驱动层将第一差值与第一周期的大小进行比较,能够确定驱动层在第一周期内是否接收到应用层发送的喂狗信号,具体可以为:若第一差值小于第一周期,则说明驱动层在第一周期内接收到应用层发送的喂狗信号;否则,说明驱动层在第一周期内未接收到应用层发送的喂狗信号。
S250,驱动层在第一周期内接收到应用层发送的喂狗信号,则在第二周期内向硬件层发送喂狗信号。
S260,硬件层在第二周期内未接收到驱动层发送的喂狗信号,则向单片机发送复位信号。
可选的,在所述硬件层在所述第二周期内未接收到所述驱动层发送的喂狗信号之前,还可以具体包括:所述硬件层控制看门狗使能,确定看门狗使能的周期为第二周期,并检测是否接收到所述驱动层发送的喂狗信号;若所述硬件层接收到所述驱动层发送的喂狗信号,则获取并记录所述驱动层向所述硬件层发送喂狗信号的第二时刻;所述硬件层将当前时刻与所述第二时刻相减,得到第二差值,并将所述第二差值与所述第二周期的大小进行比较,以确定所述硬件层在所述第二周期内是否接收到所述驱动层发送的喂狗信号。
其中,使能可以理解为启动。
具体的,如果第二差值大于第二周期,则说明硬件层在第二周期内未接收到驱动层发送的喂狗信号;如果第二差值小于或者等于第二周期,则说明硬件层在第二周期内接收到驱动层发送的喂狗信号。
本发明实施例中,硬件层将当前时刻与第二时刻相减,能够不断的得到第二差值,然后将第二差值与第二周期的大小进行比较,确定硬件层在第二周期内是否接收到驱动层发送的喂狗信号,最终所确定的结果也更准确,更加符合实际情况。
进一步的,若硬件层未接收到驱动层发送的喂狗信号,则将上一次驱动层向硬件层发送喂狗信号的时刻作为第二时刻,以免第二时刻的记录出现错误,影响所确定的硬件层在第二周期内是否接收到驱动层发送的喂狗信号的结果的准确性。
更进一步的,所述硬件层在所述第二周期内接收到所述驱动层发送的喂狗信号,则不向所述单片机发送复位信号,重新检测是否接收到所述驱动层发送的喂狗信号。
本发明实施例中,硬件层在第二周期内接收到驱动层发送的喂狗信号,说明此时单片机在正常工作,则不向单片机发送复位信号,重新检测是否接收到驱动层发送的喂狗信号,通过不断检测的过程,能够避免漏检和误判情况的发生。
具体的,图2B为本发明实施例二提供的方法中应用层、驱动层、硬件层以及单片机之间进行交互的流程图,参见图2B,该交互过程包括但不限于如下步骤:
S2001,发送启动信号。
S2002,检测当前业务是否发生变化。
若是,执行S2003;若否,执行S2005。
S2003,根据变化后的业务确定对应的执行时间,根据执行时间确定第一周期。
S2004,发送配置第一周期的命令,在第一周期内发送喂狗信号。
S2005,不改变第一周期。
S2006,在第一周期内发送喂狗信号。
S2007,进行业务调度。
S2008,发送启动信号。
S2009,开启中断定时器。
S2010,检测是否接收到喂狗信号。
若是,执行S2011;若否,执行S2012。
S2011,获取并记录应用层向驱动层发送喂狗信号的第一时刻。
S2012,将上一次应用层向驱动层发送喂狗信号的时刻作为第一时刻。
S2013,将当前时刻与第一时刻相减,得到第一差值,将第一差值与第一周期的大小进行比较,以确定在第一周期内是否接收到应用层发送的喂狗信号。
S2014,若接收到,则在第二周期内发送喂狗信号。
S2015,控制看门狗使能,确定看门狗使能的周期为第二周期。
S2016,检测是否接收到喂狗信号。
若是,执行S2017;若否,执行S2018。
S2017,获取并记录驱动层向硬件层发送喂狗信号的第二时刻。
S2018,将上一次驱动层向应用层发送喂狗信号的时刻作为第二时刻。
S2019,将当前时刻与第二时刻相减,得到第二差值,并将第二差值与第二周期的大小进行比较,以确定硬件层在第二周期内是否接收到驱动层发送的喂狗信号。
S2020,若未接收到,则发送复位信号。
本实施例提供的技术方案,首先应用层根据当前业务确定第一周期,并在第一周期内向驱动层发送喂狗信号,接着驱动层开启中断定时器,并在中断定时器调度中检测是否接收到应用层发送的喂狗信号,若驱动层接收到应用层发送的喂狗信号,则获取并记录应用层向驱动层发送喂狗信号的第一时刻,驱动层将当前时刻与第一时刻相减,得到第一差值,并将第一差值与第一周期的大小进行比较,以确定驱动层在第一周期内是否接收到应用层发送的喂狗信号,然后驱动层在第一周期内接收到应用层发送的喂狗信号,则在第二周期内向硬件层发送喂狗信号,最后硬件层在第二周期内未接收到驱动层发送的喂狗信号,则向单片机发送复位信号,通过驱动层中的中断定时器能够不断检测驱动层是否接收到应用层发送的喂狗信号,从而确定驱动层是否向硬件层发送喂狗信号,解决了传统看门狗中固定小周期复位机制的局限性,从而适应单片机多业务、多系统以及多调度的各类异常重启的需求,保证单片机正常运行。
实施例三
图3为本发明实施例三提供的一种防止单片机死机的装置的结构示意图,如图3所示,该装置可以包括:
配置于所述应用层中的第一信号发送模块310,用于根据当前业务确定第一周期,并在所述第一周期内向所述驱动层发送喂狗信号;
配置于所述驱动层中的第二信号发送模块320,用于在所述第一周期内接收到所述应用层发送的喂狗信号,则在第二周期内向所述硬件层发送喂狗信号;
配置于所述硬件层中的第三信号发送模块330,用于在所述第二周期内未接收到所述驱动层发送的喂狗信号,则向所述单片机发送复位信号。
本实施例提供的技术方案,首先应用层根据当前业务确定第一周期,并在第一周期内向驱动层发送喂狗信号,接着驱动层在第一周期内接收到应用层发送的喂狗信号,则在第二周期内向硬件层发送喂狗信号,最后硬件层在第二周期内未接收到驱动层发送的喂狗信号,则向单片机发送复位信号,能够解决传统看门狗中固定小周期复位机制的局限性,从而适应单片机多业务、多系统以及多调度的各类异常重启的需求,保证单片机正常运行。
进一步的,上述第一信号发送模块310,可以具体用于:所述应用层检测当前业务是否发生变化;若是,则所述应用层根据变化后的业务确定所述变化后的业务对应的执行时间,根据所述执行时间确定所述第一周期,以及发送配置第一周期的命令至所述驱动层,以使所述驱动层配置所述第一周期。
进一步的,上述防止单片机死机的装置,还可以包括:检测模块,用于所述驱动层开启中断定时器,并在中断定时器调度中检测是否接收到所述应用层发送的喂狗信号;第一时刻获取模块,用于若所述驱动层接收到所述应用层发送的喂狗信号,则获取并记录所述应用层向所述驱动层发送喂狗信号的第一时刻;比较模块,用于所述驱动层将当前时刻与所述第一时刻相减,得到第一差值,并将所述第一差值与所述第一周期的大小进行比较,以确定所述驱动层在所述第一周期内是否接收到所述应用层发送的喂狗信号。
进一步的,上述防止单片机死机的装置,还可以包括:复位模块,用于所述驱动层在所述第一周期内未接收到所述应用层发送的喂狗信号,则不在第二周期内向所述硬件层发送喂狗信号,以使所述单片机进行复位。
进一步的,上述防止单片机死机的装置,还可以包括:使能模块,用于所述硬件层控制看门狗使能,确定看门狗使能的周期为第二周期,并检测是否接收到所述驱动层发送的喂狗信号;第二时刻获取模块,用于若所述硬件层接收到所述驱动层发送的喂狗信号,则获取并记录所述驱动层向所述硬件层发送喂狗信号的第二时刻;信号接收模块,用于所述硬件层将当前时刻与所述第二时刻相减,得到第二差值,并将所述第二差值与所述第二周期的大小进行比较,以确定所述硬件层在所述第二周期内是否接收到所述驱动层发送的喂狗信号。
进一步的,上述防止单片机死机的装置,还可以包括:第一检测模块,用于所述硬件层在所述第二周期内接收到所述驱动层发送的喂狗信号,则不向所述单片机发送复位信号,重新检测是否接收到所述驱动层发送的喂狗信号。
进一步的,上述防止单片机死机的装置,还可以包括:重启模块,用于所述单片机根据接收到的所述复位信号,控制所述单片机执行重启操作。
本实施例提供的防止单片机死机的装置可适用于上述任意实施例提供的防止单片机死机的方法,具备相应的功能和有益效果。
实施例四
图4为本发明实施例四提供的一种防止单片机死机的系统的结构示意图,如图4所示,该系统包括单片机410和硬件层420,单片机410包括应用层4101和驱动层4102,应用层4101和驱动层4102通信相连,驱动层4102和硬件层420通信连接,硬件层420和单片机410通信连接。本实施例中应用层4101和驱动层4102、驱动层4102和硬件层420以及硬件层420和单片机410之间可以通过总线或其他方式连接,图4中以通过总线连接为例。
本实施例提供的一种防止单片机死机的系统可用于执行上述任意实施例提供的防止单片机死机的方法,具备相应的功能和有益效果。
实施例五
本发明实施例五还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本发明任意实施例中的防止单片机死机的方法,该方法具体包括:
所述应用层根据当前业务确定第一周期,并在所述第一周期内向所述驱动层发送喂狗信号;
所述驱动层在所述第一周期内接收到所述应用层发送的喂狗信号,则在第二周期内向所述硬件层发送喂狗信号;
所述硬件层在所述第二周期内未接收到所述驱动层发送的喂狗信号,则向所述单片机发送复位信号。
当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的防止单片机死机的方法中的相关操作。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器或者网络设备等)执行本发明各个实施例所述的方法。
值得注意的是,上述防止单片机死机的装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
以上所述仅为本发明的优选实施例,并不用于限制本发明,对于本领域技术人员而言,本发明可以有各种改动和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种防止单片机死机的方法,其特征在于,应用于防止单片机死机的系统,所述防止单片机死机的系统包括单片机和硬件层,所述单片机包括应用层和驱动层,所述应用层和所述驱动层通信相连,所述驱动层和所述硬件层通信连接,所述硬件层和所述单片机通信连接,所述方法包括:
所述应用层根据当前业务确定第一周期,并在所述第一周期内向所述驱动层发送喂狗信号;
所述驱动层在所述第一周期内接收到所述应用层发送的喂狗信号,则在第二周期内向所述硬件层发送喂狗信号;
所述硬件层在所述第二周期内未接收到所述驱动层发送的喂狗信号,则向所述单片机发送复位信号。
2.根据权利要求1所述的方法,其特征在于,所述应用层根据当前业务确定第一周期,包括:
所述应用层检测当前业务是否发生变化;
若是,则所述应用层根据变化后的业务确定所述变化后的业务对应的执行时间,根据所述执行时间确定所述第一周期,以及发送配置第一周期的命令至所述驱动层,以使所述驱动层配置所述第一周期。
3.根据权利要求1所述的方法,其特征在于,在所述驱动层在所述第一周期内接收到所述应用层发送的喂狗信号之前,还包括:
所述驱动层开启中断定时器,并在中断定时器调度中检测是否接收到所述应用层发送的喂狗信号;
若所述驱动层接收到所述应用层发送的喂狗信号,则获取并记录所述应用层向所述驱动层发送喂狗信号的第一时刻;
所述驱动层将当前时刻与所述第一时刻相减,得到第一差值,并将所述第一差值与所述第一周期的大小进行比较,以确定所述驱动层在所述第一周期内是否接收到所述应用层发送的喂狗信号。
4.根据权利要求1所述的方法,其特征在于,还包括:
所述驱动层在所述第一周期内未接收到所述应用层发送的喂狗信号,则不在第二周期内向所述硬件层发送喂狗信号,以使所述单片机进行复位。
5.根据权利要求1所述的方法,其特征在于,在所述硬件层在所述第二周期内未接收到所述驱动层发送的喂狗信号之前,还包括:
所述硬件层控制看门狗使能,确定看门狗使能的周期为第二周期,并检测是否接收到所述驱动层发送的喂狗信号;
若所述硬件层接收到所述驱动层发送的喂狗信号,则获取并记录所述驱动层向所述硬件层发送喂狗信号的第二时刻;
所述硬件层将当前时刻与所述第二时刻相减,得到第二差值,并将所述第二差值与所述第二周期的大小进行比较,以确定所述硬件层在所述第二周期内是否接收到所述驱动层发送的喂狗信号。
6.根据权利要求5所述的方法,其特征在于,还包括:
所述硬件层在所述第二周期内接收到所述驱动层发送的喂狗信号,则不向所述单片机发送复位信号,重新检测是否接收到所述驱动层发送的喂狗信号。
7.根据权利要求1所述的方法,其特征在于,在所述硬件层向所述单片机发送复位信号之后,还包括:
所述单片机根据接收到的所述复位信号,控制所述单片机执行重启操作。
8.一种防止单片机死机的装置,其特征在于,集成于防止单片机死机的系统,所述防止单片机死机的系统包括单片机和硬件层,所述单片机包括应用层和驱动层,所述应用层和所述驱动层通信相连,所述驱动层和所述硬件层通信连接,所述硬件层和所述单片机通信连接,所述装置包括:
配置于所述应用层中的第一信号发送模块,用于根据当前业务确定第一周期,并在所述第一周期内向所述驱动层发送喂狗信号;
配置于所述驱动层中的第二信号发送模块,用于在所述第一周期内接收到所述应用层发送的喂狗信号,则在第二周期内向所述硬件层发送喂狗信号;
配置于所述硬件层中的第三信号发送模块,用于在所述第二周期内未接收到所述驱动层发送的喂狗信号,则向所述单片机发送复位信号。
9.一种防止单片机死机的系统,其特征在于,包括:单片机和硬件层,所述单片机包括应用层和驱动层,所述应用层和所述驱动层通信相连,所述驱动层和所述硬件层通信连接,所述硬件层和所述单片机通信连接;
所述防止单片机死机的系统用于执行如权利要求1-7中任一所述的方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-7中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110275623.XA CN112948162A (zh) | 2021-03-15 | 2021-03-15 | 一种防止单片机死机的方法、装置、系统及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110275623.XA CN112948162A (zh) | 2021-03-15 | 2021-03-15 | 一种防止单片机死机的方法、装置、系统及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112948162A true CN112948162A (zh) | 2021-06-11 |
Family
ID=76229854
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110275623.XA Pending CN112948162A (zh) | 2021-03-15 | 2021-03-15 | 一种防止单片机死机的方法、装置、系统及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112948162A (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020184482A1 (en) * | 2001-05-31 | 2002-12-05 | John Lacombe | Application-level software watchdog timer |
KR20060062765A (ko) * | 2004-12-06 | 2006-06-12 | 엘지노텔 주식회사 | 이동통신 시스템에서 원격지 기지국에 대한 자동 리셋장치 및 그 방법 |
CN105242980A (zh) * | 2015-10-26 | 2016-01-13 | 上海斐讯数据通信技术有限公司 | 互补式看门狗系统及互补式看门狗的监测方法 |
CN108304275A (zh) * | 2018-01-09 | 2018-07-20 | 福州瑞芯微电子股份有限公司 | 一种检测安卓系统应用层异常的方法和装置 |
CN110262920A (zh) * | 2019-06-28 | 2019-09-20 | 广州鲁邦通物联网科技有限公司 | Linux系统外置看门狗间接喂狗方法、看门狗喂狗代理驱动模块、看门狗系统 |
CN110297724A (zh) * | 2019-06-27 | 2019-10-01 | 厦门四信通信科技有限公司 | 嵌入式软件看门狗设计方法、装置、设备及存储介质 |
CN110502369A (zh) * | 2019-08-20 | 2019-11-26 | 京信通信系统(中国)有限公司 | 一种设备死机恢复的方法、装置和存储介质 |
-
2021
- 2021-03-15 CN CN202110275623.XA patent/CN112948162A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020184482A1 (en) * | 2001-05-31 | 2002-12-05 | John Lacombe | Application-level software watchdog timer |
KR20060062765A (ko) * | 2004-12-06 | 2006-06-12 | 엘지노텔 주식회사 | 이동통신 시스템에서 원격지 기지국에 대한 자동 리셋장치 및 그 방법 |
CN105242980A (zh) * | 2015-10-26 | 2016-01-13 | 上海斐讯数据通信技术有限公司 | 互补式看门狗系统及互补式看门狗的监测方法 |
CN108304275A (zh) * | 2018-01-09 | 2018-07-20 | 福州瑞芯微电子股份有限公司 | 一种检测安卓系统应用层异常的方法和装置 |
CN110297724A (zh) * | 2019-06-27 | 2019-10-01 | 厦门四信通信科技有限公司 | 嵌入式软件看门狗设计方法、装置、设备及存储介质 |
CN110262920A (zh) * | 2019-06-28 | 2019-09-20 | 广州鲁邦通物联网科技有限公司 | Linux系统外置看门狗间接喂狗方法、看门狗喂狗代理驱动模块、看门狗系统 |
CN110502369A (zh) * | 2019-08-20 | 2019-11-26 | 京信通信系统(中国)有限公司 | 一种设备死机恢复的方法、装置和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106557369B (zh) | 一种多线程的管理方法及系统 | |
US7685347B2 (en) | Interrupt controller for invoking service routines with associated priorities | |
US20080271030A1 (en) | Kernel-Based Workload Management | |
Leyva-del-Foyo et al. | Predictable interrupt management for real time kernels over conventional PC hardware | |
EP3376381A1 (en) | Resource management method and system, and computer storage medium | |
CN108536531B (zh) | 一种基于单片机的任务调度和电源管理方法 | |
CN111580949B (zh) | 一种网络收包模式自动调节方法 | |
CN109558227B (zh) | 一种基于任务执行预算的单调速率任务调度方法 | |
CN105718257B (zh) | 基于嵌入式系统的定时器装置及定时方法 | |
CN113010275A (zh) | 一种中断处理方法和装置 | |
CN113986500A (zh) | 多任务系统中的任务确定性调度方法和任务诊断方法 | |
CN112948162A (zh) | 一种防止单片机死机的方法、装置、系统及存储介质 | |
CN107102582B (zh) | 一种子系统命令的同步方法及装置 | |
CN109964206B (zh) | 用于处理任务的设备和方法 | |
JPS62284437A (ja) | タスク管理方式 | |
CN105706022A (zh) | 一种预测处理器利用率的方法、处理装置和终端设备 | |
CN111176848B (zh) | 集群任务的处理方法、装置、设备和存储介质 | |
Yang et al. | Preemption control for energy-efficient task scheduling in systems with a DVS processor and Non-DVS devices | |
CN116775320B (zh) | 一种提高计算单元执行效率的方法、系统、设备及介质 | |
CN110968418A (zh) | 基于信号-槽的大规模有约束并发任务的调度方法与装置 | |
Hoffmann et al. | TIRUB: A Safety and Energy-Aware Scheduling Algorithm | |
US20240184635A1 (en) | Method, apparatus, device and medium for performing task in computing system | |
CN115952002A (zh) | 用于计算机控制的大任务处理系统 | |
JPH08137703A (ja) | タスク切替装置 | |
US20210141661A1 (en) | Lightweight Context For CPU Idling Using A Real Time Kernel |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |