CN116521420A - 一种基于看门狗防范多任务流程跑飞的处理方法及装置 - Google Patents

一种基于看门狗防范多任务流程跑飞的处理方法及装置 Download PDF

Info

Publication number
CN116521420A
CN116521420A CN202310564087.4A CN202310564087A CN116521420A CN 116521420 A CN116521420 A CN 116521420A CN 202310564087 A CN202310564087 A CN 202310564087A CN 116521420 A CN116521420 A CN 116521420A
Authority
CN
China
Prior art keywords
feeding
signal
watchdog
dog
register
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
CN202310564087.4A
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.)
Yiyue Qihan Shanghai Technology Co ltd
Original Assignee
Yiyue Qihan Shanghai Technology 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 Yiyue Qihan Shanghai Technology Co ltd filed Critical Yiyue Qihan Shanghai Technology Co ltd
Priority to CN202310564087.4A priority Critical patent/CN116521420A/zh
Publication of CN116521420A publication Critical patent/CN116521420A/zh
Pending legal-status Critical Current

Links

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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/24Resetting means
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

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

Abstract

本发明实施例涉及一种基于看门狗防范多任务流程跑飞的处理方法及装置,通过在多任务流程的代码起始段设置看门狗配置代码段;并在多个子任务中设置喂狗代码段;在运行过程中通过看门狗配置代码段对看门狗模块进行初始化处理;并在运行过程中通过各个喂狗代码段对看门狗模块进行喂狗信号发送处理;并在运行过程中通过看门狗模块对多个子任务对应的多个喂狗通道进行轮询监控;在运行过程中对看门狗模块是否输出复位信号进行识别,若是则确认多任务流程在运行过程中发生跑飞故障。本发明通过对多任务流程中多个子任务对应的多路喂狗信号进行轮询监控,无需增加额外监控即可实现对多任务流程的监控。

Description

一种基于看门狗防范多任务流程跑飞的处理方法及装置
技术领域
本发明涉及看门狗技术领域,特别涉及一种基于看门狗防范多任务流程跑飞的处理方法及装置。
背景技术
在单任务软件流程使用看门狗对单任务流程进行监控,若没有在设定的时间内完成喂狗操作就会产生复位(狗咬)事件,从而达到监控单任务软件执行流程的目的,而在多任务软件流程中,多个子任务并发执行,需要对每个子任务进行监控。如果只是在每个子任务中按照单任务流程的监控方式设置喂狗操作来监控是否在规定时间内喂狗,可能会出现只要多个子任务中任意一个子任务正确地执行了喂狗操作,即使其它子任务未准确执行,也不会产生狗咬事件,除非所有的子任务都发生故障。因此,无法达到对每一个子任务都进行监控的目的。
对于上述问题,现有的看门狗方案只能通过创建一个监视任务来实现多任务流程的看门狗监控。监视任务的优先级高于其它被监视的子任务群,若监视任务检测到子任务群中每一个子任务都正常工作则按要求进行喂狗操作,反之任意一个子任务出现故障,监视任务就会停止喂狗操作,以此引发狗咬事件发生,从而达到系统自动复位的目的。
但现有的通过增加监视任务的方式解决多任务流程监控的问题仍存在一些不足,由于增加了额外的监视任务,因此整个系统的开销随之增加;监视任务与其它子任务一样,同样会存在因自身故障导致不能及时喂狗的问题,从而错误的触发了狗咬事件的可能;无法监控到子任务跑飞后却刚好跑飞至监视任务中执行了喂狗操作;同时,由于监视任务的优先级高于其它子任务的优先级,因而降低了系统的实时性。
发明内容
本发明的目的,就是针对现有技术的不足,提供一种基于看门狗防范多任务流程跑飞的处理方法及装置,通过将喂狗信号设置成多路,对每路喂狗信号设置不同的通道编号加以区分,每个子任务对应一路喂狗操作,并对多路喂狗信号进行轮询监控,从而实现同时监控多任务流程中的多个子任务的喂狗信号,并且不需要增加额外的监视任务。
为实现上述目的,本发明实施例第一方面提供了一种基于看门狗防范多任务流程跑飞的处理方法,所述方法包括:
在多任务流程的代码起始段设置看门狗配置代码段;
在所述多任务流程的多个子任务中设置喂狗代码段;
运行所述多任务流程;并在运行过程中通过所述看门狗配置代码段对看门狗模块进行初始化处理;并在运行过程中通过各个所述喂狗代码段对所述看门狗模块进行喂狗信号发送处理;并在运行过程中通过所述看门狗模块对所述多个子任务对应的多个喂狗通道进行轮询监控;并在运行过程中对所述看门狗模块是否输出复位信号进行识别,若是则确认所述多任务流程在运行过程中发生跑飞故障。
优选的,所述看门狗配置代码段包括:
时钟配置代码行,所述时钟配置代码行的参数包括时钟编号和预分频系数;所述看门狗模块根据所述时钟编号选择时钟源,并根据所述预分频系数对所述时钟源进行分频处理;
工作模式配置代码行,所述工作模式配置代码行的参数包括工作模式参数;所述看门狗模块根据所述工作模式参数设置所述看门狗模块的工作模式;所述工作模式包括单线程模式和多线程模式;
捕捉方式配置代码行,所述捕捉方式配置代码行的参数包括捕捉方式参数;所述看门狗模块根据所述捕捉方式参数设置所述看门狗模块的信号捕捉方式;所述信号捕捉方式包括上升沿捕捉方式和高电平捕捉方式;
多个喂狗通道配置代码行,每个所述喂狗通道配置代码行的参数包括喂狗信号编号和喂狗通道编号,用于将所述喂狗信号编号对应的喂狗信号与所述喂狗通道编号对应的喂狗通道进行绑定;
多个喂狗时间窗口配置代码行,每个所述喂狗时间窗口配置代码行的参数包括喂狗通道编号、喂狗时间窗口上限值和喂狗时间窗口下限值,用于设置所述喂狗通道编号对应的喂狗通道的喂狗时间窗口上限值和喂狗时间窗口下限值;
多个喂狗时间片配置代码行,每个所述喂狗时间片配置代码行的参数包括喂狗通道编号和喂狗时间片值,用于设置所述喂狗通道编号对应的喂狗通道的喂狗时间片值;
所述喂狗代码段为单行代码行,所述喂狗代码段的参数包括喂狗通道编号,用于执行所述喂狗通道编号对应的喂狗通道的喂狗操作。
进一步优选的,所述看门狗配置代码段还包括:
使能时钟代码行,用于使能所述时钟源;
使能喂狗信号代码行,所述使能喂狗信号代码行的参数包括喂狗通道编号,用于使能所述喂狗通道编号对应的喂狗通道;
使能捕捉输入信号代码行,用于使能所述看门狗模块的信号捕捉器的输入信号。
优选的,所述看门狗模块包括:
第一通道使能寄存器,用于设置多路软件喂狗信号的使能控制位;
第二通道使能寄存器,用于设置多路硬件喂狗信号的使能控制位;
工作模式寄存器,用于存储所述看门狗模块进行喂狗通道切换的工作模式;
喂狗信号选择寄存器,用于设置所述喂狗信号与所述喂狗通道的对应关系;
第一多路选择器,用于接收多路喂狗信号;所述第一多路选择器与所述喂狗信号选择寄存器相连接,所述第一多路选择器根据所述喂狗信号选择寄存器将所述喂狗信号输出为喂狗输入信号;
第二多路选择器,与所述第一多路选择器相连接,接收所述第一多路选择器输出的多路所述喂狗输入信号;
通道选择状态机,与所述第二多路选择器相连接,发送通道选择信号至所述第二多路选择器,用以所述第二多路选择器根据所述通道选择信号选择多路所述喂狗输入信号中的一路输出为通道喂狗信号;所述通道选择状态机分别与所述第一通道使能寄存器、第二通道使能寄存器和工作模式寄存器相连接,接收使能的软件喂狗信号、使能的硬件喂狗信号和喂狗通道切换的工作模式;
时间窗口上限寄存器,用于设置所述喂狗信号对应的喂狗时间窗口上限值;
时间窗口下限寄存器,用于设置所述喂狗信号对应的喂狗时间窗口下限值;
时间片寄存器,用于设置所述喂狗信号对应的喂狗时间片值;
信号捕捉器,与所述第二多路选择器相连接,根据预设捕捉模式捕捉所述第二多路选择器输出的所述通道喂狗信号;
时钟模块,接收多路时钟源信号,并根据时钟选择信号选择所述多路时钟源信号中的一路作为时钟源,并根据预分频系数对所述时钟源进行分频处理输出分频时钟源信号,并根据时钟使能信号控制所述分频时钟源信号的输出;
定时器,与所述通道选择状态机相连接,接收所述通道选择状态机发送的启动信号,根据所述启动信号启动递增计数,并将计数结果值保存至自由计数值寄存器中;所述定时器还与所述信号捕捉器相连接,接收所述信号捕捉器输出的所述捕捉成功信号;所述定时器还与所述时钟模块相连接,接收所述时钟模块输出的所述分频时钟源信号作为所述定时器的计数时钟;
第一捕捉信号标志寄存器和第二捕捉信号标志寄存器,所述第一捕捉信号标志寄存器和第二捕捉信号标志寄存器分别与所述信号捕捉器相连接;当所述信号捕捉器捕捉所述通道喂狗信号的高电平成功时,所述信号捕捉器根据所述通道喂狗信号的编号设置所述第一捕捉信号标志寄存器和第二捕捉信号标志寄存器的标志位;所述第一捕捉信号标志寄存器与所述第一通道使能寄存器相对应;所述第二捕捉信号标志寄存器与所述第二通道使能寄存器相对应;
比较器,与所述定时器相连接;所述比较器读取所述自由计数值寄存器中的计数结果值,判断所述计数结果值是否等于所述喂狗时间片值并生成监控完成信号;
控制逻辑模块,与所述比较器相连接,接收所述比较器输出的监控完成信号;当接收到所述监控完成信号时,比较所述第一捕捉信号标志寄存器和第一通道使能寄存器,比较所述第二捕捉信号标志寄存器和第二通道使能寄存器,若所述第一捕捉信号标志寄存器的控制位和所述第一通道使能寄存器的控制位不相同或者所述第二捕捉信号标志寄存器的控制位和所述第二通道使能寄存器的控制位不相同,则输出复位信号,否则输出状态切换信号至所述通道选择状态机;
控制寄存器,用于设置所述时钟选择信号的控制位、预分频系数、时钟使能信号的控制位、输入使能信号的控制位和预设捕捉模式。
优选的,所述在运行过程中通过所述看门狗配置代码段对看门狗模块进行初始化处理,具体包括:
在运行过程中,通过所述看门狗配置代码段对所述看门狗模块的控制寄存器进行初始化,设置所述控制寄存器中的时钟选择信号的控制位、预分频系数和预设捕捉模式;通过所述看门狗配置代码段将所述控制寄存器中的时钟使能信号的控制位和输入使能信号的控制位设置为使能;
在运行过程中,通过所述看门狗配置代码段将所述看门狗模块的工作模式配置为多线程模式;
在运行过程中,通过所述看门狗配置代码段对所述看门狗模块的喂狗信号选择寄存器进行配置,设置所述喂狗信号与所述喂狗通道的对应关系;
在运行过程中,通过所述看门狗配置代码段对所述看门狗模块的时间窗口上限寄存器和时间窗口下限寄存器进行配置,通过所述喂狗通道的喂狗通道编号将喂狗时间窗口上限值设置到所述喂狗通道编号对应的所述时间窗口上限寄存器中,通过所述喂狗通道的喂狗通道编号将喂狗时间窗口下限值设置到所述喂狗通道编号对应的所述时间窗口下限寄存器中;
在运行过程中,通过所述看门狗配置代码段对所述看门狗模块的时间片寄存器进行配置,通过所述喂狗通道的喂狗通道编号将喂狗时间片值设置到所述喂狗通道编号对应的所述时间片寄存器中;
在运行过程中,通过所述看门狗配置代码段对所述看门狗模块的第一通道使能寄存器和第二通道使能寄存器进行配置,将所述第一通道使能寄存器和第二通道使能寄存器中与所述喂狗信号相对应的控制位设置为1。
优选的,所述运行过程中通过各个所述喂狗代码段对所述看门狗模块进行喂狗信号发送处理,具体包括:
在运行过程中,各个所述喂狗代码段根据所述喂狗信号的喂狗信号编号激活所述看门狗模块的第一多路选择器中相对应的喂狗信号。
本发明实施例第二方面提供了一种基于看门狗防范多任务流程跑飞的处理装置,所述装置包括:
配置模块,用于在多任务流程的代码起始段设置看门狗配置代码段;
喂狗模块,用于在所述多任务流程的多个子任务中设置喂狗代码段;
运行模块,用于运行所述多任务流程;并在运行过程中通过所述看门狗配置代码段对看门狗模块进行初始化处理;并在运行过程中通过各个所述喂狗代码段对所述看门狗模块进行喂狗信号发送处理;并在运行过程中通过所述看门狗模块对所述多个子任务对应的多个喂狗通道进行轮询监控;
跑飞判断模块,用于在运行过程中对所述看门狗模块是否输出复位信号进行识别,若是则确认所述多任务流程在运行过程中发生跑飞故障。
本发明实施例提供的一种基于看门狗防范多任务流程跑飞的处理方法及装置,通过在多任务流程的代码起始段设置看门狗配置代码段,以及在多任务流程的多个子任务中设置喂狗代码段;然后运行该多任务流程,并在运行过程中通过看门狗配置代码段对看门狗模块进行初始化处理,并在运行过程中通过各个喂狗代码段对看门狗模块进行喂狗信号发送处理,并在运行过程中通过看门狗模块对多个子任务对应的多个喂狗通道进行轮询监控;在运行过程中对看门狗模块是否输出复位信号进行识别,若看门狗模块输出复位信号则确认多任务流程在运行过程中发生了跑飞故障。本发明通过对多任务流程中多个子任务对应的多路喂狗信号进行轮询监控,无需增加额外监控即可实现对多任务流程的监控。
附图说明
图1为本发明实施例一提供的一种基于看门狗防范多任务流程跑飞的处理方法的流程示意图;
图2为本发明实施例二提供的一种基于看门狗防范多任务流程跑飞的处理装置的模块结构图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
本发明实施例一提供了一种基于看门狗防范多任务流程跑飞的处理方法,图1为本发明实施例一提供的一种基于看门狗防范多任务流程跑飞的处理方法的流程示意图,如图1所示,本方法主要包括如下步骤:
步骤101,在多任务流程的代码起始段设置看门狗配置代码段。
具体的,为了在多任务流程中通过看门狗来监测多任务流程执行过程中是否出现跑飞的情况,需要在多任务流程的代码起始段设置看门狗配置代码段,即在多任务流程的代码开始之前,需要先通过看门狗配置代码段对要使用的看门狗进行一些设置。因此,将看门狗配置代码段设置于多任务流程的代码起始段,以确保在多任务流程的代码执行之前能够完成看门狗的基本配置。
进一步的,看门狗配置代码段包括多个配置代码行,具体如下:
时钟配置代码行,用于设置看门狗中定时器所使用的时钟信号,其参数包括时钟编号和预分频系数,用于看门狗模块根据时钟编号选择时钟源,并根据预分频系数对时钟源进行分频处理。
时钟配置函数的伪代码如下:
其中,sel表示时钟编号,ps表示预分频系数,CTR表示控制寄存器,CLK_SEL为控制寄存器CTR中的字段,用于存储已配置的时钟编号sel,PS_CFG也是控制寄存器CTR中的字段,用于存储已配置的预分频系数ps。时钟编号sel的取值包括:0x00:系统时钟,0x01:慢速时钟;预分频系数ps的取值包括:0x00:2分频,0x01:4分频,0x02:8分频,0x03:16分频,0x04:32分频,0x05:64分频,0x06:128分频,0x07:256分频。
例如:当需要选择慢速时钟作为看门狗模块的定时器的时钟,且预分频系数设定为128分频时,调用时钟配置函数的时钟配置代码行的伪代码描述如下:
wdg_clock_set(0x01,0x06);
工作模式配置代码行,用于设置看门狗模块中喂狗通道切换的工作模式,其参数包括工作模式参数,用于看门狗模块根据工作模式参数设置看门狗模块中喂狗通道切换的工作模式。
工作模式配置函数的伪代码如下:
其中,mode表示工作模式,MODE_CFG为看门狗模块中的工作模式寄存器,用于存储工作模式的具体值。工作模式mode的具体取值包括:0x00:多线程模式,0x01:单线程模式。
例如:本实施例中多任务流程使用多线程模式,则调用工作模式配置函数的工作模式配置代码行的伪代码描述如下:
wdg_mode_set(0x00);
捕捉方式配置代码行,用于设置看门狗模块中捕捉喂狗输入信号的捕捉方式,其参数为捕捉方式参数,用于看门狗模块根据捕捉方式参数设置看门狗模块中的信号捕捉方式。
捕捉方式配置函数的伪代码如下:
其中,cp_mode表示信号捕捉方式,CTR.CP_MODE为控制寄存器CTR中的字段,用于存储具体的信号捕捉方式。信号捕捉方式cp_mode的具体取值包括:0x00:上升沿捕捉,0x01:下降沿捕捉,0x02:低电平捕捉,0x03:高电平捕捉。
例如:在看门狗模块的工作模式为多线程模式时,需要将信号捕捉方式设置为高电平捕捉,则调用捕捉方式配置函数的捕捉方式配置代码行的伪代码描述如下:
cp_mode_set(0x03);
喂狗通道配置代码行,用于将喂狗信号的喂狗信号编号与喂狗通道的喂狗通道编号进行绑定,实现为喂狗信号分配不同的喂狗通道,其参数包括喂狗信号编号和喂狗通道编号。
喂狗通道配置函数的伪代码如下:
其中,channel表示喂狗信号编号,S_IN表示喂狗通道编号,喂狗通道的设置存储于喂狗信号选择寄存器(SEL0~SEL63)中,共64个喂狗通道,寄存器SEL0~SEL63的地址依次排列,且每一个寄存器的地址偏移为0x04,因此,在设置时,选择SEL0寄存器地址作为基地址。通过喂狗通道配置函数可以选择哪一路喂狗信号作为S_INx通道信号。
例如:选择喂狗信号10作为S_IN2通道的通道信号,则调用喂狗通道配置函数的喂狗通道配置代码行的伪代码描述如下:
wdg_signal_sel(0x0A,0x02);
本发明实施例中包括多个喂狗通道配置代码行,能够实现为不同的喂狗信号分配不同的喂狗通道。在多任务流程的多个子任务中,为每一个子任务分配一个不同的喂狗通道,这样能够实现对多个子任务的轮询监控,防止不同子任务的喂狗信号之间相互干扰。
喂狗时间窗口配置代码行,用于配置喂狗信号对应的监测时间窗口的上下限值,其参数包括喂狗通道编号、喂狗时间窗口上限值和喂狗时间窗口下限值,用于看门狗模块比较该喂狗信号到达的时间是否位于喂狗时间窗口内,过早或过晚到达的喂狗信号都是错误的,说明程序已经跑飞。
喂狗时间窗口配置函数的伪代码如下:
其中,channel表示喂狗通道编号,w_high_limit表示喂狗时间窗口上限值,配置结果存储在时间窗口上限寄存器CHTHHn(n=0~63)中,共64个寄存器,用于对应存储64路喂狗信号的时间窗口上限值;w_low_limit表示喂狗时间窗口下限值,配置结果存储在时间窗口下限寄存器CHTHLn(n=0~63)中,共64个寄存器,用于对应存储64路喂狗信号的时间窗口下限值;由于CHTHLn、CHTHHn寄存器的地址依次排列,且每一个寄存器的地址偏移为0x04,因此,选用CHTHL0和CHTHH0寄存器地址作为基地址来进行设置。
喂狗时间窗口的上下限值的具体取值是根据具体需求、定时器时钟及预分频系数计算得出,例如:看门狗模块的定时器时钟为8Mhz,预分频系数为128,则定时器的计数时钟频率为8Mhz/128=62.5Khz,一次计数的时间为16us,如果通道S_IN8的喂狗时间窗口的具体需求为80ms~160ms,则相对应的喂狗时间窗口的上下限值分别为:w_high_limit=160ms/16us=0x2710,w_low_limit=80ms/16us=0x1388,那么调用喂狗时间窗口配置函数配置喂狗通道S_IN8相对应的喂狗时间窗口的上下限值的喂狗时间窗口配置代码行的伪代码描述如下:
wdg_feed_window(8,0x1388,0x2710);
本实施例中包括有多个喂狗时间窗口配置代码行,针对每一个喂狗通道均可独立设置该喂狗通道相对应的喂狗时间窗口的上下限值。
喂狗时间片配置代码行,用于配置喂狗信号对应的喂狗时间片值,喂狗时间片值即为监控该喂狗信号的时间片长度,也是指该喂狗操作的超时时间,其参数包括喂狗通道编号和喂狗时间片值,用于设置看门狗模块监控该喂狗信号的喂狗时间片值,在该喂狗时间片监控完成后,将切换至下一喂狗通道。
喂狗时间片配置函数的伪代码如下:
其中,channel表示喂狗通道编号,t_limit表示喂狗时间片值,喂狗时间片的配置结果存储在时间片寄存器CHTn(n=0~63)中,共64个时间片寄存器,用于存储对应的64路喂狗信号的喂狗时间片值;由于CHTn(n=0~63)寄存器的地址依次排列,且每一个时间片寄存器的地址偏移为0x04,因此选用CHT0作为基地址,可以依次对CHTn进行设置。
与喂狗时间窗口上下限值相同的是,喂狗时间片值也是根据具体需求、定时器时钟及预分频系数计算得出,例如:看门狗模块的定时器时钟为8Mhz,预分频系数为128,则定时器的计数时钟频率为8Mhz/128=62.5Khz,一次计数的时间为16us,若喂狗通道S_IN2的喂狗时间片的具体需求为240ms,则喂狗时间片值为:t_limit=240ms/16us=0x3A98,那么调用喂狗时间片配置函数配置喂狗通道S_IN2相对应的喂狗时间片值的喂狗时间片配置代码行的伪代码如下:
wdg_monitor_time(2,0x3A98);
多个喂狗时间片配置代码行可以针对每一个喂狗通道独立设置该喂狗通道相对应的喂狗时间片值。在单任务流程中,只有该喂狗通道的监控时间等于该喂狗通道设置的喂狗时间片值时,才能切换到下一路喂狗通道监控下一路喂狗信号。该喂狗时间片值是软件实际运行时间,例如软件流程中的要监控的步骤n的运行时间为Tn,则监控该步骤所对应的喂狗时间片值即为Tn,Tn是在软件调试过程中得出的,或者根据反汇编得出的指令数量计算得到的。在本实施例的多任务流程中,多个子任务的喂狗时间片值设置为相同的值,并且看门狗模块对于多个子任务的喂狗通道采用轮询监控的方式进行监控。
进一步的,看门狗配置代码段还包括:
使能时钟代码行,用于使能看门狗模块的定时器所使用的时钟源;通过配置控制寄存器CTR中的CLK_EN位来实现时钟模块的时钟源信号输出的开启和关闭,CLK_EN位即为时钟源信号的控制位;当CLK_EN位置为1时,使能时钟模块对分频时钟源信号的输出,当CLK_EN位置为0时,关闭时钟模块对分频时钟源信号的输出。
使能时钟函数的伪代码如下:
其中,enable为1时,使能分频时钟源信号输出,enable为0时,关闭分频时钟源信号输出。
例如:当需要使能时钟时,调用使能时钟函数的使能时钟代码行的伪代码描述如下:
timer_clock_enable(0x01);
使能喂狗信号代码行,用于使能喂狗信号对应的喂狗通道,其参数包括喂狗通道编号,用于看门狗模块根据喂狗通道编号使能对应的喂狗通道;通过配置看门狗模块的第一通道使能寄存器CHEN_CFG0和第二通道使能寄存器CHEN_CFG1来实现喂狗信号的使能操作,其中,第一通道使能寄存器CHEN_CFG0用于存储32路软件喂狗信号的使能信号,第二通道使能寄存器CHEN_CFG1用于存储32路硬件喂狗信号的使能信号;
软件喂狗信号使能函数的伪代码如下:
例如:当需要对软件喂狗信号0-3进行使能操作,则调用软件喂狗信号使能函数的使能喂狗信号代码行的伪代码描述如下:
wdg_soft_signal_enable(0x0000000F);
其中,0x0000000F转换为二进制为1111,对应软件喂狗信号0-3的使能。
硬件喂狗信号使能函数的伪代码如下:
例如:当需要对硬件喂狗信号0、4进行使能操作时,则调用硬件喂狗信号使能函数的使能喂狗信号代码行的伪代码描述如下:
wdg_hard_signal_enable(0x00000011);
其中,0x00000011转换为二进制为10001,对应硬件喂狗信号0、4的使能。
使能捕捉输入信号代码行,用于使能看门狗模块的信号捕捉器的输入信号;通过控制寄存器CTR的CP_EN位来实现信号捕捉器的输入信号的使能,CP_EN位即为信号捕捉器的输入使能信号的控制位。
捕捉输入信号使能函数的伪代码如下:
例如:当需要使能捕捉输入信号时,则调用捕捉输入信号使能函数的使能捕捉输入信号代码行的伪代码描述如下:
input_capsignal_enable(0x01);
步骤102,在多任务流程的多个子任务中设置喂狗代码段。
本实施例中的喂狗代码段为单行代码行,多个子任务中每个子任务内均设置有各自的喂狗代码段,通过调用喂狗操作函数进行喂狗信号的发送处理,其参数包括喂狗通道编号,用于执行该喂狗通道编号对应的喂狗通道的喂狗操作。
喂狗操作函数的伪代码如下:
其中,channel为喂狗通道编号,喂狗操作是通过设置软件喂狗信号寄存器SFS来实现的。其中,SFS寄存器与软件喂狗信号相对应,SFS寄存器默认值为0,只需将SFS寄存器中与喂狗信号相对应的通道置为1即可实现喂狗操作,然后再将该位恢复为默认的0即可。
例如,喂狗信号2的喂狗操作,其调用喂狗操作函数的代码行的伪代码描述如下:
wdg_soft_feed(0x02);
在多任务流程中的每个子任务中设置该代码行,即可实现该子任务中喂狗信号的喂狗操作。
步骤103,运行多任务流程;并在运行过程中通过看门狗配置代码段对看门狗模块进行初始化处理。
具体的,本实施例中的看门狗模块具体包括:
第一通道使能寄存器,用于设置多路软件喂狗信号的使能控制位,在本实施例中用于设置32路软件喂狗信号的使能控制位,通过调用软件喂狗信号使能函数来将第一通道使能寄存器相对应的控制位置为1,来使能该控制位所对应的软件喂狗信号;当该控制位置为0时,则关断该控制位所对应的软件喂狗信号。
第二通道使能寄存器,用于设置多路硬件喂狗信号的使能控制位,可用于保存32路硬件喂狗信号的使能控制位,通过调用硬件喂狗信号使能函数来将第二通道使能寄存器相对应的控制位置为1,来使能该控制位所对应的硬件喂狗信号;当该控制位置为0时,则关断该控制位所对应的硬件喂狗信号。
在运行过程中,通过看门狗配置代码段对看门狗模块的第一通道使能寄存器和第二通道使能寄存器进行配置,将第一通道使能寄存器和第二通道使能寄存器中的存储位设置为1,以实现该存储位所对应的对喂狗通道的使能;当该存储位置为0时,则关闭该存储位所对应的喂狗通道。
工作模式寄存器,用于存储看门狗模块进行喂狗通道切换的工作模式,看门狗模块的工作模式包括单线程模式和多线程模式,本实施例中的看门狗模块的喂狗通道切换的工作模式采用多线程模式。
在运行过程中,通过看门狗配置代码段对看门狗模块的工作模式寄存器进行配置,将看门狗模块进行通道切换的工作模式设置为多线程模式。
喂狗信号选择寄存器,用于存储喂狗信号与喂狗通道的对应关系,本实施例中通过给不同的喂狗信号分配不同的喂狗通道来实现对多个子任务的同时监控,通过位喂狗信号分配不同的喂狗通道,在捕捉到喂狗操作的信号时,对喂狗通道的编号进行存储,用于验证捕捉到的喂狗信号的喂狗通道与已使能的喂狗通道是否匹配来判断程序执行是否出现异常,若相匹配,则说明无异常,若不相匹配,则说明出现异常。
在运行过程中,通过看门狗配置代码段对看门狗模块的喂狗信号选择寄存器进行配置,设置喂狗信号与喂狗通道的对应关系。
第一多路选择器,用于接收多路喂狗信号;第一多路选择器与喂狗信号选择寄存器相连接,第一多路选择器根据喂狗信号选择寄存器中存储的喂狗信号与喂狗通道之间的对应关系将喂狗信号按指定的喂狗通道输出为喂狗输入信号。
第二多路选择器,与第一多路选择器相连接,接收第一多路选择器输出的多路喂狗输入信号。
通道选择状态机,与第二多路选择器相连接,发送通道选择信号至第二多路选择器,用以第二多路选择器根据通道选择信号选择多路喂狗输入信号中的一路输出为通道喂狗信号;通道选择状态机分别与第一通道使能寄存器、第二通道使能寄存器和工作模式寄存器相连接,接收使能的软件喂狗信号、使能的硬件喂狗信号和喂狗通道切换的工作模式;本实施例中的工作模式为多线程模式,通道选择状态机在多线程模式时,对已经使能的多个子任务的喂狗通道进行轮询监控。同时,在每个喂狗通道监控完成时对第一捕捉信号标志寄存器和第一通道使能寄存器进行比较,以及对第二捕捉信号标志寄存器和第二通道使能寄存器进行比较,以确定已使能的喂狗信号是否被捕捉到。
时间窗口上限寄存器,用于设置喂狗信号对应的喂狗时间窗口上限值。
时间窗口下限寄存器,用于设置喂狗信号对应的喂狗时间窗口下限值。
在运行过程中,通过看门狗配置代码段对看门狗模块的时间窗口上限寄存器和时间窗口下限寄存器进行配置,将喂狗通道编号和喂狗时间窗口上限值设置到时间窗口上限寄存器中,将喂狗通道编号和喂狗时间窗口下限值设置到时间窗口下限寄存器中。
时间片寄存器,用于设置喂狗信号对应的喂狗时间片值。
在运行过程中,通过看门狗配置代码段对看门狗模块的时间片寄存器进行配置,将喂狗通道编号和喂狗时间片值设置到时间片寄存器中。
信号捕捉器,与第二多路选择器相连接,根据预设捕捉模式捕捉第二多路选择器输出的通道喂狗信号。
具体的,信号捕捉器读取控制寄存器CTR中的CP_MODE位,并根据CP_MODE位设置的预设捕捉模式来捕捉通道喂狗信号,本实施例中采用的预设捕捉模式为高电平捕捉,当信号捕捉器捕捉到通道喂狗信号的高电平时,视为捕捉成功;当信号捕捉器捕捉通道喂狗信号成功时,输出捕捉成功信号;
时钟模块,接收多路时钟源信号,并根据时钟选择信号选择多路时钟源信号中的一路作为时钟源,并根据预分频系数对时钟源进行分频处理输出分频时钟源信号,并根据时钟使能信号控制分频时钟源信号的输出。
具体的,看门狗模块的定时器具有四种时钟输入,分别为:系统时钟、慢速时钟及两路预留的时钟源。时钟模块读取控制寄存器CTR中的CLK_SEL位,根据CLK_SEL位设置的时钟编号选择多路时钟源信号的一路作为时钟源。然后再读取控制寄存器CTR中的预分频系数PS_CFG位,根据PS_CFG位设置的预分频系数对时钟源进行分频处理并输出分频时钟源信号,并将分频时钟源信号输出至定时器,供定时器使用。同时,时钟模块还读取控制寄存器CTR中的CLK_EN位,并根据CLK_EN位的设置控制分频时钟源信号的使能或者关闭。
定时器,与通道选择状态机相连接,接收通道选择状态机发送的启动信号。通道选择状态机在开始每个喂狗通道的监控时,会发送启动信号至定时器,定时器在接收到启动信号时,根据启动信号启动递增计数,并将计数结果值实时保存至自由计数值寄存器中备用。定时器还与时钟模块相连接,接收时钟模块输出的时钟源信号作为定时器的计数时钟。
比较器,与定时器相连接,用于判断当前喂狗信号的监控时间是否已到。比较器读取自由计数值寄存器中的计数结果值,以及时间片寄存器中保存的该喂狗信号对应的喂狗时间片值,并判断计数结果值是否等于喂狗时间片值,当计数结果值等于喂狗时间片值时,生成监控完成信号。
控制逻辑模块,与比较器相连接,接收比较器输出的监控完成信号;当接收到监控完成信号时,比较所述第一捕捉信号标志寄存器和第一通道使能寄存器,比较所述第二捕捉信号标志寄存器和第二通道使能寄存器,若所述第一捕捉信号标志寄存器的控制位和所述第一通道使能寄存器的控制位不相同或者所述第二捕捉信号标志寄存器的控制位和所述第二通道使能寄存器的控制位不相同,则输出复位信号,否则说明多任务流程无异常,此时输出状态切换信号至通道选择状态机。
具体的,当控制逻辑模块接收到监控完成信号后,比较第一捕捉信号标志寄存器和第一通道使能寄存器,以及比较第二捕捉信号标志寄存器和第二通道使能寄存器,如果第一捕捉信号标志寄存器的控制位和第一通道使能寄存器的控制位不相同或者第二捕捉信号标志寄存器的控制位和第二通道使能寄存器的控制位不相同,说明多个子任务中至少有一路喂狗信号未能正确到达,该子任务存在执行跑飞情况,此时输出复位信号。如果所有控制位都相同,说明多任务流程中各个子任务均无异常,此时,输出状态切换信号至通道选择状态机。
控制寄存器,用于设置时钟选择信号的控制位、预分频系数、时钟使能信号的控制位、输入使能信号的控制位和预设捕捉模式。
在运行过程中,通过看门狗配置代码段对看门狗模块的控制寄存器进行初始化,设置控制寄存器中的时钟选择信号的控制位、预分频系数和预设捕捉模式;同时对控制寄存器中的时钟使能信号的控制位和输入使能信号的控制位进行使能操作,即将它们设置为1。
在运行过程中,各个喂狗代码段根据喂狗信号的喂狗信号编号向看门狗模块的第一多路选择器发送相对应的喂狗信号。
步骤104,并在运行过程中通过各个喂狗代码段对看门狗模块进行喂狗信号发送处理。
具体的,在各个子任务中配置喂狗代码段来对看门狗模块进行喂狗信号发送处理,每个喂狗信号发送的喂狗代码段中包括喂狗信号编号,用于标识不同子任务的喂狗信号。
步骤105,并在运行过程中通过看门狗模块对多个子任务对应的多个喂狗通道进行轮询监控。
具体的,在多线程模式下,看门狗模块对多个子任务对应的多个喂狗通道进行轮询监控。同时,在每一个喂狗通道监控结束时,比较第一捕捉信号标志寄存器和第一通道使能寄存器,以及比较第二捕捉信号标志寄存器和第二通道使能寄存器,如果第一捕捉信号标志寄存器的控制位和第一通道使能寄存器的控制位不相同或者第二捕捉信号标志寄存器的控制位和第二通道使能寄存器的控制位不相同,说明多个子任务中至少有一路喂狗信号未能正确到达,该子任务存在执行跑飞情况,此时输出复位信号。
步骤106,并在运行过程中对看门狗模块是否输出复位信号进行识别,若是则确认多任务流程在运行过程中发送跑飞故障。
具体的,在运行过程中,对看门狗模块是否输出复位信号进行识别,如果监控到看门狗模块的控制逻辑模块输出了复位信号,则说明多个子任务中至少有一个子任务存在执行跑飞的情况,因此,可以确定多任务流程在运行过程中发生了跑飞故障。
本发明实施例二提供了一种基于看门狗防范多任务流程跑飞的处理装置,图2为本发明实施例二提供的一种基于看门狗防范多任务流程跑飞的处理装置的模块结构图,如图2所示,该装置包括:
配置模块201,用于在多任务流程的代码起始段设置看门狗配置代码段;
喂狗模块202,用于在多任务流程的指定代码段设置喂狗代码段;
运行模块203,用于运行多任务流程;并在运行过程中通过看门狗配置代码段对看门狗模块进行初始化处理;并在运行过程中通过各个喂狗代码段对看门狗模块进行喂狗信号发送处理;并在运行过程中通过看门狗模块对多个子任务对应的多个喂狗通道进行轮询监控;
跑飞判断模块204,用于在运行过程中对看门狗模块是否输出复位信号进行识别,若是则确认多任务流程在运行过程中发生跑飞故障。
本发明实施例二提供的一种基于看门狗防范多任务流程跑飞的处理装置,用以执行本发明实施例一提供的方法的步骤,其实现原理和技术效果类似,在此不再赘述。
需要说明的是,应理解以上装置的各个模块的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。且这些模块可以全部以软件通过处理元件调用的形式实现;也可以全部以硬件的形式实现;还可以部分模块通过处理元件调用软件的形式实现,部分模块通过硬件的形式实现。例如,获取模块可以为单独设立的处理元件,也可以集成在上述装置的某一个芯片中实现,此外,也可以以程序代码的形式存储于上述装置的存储器中,由上述装置的某一个处理元件调用并执行以上获取模块的功能。其它模块的实现与之类似。此外这些模块全部或部分可以集成在一起,也可以独立实现。这里所描述的处理元件可以是一种集成电路,具有信号的处理能力。在实现过程中,本发明实施例提供的方法的各步骤或本发明实施例提供的装置的各个模块可以通过处理器元件中的硬件的集成逻辑电路或者软件形式的指令完成。
例如,本发明实施例提供的装置的模块可以是被配置成本发明实施例提供的方法的一个或多个集成电路,例如:一个或多个特定集成电路(Application SpecificIntegrated Circuit,ASIC),或,一个或多个数字信号处理器(Digital SignalProcessor,DSP),或,一个或者多个现场可编程门阵列(Field Programmable Gate Array,FPGA)等。再如,当本发明实施例提供的装置的某个模块通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(Central Processing Unit,CPU)或其它可以调用程序代码的处理器。再如,本发明实施例提供的装置的这些模块可以集成在一起,以片上系统(System on Chip,SOC)的形式实现。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机程序指令时,全部或部分地产生按照本发明实施例提供的方法所描述的流程或功能。上述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。上述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,上述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线路((Digital Subscriber Line,DSL))或无线(例如红外、无线、蓝牙、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。上述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。上述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,高密度数字视频光盘(Digital Video Disc,DVD))、或者半导体介质(例如固态硬盘(solid state disk,SSD))等。
本发明实施例提供的一种基于看门狗防范多任务流程跑飞的处理方法及装置,通过在多任务流程的代码起始段设置看门狗配置代码段,以及在多任务流程的多个子任务中设置喂狗代码段;然后运行该多任务流程,并在运行过程中通过看门狗配置代码段对看门狗模块进行初始化处理,并在运行过程中通过各个喂狗代码段对看门狗模块进行喂狗信号发送处理,并在运行过程中通过看门狗模块对多个子任务对应的多个喂狗通道进行轮询监控;在运行过程中对看门狗模块是否输出复位信号进行识别,若看门狗模块输出复位信号则确认多任务流程在运行过程中发生了跑飞故障。本发明通过对多任务流程中多个子任务对应的多路喂狗信号进行轮询监控,无需增加额外监控即可实现对多任务流程的监控,提升了看门狗的可靠性,保证了系统的实时性。
专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (7)

1.一种基于看门狗防范多任务流程跑飞的处理方法,其特征在于,所述方法包括:
在多任务流程的代码起始段设置看门狗配置代码段;
在所述多任务流程的多个子任务中设置喂狗代码段;
运行所述多任务流程;并在运行过程中通过所述看门狗配置代码段对看门狗模块进行初始化处理;并在运行过程中通过各个所述喂狗代码段对所述看门狗模块进行喂狗信号发送处理;并在运行过程中通过所述看门狗模块对所述多个子任务对应的多个喂狗通道进行轮询监控;并在运行过程中对所述看门狗模块是否输出复位信号进行识别,若是则确认所述多任务流程在运行过程中发生跑飞故障。
2.根据权利要求1所述的基于看门狗防范多任务流程跑飞的处理方法,其特征在于,
所述看门狗配置代码段包括:
时钟配置代码行,所述时钟配置代码行的参数包括时钟编号和预分频系数;所述看门狗模块根据所述时钟编号选择时钟源,并根据所述预分频系数对所述时钟源进行分频处理;
工作模式配置代码行,所述工作模式配置代码行的参数包括工作模式参数;所述看门狗模块根据所述工作模式参数设置所述看门狗模块的工作模式;所述工作模式包括单线程模式和多线程模式;
捕捉方式配置代码行,所述捕捉方式配置代码行的参数包括捕捉方式参数;所述看门狗模块根据所述捕捉方式参数设置所述看门狗模块的信号捕捉方式;所述信号捕捉方式包括上升沿捕捉方式和高电平捕捉方式;
多个喂狗通道配置代码行,每个所述喂狗通道配置代码行的参数包括喂狗信号编号和喂狗通道编号,用于将所述喂狗信号编号对应的喂狗信号与所述喂狗通道编号对应的喂狗通道进行绑定;
多个喂狗时间窗口配置代码行,每个所述喂狗时间窗口配置代码行的参数包括喂狗通道编号、喂狗时间窗口上限值和喂狗时间窗口下限值,用于设置所述喂狗通道编号对应的喂狗通道的喂狗时间窗口上限值和喂狗时间窗口下限值;
多个喂狗时间片配置代码行,每个所述喂狗时间片配置代码行的参数包括喂狗通道编号和喂狗时间片值,用于设置所述喂狗通道编号对应的喂狗通道的喂狗时间片值;
所述喂狗代码段为单行代码行,所述喂狗代码段的参数包括喂狗通道编号,用于执行所述喂狗通道编号对应的喂狗通道的喂狗操作。
3.根据权利要求2所述的基于看门狗防范多任务流程跑飞的处理方法,其特征在于,所述看门狗配置代码段还包括:
使能时钟代码行,用于使能所述时钟源;
使能喂狗信号代码行,所述使能喂狗信号代码行的参数包括喂狗通道编号,用于使能所述喂狗通道编号对应的喂狗通道;
使能捕捉输入信号代码行,用于使能所述看门狗模块的信号捕捉器的输入信号。
4.根据权利要求1所述的基于看门狗防范多任务流程跑飞的处理方法,其特征在于,所述看门狗模块包括:
第一通道使能寄存器,用于设置多路软件喂狗信号的使能控制位;
第二通道使能寄存器,用于设置多路硬件喂狗信号的使能控制位;
工作模式寄存器,用于存储所述看门狗模块进行喂狗通道切换的工作模式;
喂狗信号选择寄存器,用于设置所述喂狗信号与所述喂狗通道的对应关系;
第一多路选择器,用于接收多路喂狗信号;所述第一多路选择器与所述喂狗信号选择寄存器相连接,所述第一多路选择器根据所述喂狗信号选择寄存器将所述喂狗信号输出为喂狗输入信号;
第二多路选择器,与所述第一多路选择器相连接,接收所述第一多路选择器输出的多路所述喂狗输入信号;
通道选择状态机,与所述第二多路选择器相连接,发送通道选择信号至所述第二多路选择器,用以所述第二多路选择器根据所述通道选择信号选择多路所述喂狗输入信号中的一路输出为通道喂狗信号;所述通道选择状态机分别与所述第一通道使能寄存器、第二通道使能寄存器和工作模式寄存器相连接,接收使能的软件喂狗信号、使能的硬件喂狗信号和喂狗通道切换的工作模式;
时间窗口上限寄存器,用于设置所述喂狗信号对应的喂狗时间窗口上限值;
时间窗口下限寄存器,用于设置所述喂狗信号对应的喂狗时间窗口下限值;
时间片寄存器,用于设置所述喂狗信号对应的喂狗时间片值;
信号捕捉器,与所述第二多路选择器相连接,根据预设捕捉模式捕捉所述第二多路选择器输出的所述通道喂狗信号;
时钟模块,接收多路时钟源信号,并根据时钟选择信号选择所述多路时钟源信号中的一路作为时钟源,并根据预分频系数对所述时钟源进行分频处理输出分频时钟源信号,并根据时钟使能信号控制所述分频时钟源信号的输出;
定时器,与所述通道选择状态机相连接,接收所述通道选择状态机发送的启动信号,根据所述启动信号启动递增计数,并将计数结果值保存至自由计数值寄存器中;所述定时器还与所述信号捕捉器相连接,接收所述信号捕捉器输出的所述捕捉成功信号;所述定时器还与所述时钟模块相连接,接收所述时钟模块输出的所述分频时钟源信号作为所述定时器的计数时钟;
第一捕捉信号标志寄存器和第二捕捉信号标志寄存器,所述第一捕捉信号标志寄存器和第二捕捉信号标志寄存器分别与所述信号捕捉器相连接;当所述信号捕捉器捕捉所述通道喂狗信号的高电平成功时,所述信号捕捉器根据所述通道喂狗信号的编号设置所述第一捕捉信号标志寄存器和第二捕捉信号标志寄存器的标志位;所述第一捕捉信号标志寄存器与所述第一通道使能寄存器相对应;所述第二捕捉信号标志寄存器与所述第二通道使能寄存器相对应;
比较器,与所述定时器相连接;所述比较器读取所述自由计数值寄存器中的计数结果值,判断所述计数结果值是否等于所述喂狗时间片值并生成监控完成信号;
控制逻辑模块,与所述比较器相连接,接收所述比较器输出的监控完成信号;当接收到所述监控完成信号时,比较所述第一捕捉信号标志寄存器和第一通道使能寄存器,比较所述第二捕捉信号标志寄存器和第二通道使能寄存器,若所述第一捕捉信号标志寄存器的控制位和所述第一通道使能寄存器的控制位不相同或者所述第二捕捉信号标志寄存器的控制位和所述第二通道使能寄存器的控制位不相同,则输出复位信号,否则输出状态切换信号至所述通道选择状态机;
控制寄存器,用于设置所述时钟选择信号的控制位、预分频系数、时钟使能信号的控制位、输入使能信号的控制位和预设捕捉模式。
5.根据权利要求1所述的基于看门狗防范多任务流程跑飞的处理方法,其特征在于,所述在运行过程中通过所述看门狗配置代码段对看门狗模块进行初始化处理,具体包括:
在运行过程中,通过所述看门狗配置代码段对所述看门狗模块的控制寄存器进行初始化,设置所述控制寄存器中的时钟选择信号的控制位、预分频系数和预设捕捉模式;通过所述看门狗配置代码段将所述控制寄存器中的时钟使能信号的控制位和输入使能信号的控制位设置为使能;
在运行过程中,通过所述看门狗配置代码段将所述看门狗模块的工作模式配置为多线程模式;
在运行过程中,通过所述看门狗配置代码段对所述看门狗模块的喂狗信号选择寄存器进行配置,设置所述喂狗信号与所述喂狗通道的对应关系;
在运行过程中,通过所述看门狗配置代码段对所述看门狗模块的时间窗口上限寄存器和时间窗口下限寄存器进行配置,通过所述喂狗通道的喂狗通道编号将喂狗时间窗口上限值设置到所述喂狗通道编号对应的所述时间窗口上限寄存器中,通过所述喂狗通道的喂狗通道编号将喂狗时间窗口下限值设置到所述喂狗通道编号对应的所述时间窗口下限寄存器中;
在运行过程中,通过所述看门狗配置代码段对所述看门狗模块的时间片寄存器进行配置,通过所述喂狗通道的喂狗通道编号将喂狗时间片值设置到所述喂狗通道编号对应的所述时间片寄存器中;
在运行过程中,通过所述看门狗配置代码段对所述看门狗模块的第一通道使能寄存器和第二通道使能寄存器进行配置,将所述第一通道使能寄存器和第二通道使能寄存器中与所述喂狗信号相对应的控制位设置为1。
6.根据权利要求1所述的基于看门狗防范多任务流程跑飞的处理方法,其特征在于,所述运行过程中通过各个所述喂狗代码段对所述看门狗模块进行喂狗信号发送处理,具体包括:
在运行过程中,各个所述喂狗代码段根据所述喂狗信号的喂狗信号编号激活所述看门狗模块的第一多路选择器中相对应的喂狗信号。
7.一种基于看门狗防范多任务流程跑飞的处理装置,其特征在于,所述装置包括:
配置模块,用于在多任务流程的代码起始段设置看门狗配置代码段;
喂狗模块,用于在所述多任务流程的多个子任务中设置喂狗代码段;
运行模块,用于运行所述多任务流程;并在运行过程中通过所述看门狗配置代码段对看门狗模块进行初始化处理;并在运行过程中通过各个所述喂狗代码段对所述看门狗模块进行喂狗信号发送处理;并在运行过程中通过所述看门狗模块对所述多个子任务对应的多个喂狗通道进行轮询监控;
跑飞判断模块,用于在运行过程中对所述看门狗模块是否输出复位信号进行识别,若是则确认所述多任务流程在运行过程中发生跑飞故障。
CN202310564087.4A 2023-05-18 2023-05-18 一种基于看门狗防范多任务流程跑飞的处理方法及装置 Pending CN116521420A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310564087.4A CN116521420A (zh) 2023-05-18 2023-05-18 一种基于看门狗防范多任务流程跑飞的处理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310564087.4A CN116521420A (zh) 2023-05-18 2023-05-18 一种基于看门狗防范多任务流程跑飞的处理方法及装置

Publications (1)

Publication Number Publication Date
CN116521420A true CN116521420A (zh) 2023-08-01

Family

ID=87401017

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310564087.4A Pending CN116521420A (zh) 2023-05-18 2023-05-18 一种基于看门狗防范多任务流程跑飞的处理方法及装置

Country Status (1)

Country Link
CN (1) CN116521420A (zh)

Similar Documents

Publication Publication Date Title
US10664385B1 (en) Debugging in an actor-based system
US4594685A (en) Watchdog timer
US7752502B2 (en) Method and apparatus for testing software
JP4885316B2 (ja) 試験装置および試験方法
CN111782360A (zh) 分布式任务调度方法及装置
CN109656782A (zh) 可视化调度监控方法、装置及服务器
US11422960B2 (en) Interrupt monitoring systems and methods for failure detection for a semiconductor device
CN109144873B (zh) 一种linux内核处理方法及装置
CA2589878A1 (en) Electronic apparatus and restarting method thereof
CN104899125B (zh) 一种单板系统的运行信息获取方法和装置
EP2434404A1 (en) Method and arrangement for streaming data profiling
CN116521424A (zh) 一种基于看门狗防范单任务流程跑飞的处理方法及装置
JP5151996B2 (ja) 半導体集積回路及びデバッグ・トレース回路
CN116521420A (zh) 一种基于看门狗防范多任务流程跑飞的处理方法及装置
WO2011124681A1 (en) Method and automatic test equipment for performing a plurality of tests of a device under test
CN111782522A (zh) 追踪消息的输出方法、电子设备及存储介质
CN116521421A (zh) 一种基于看门狗防范硬件内部流程跑飞的处理方法及装置
CN107607853B (zh) 芯片的调试方法、装置、存储介质和处理器
US20120185858A1 (en) Processor operation monitoring system and monitoring method thereof
CN116521426A (zh) 一种任务超时处理方法及装置
CN112148537A (zh) 总线监控装置及方法、存储介质、电子装置
CN112799896A (zh) 分布式存储硬盘故障处理方法及装置
CN116541200A (zh) 一种逻辑处理方法及装置
CN110471814B (zh) 服务器装置的错误报告功能的控制方法
CN113742113A (zh) 一种嵌入式系统健康管理方法、设备及储存介质

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
CB02 Change of applicant information

Country or region after: China

Address after: Room 702, 703, 7th Floor, Unit 2, Building 1, No. 869, North Section of Tianfu Avenue, Chengdu High tech Zone, China (Sichuan) Pilot Free Trade Zone, Chengdu, Sichuan Province, 610041

Applicant after: Yiyue Qihan (Chengdu) Technology Co.,Ltd.

Address before: 201306 building C, No. 888, Huanhu West 2nd Road, Lingang New District, China (Shanghai) pilot Free Trade Zone, Pudong New Area, Shanghai

Applicant before: Yiyue Qihan (Shanghai) Technology Co.,Ltd.

Country or region before: China