一种逻辑处理方法及装置
技术领域
本发明涉及看门狗技术领域,特别涉及一种逻辑处理方法及装置。
背景技术
在单线程的软件流程中使用看门狗对单线程任务流程进行监控,若没有在设定的时间内完成喂狗操作就会产生复位(狗咬)事件,从而达到监控单线程任务软件执行流程的目的,而在多线程任务软件流程中,多个子任务并发执行,需要对每个子任务进行监控。如果只是在每个子任务中按照单线程任务流程的监控方式设置喂狗操作来监控是否在规定时间内喂狗,可能会出现只要多个子任务中任意一个子任务正确地执行了喂狗操作,即使其它子任务未准确执行,也不会产生狗咬事件,除非所有的子任务都发生故障。因此,无法达到对每一个子任务都进行监控的目的。
对于上述问题,现有的看门狗方案只能通过创建一个监视任务来实现多线程任务流程的看门狗监控。监视任务的优先级高于其它被监视的子任务群,若监视任务检测到子任务群中每一个子任务都正常工作则按要求进行喂狗操作,反之任意一个子任务出现故障,监视任务就会停止喂狗操作,以此引发狗咬事件发生,从而达到系统自动复位的目的。
但现有的通过增加监视任务的方式解决多线程任务流程监控的问题仍存在一些不足,由于增加了额外的监视任务,因此整个系统的开销随之增加;监视任务与其它子任务一样,同样会存在因自身故障导致不能及时喂狗的问题,从而错误的触发了狗咬事件的可能;无法监控到子任务跑飞后却刚好跑飞至监视任务中执行了喂狗操作;同时,由于监视任务的优先级高于其它子任务的优先级,因而降低了系统的实时性。
因此,需要为看门狗设计一种逻辑处理方法,使看门狗无需增加额外的监视任务也能监控多线程任务流程。
发明内容
本发明的目的,就是针对现有技术的不足,提供一种逻辑处理方法及装置,通过读取工作模式寄存器中设置的工作模式来确定逻辑处理方法。当工作模式为单线程模式时,在接收到第二比较结果信号时或者在接收到第一监控完成信号并且仍未接收到第一比较结果信号时,输出复位信号;在接收到第一监控完成信号并且已接收到第一比较结果信号时,发送通道切换信号至通道状态机。当工作模式为多线程模式时,在接收到第二监控完成信号时,比较捕捉信号编号和使能通道编号,若相等,则发送通道切换信号至通道状态机,否则,输出复位信号。本发明通过设置工作模式进行不同的逻辑处理来实现看门狗对多线程任务的监控处理。
为实现上述目的,本发明实施例第一方面提供了一种逻辑处理方法,所述方法包括:
读取工作模式寄存器中设置的工作模式;所述工作模式包括单线程模式和多线程模式;
当所述工作模式设置为单线程模式时,接收比较器输出的第一比较结果信号、第二比较结果信号和第一监控完成信号;
当接收到所述第二比较结果信号时,输出复位信号;
当接收到所述第一监控完成信号并且未接收到所述第一比较结果信号时,输出复位信号;
当接收到所述第一监控完成信号并且接收到所述第一比较结果信号时,发送通道切换信号至通道状态机;
当所述工作模式设置为多线程模式时,接收所述比较器输出的第二监控完成信号;
当接收到所述第二监控完成信号时,比较捕捉信号编号和使能通道编号,若二者相等,则发送所述通道切换信号至所述通道状态机,否则,输出复位信号。
优选的,所述捕捉信号编号包括第一捕捉信号编号和第二捕捉信号编号;
所述使能通道编号包括第一使能通道编号和第二使能通道编号。
进一步优选的,所述比较捕捉信号编号和使能通道编号具体包括:
比较所述第一捕捉信号编号和第一使能通道编号以及比较所述第二捕捉信号编号和第二使能通道编号。
进一步优选的,所述比较捕捉信号编号和使能通道编号之前,还包括:
读取捕捉信号标志寄存器中的捕捉信号编号和通道使能寄存器中的使能通道编号。
进一步优选的,所述捕捉信号标志寄存器包括第一捕捉信号标志寄存器和第二捕捉信号标志寄存器;
所述通道使能寄存器包括第一通道使能寄存器和第二通道使能寄存器。
进一步优选的,所述读取捕捉信号标志寄存器中的捕捉信号编号和通道使能寄存器中的使能通道编号,具体包括:
读取所述第一捕捉信号标志寄存器中的第一捕捉信号编号和所述第二捕捉信号标志寄存器中的第二捕捉信号编号;
读取所述第一通道使能寄存器中的第一使能通道编号和所述第二通道使能寄存器中的第二使能通道编号。
优选的,当接收到所述第一监控完成信号时,所述方法还包括:
发送停止计数信号和计数清零信号至定时器。
优选的,所述方法还包括:
接收所述通道状态机发送的通道切换完成信号,并根据所述通道切换完成信号进行自身复位。
本发明实施例第二方面提供了一种逻辑处理装置,所述装置包括:
读取模块,用于读取工作模式寄存器中设置的工作模式;所述工作模式包括单线程模式和多线程模式;
第一处理模块,当所述工作模式设置为单线程模式时,所述第一处理模块接收比较器输出的第一比较结果信号、第二比较结果信号和第一监控完成信号;当接收到所述第二比较结果信号时,输出复位信号;当接收到所述第一监控完成信号并且未接收到所述第一比较结果信号时,输出复位信号;当接收到所述第一监控完成信号并且接收到所述第一比较结果信号时,发送通道切换信号至通道状态机;
第二处理模块,当所述工作模式设置为多线程模式时,所述第二处理模块接收所述比较器输出的第二监控完成信号;当接收到所述第二监控完成信号时,比较捕捉信号编号和使能通道编号,若二者相等,则发送所述通道切换信号至所述通道状态机,否则,输出复位信号。
本发明实施例提供的一种逻辑处理方法及装置,通过读取工作模式寄存器中设置的工作模式来确定逻辑处理方法。当工作模式为单线程模式时,在接收到第二比较结果信号时或者在接收到第一监控完成信号并且仍未接收到第一比较结果信号时,输出复位信号;在接收到第一监控完成信号并且已接收到第一比较结果信号时,发送通道切换信号至通道状态机。当工作模式为多线程模式时,在接收到第二监控完成信号时,比较捕捉信号编号和使能通道编号,若相等,则发送通道切换信号至通道状态机,否则,输出复位信号。本发明通过设置工作模式进行不同的逻辑处理来实现看门狗对多线程任务的监控处理。
附图说明
图1为本发明实施例一提供的一种逻辑处理方法的流程示意图;
图2为本发明实施例二提供的一种逻辑处理装置的模块结构图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
本发明实施例一提供了一种逻辑处理方法,应用于看门狗中,执行主体为看门狗的控制逻辑模块,用于对看门狗捕捉喂狗信号的结果进行逻辑处理。图1为本发明实施例一提供的一种逻辑处理方法的流程示意图,如图1所示,本方法主要包括如下步骤:
步骤101,读取工作模式寄存器中设置的工作模式。
具体的,本发明中的看门狗既能运行在单线程模式对单线程任务流程进行监控,也能运行在多线程模式对多线程任务流程进行监控,主要通过设置工作模式寄存器中的数据位进行工作模式的配置,工作模式包括单线程模式和多线程模式。在工作模式寄存器中设置一个数据位mode,当mode数据位为0表示单线程模式,当mode数据位为1表示多线程模式。当需要看门狗运行在单线程模式时,则将工作模式寄存器中的mode数据位设置为0;当需要看门狗运行在多线程模式时,则将工作模式寄存器中的mode数据位设置为1。在看门狗的控制逻辑模块对喂狗信号的监控结果进行逻辑处理时,需要先读取工作模式寄存器中事先设置的工作模式,即读取工作模式寄存器中的mode数据位的值来确定具体的工作模式。当值为0时,控制逻辑模块按照单线程模式对看门狗监控喂狗信号产生的比较结果及监控结果进行逻辑处理;当值为1时,控制逻辑模块按照多线程模式对看门狗监控喂狗信号产生的监控结果进行逻辑处理。
步骤102,接收比较器输出的第一比较结果信号、第二比较结果信号和第一监控完成信号;当接收到第二比较结果信号时,输出复位信号;当接收到第一监控完成信号并且未接收到第一比较结果信号时,输出复位信号;当接收到第一监控完成信号并且接收到第一比较结果信号时,发送通道切换信号至通道状态机。
具体的,看门狗在对喂狗信号进行监控时,会根据实际对喂狗信号进行捕捉的情况生成相应的比较结果及监控结果,来判断喂狗操作是否正常,从而判断程序执行是否出现异常;当看门狗工作在单线程模式时,会在要监控的程序运行前为每一个喂狗信号配置相对应的监控时间片及监控时间窗口,其中,监控时间窗口位于监控时间片内,只有喂狗信号出现的时机位于设定的监控时间窗口内,才说明程序执行无异常,否则,都说明程序执行异常;监控时间片用于表示看门狗监控喂狗信号的时长,便于看门狗在当前喂狗信号监控结束时切换至对下一喂狗信号的监控。当喂狗信号出现在监控时间窗口内时,比较器会生成第一比较结果信号,表示喂狗信号正常到达,否则,生成第二比较结果信号,表示喂狗信号未正常到达;当监控时间片到达时,比较器会生成第一监控完成信号,表示当前喂狗信号监控结束。控制逻辑模块会接收比较器输出的第一比较结果信号、第二比较结果信号和第一监控完成信号。当控制逻辑模块接收到第二比较结果信号时,说明喂狗信号出现的时机不在事先设定的监控时间窗口内,进而说明程序执行过程中出现了异常情况,需要进行系统复位,因此,控制逻辑模块此时会输出复位信号。当控制逻辑模块接收到第一监控完成信号时,说明当前喂狗信号的监控时间已到,此时,如果尚未接收到第一比较结果信号,即看门狗未捕捉到当前喂狗信号,说明喂狗信号未能按时到达,程序执行出现异常,此时,控制逻辑模块输出复位信号;当控制逻辑模块接收到第一监控完成信号并且已经接收到第一比较结果信号时,说明喂狗信号正常出现在了监控时间窗口内,程序执行无异常,此时,控制逻辑模块会发送通道切换信号至通道状态机。其中,通道状态机用于获取多个已使能的喂狗通道,每个喂狗通道对应一路喂狗信号,在单线程模式下,通道状态机会对多个喂狗通道的喂狗信号进行顺序切换,以便看门狗依次对相应的喂狗信号进行监控。
步骤103,接收比较器输出的第二监控完成信号;当接收到第二监控完成信号时,比较捕捉信号编号和使能通道编号,若二者相等,则发送通道切换信号至通道状态机,否则,输出复位信号。
具体的,当看门狗工作在多线程模式时,控制逻辑模块会接收比较器输出的第二监控完成信号;在多线程模式时,看门狗会同时监控多个任务产生的喂狗信号,因此,不会像单线程模式那样按顺序监控喂狗信号,而是同时监控多个喂狗信号,并在监控完成时,检测所捕捉的多个喂狗信号与事先设定的多个喂狗信号的编号是否一致,来判定多个子任务对应的多个喂狗信号是否存在异常。具体的,在看门狗捕捉到喂狗信号时,记录捕捉信号编号至捕捉信号标志寄存器中,其中,捕捉信号编号即喂狗信号的编号,每个喂狗信号具有唯一独立的编号。每个喂狗信号对应一个喂狗通道,在为喂狗信号设置喂狗通道的同时,将该喂狗通道的使能控制位设置到通道使能寄存器中,每个喂狗通道的使能控制位对应一个使能通道编号。因此,在比较捕捉信号编号和使能通道信号之前,控制逻辑模块会先从捕捉信号标志寄存器中读取捕捉信号编号以及从通道使能寄存器中读取使能通道编号,然后再进行比较。在控制逻辑模块接收到比较器输出的第二监控完成信号时,说明看门狗对多个子任务的喂狗信号的监控时间已到,此时,比较已捕捉到的所有喂狗信号的捕捉信号编号和已使能的所有喂狗信号的使能通道编号是否相等,如果二者相等,说明多个子任务的喂狗信号均已正确到达,多个子任务均正常执行,此时,发送通道切换信号至通道状态机,如果二者不相等,说明至少一个子任务的喂狗信号未能按时到达,即至少一个子任务执行出现异常,此时,输出复位信号。
进一步的,本发明中的看门狗既能用于监控软件喂狗信号,也能用于监控硬件喂狗信号。在多线程模式中,看门狗捕捉到的喂狗信号对应的捕捉信号编号包括第一捕捉信号编号和第二捕捉信号编号,其中,第一捕捉信号编号对应于软件喂狗信号,存储在第一捕捉信号标志寄存器中;第二捕捉信号编号对应于硬件喂狗信号,存储在第二捕捉信号标志寄存器中。因此,控制逻辑模块在读取捕捉信号编号时,需要分别从第一捕捉信号标志寄存器中读取第一捕捉信号编号以及从第二捕捉信号标志寄存器中读取第二捕捉信号编号。
相应的,使能通道编号也包括有第一使能通道编号和第二使能通道编号,其中,第一使能通道编号对应软件喂狗信号的喂狗通道,第二使能通道编号对应硬件喂狗信号的喂狗通道。通道使能寄存器包括第一通道使能寄存器和第二通道使能寄存器,第一使能通道编号存储在第一通道使能寄存器中,第二使能通道编号存储在第二通道使能寄存器中。因此,控制逻辑模块在读取使能通道编号时,需要分别从第一通道使能寄存器中读取第一使能通道编号以及从第二通道使能寄存器中读取第二使能通道编号。
因此,控制逻辑模块比较捕捉信号编号和使能通道编号,具体包括:
比较第一捕捉信号编号和第一使能通道编号,以及,比较第二捕捉信号编号和第二使能通道编号。
进一步的,本方法还包括:发送停止计数信号和计数清零信号至定时器。
具体的,在监控完成时,控制逻辑模块会向看门狗的定时器发送停止计数信号用于定时器停止当前计数,同时发送计数清零信号至定时器用于定时器对当前计数值进行清零操作,以便进行下一次的计数。
进一步的,通道状态机在对喂狗通道切换完毕后,会生成通道切换完成信号,并将通道切换完成信号发送给控制逻辑模块,控制逻辑模块接收到通道状态机发送的通道切换完成信号后,根据通道切换完成信号进行自身复位,以便进行下一次的逻辑处理。
本发明实施例二提供了一种逻辑处理装置,图2为本发明实施例二提供的一种逻辑处理装置的模块结构图,如图2所示,该装置包括:
读取模块201,用于读取工作模式寄存器中设置的工作模式;工作模式包括单线程模式和多线程模式;
第一处理模块202,当工作模式设置为单线程模式时,第一处理模块接收比较器输出的第一比较结果信号、第二比较结果信号和第一监控完成信号;当接收到第二比较结果信号时,输出复位信号;当接收到第一监控完成信号并且未接收到第一比较结果信号时,输出复位信号;当接收到第一监控完成信号并且接收到第一比较结果信号时,发送通道切换信号至通道状态机;
第二处理模块203,当工作模式设置为多线程模式时,第二处理模块接收比较器输出的第二监控完成信号;当接收到第二监控完成信号时,比较捕捉信号编号和使能通道编号,若二者相等,则发送通道切换信号至通道状态机,否则,输出复位信号。
本发明实施例二提供的一种逻辑处理装置,用以执行本发明实施例一提供的方法的步骤,其实现原理和技术效果类似,在此不再赘述。
需要说明的是,应理解以上装置的各个模块的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。且这些模块可以全部以软件通过处理元件调用的形式实现;也可以全部以硬件的形式实现;还可以部分模块通过处理元件调用软件的形式实现,部分模块通过硬件的形式实现。例如,获取模块可以为单独设立的处理元件,也可以集成在上述装置的某一个芯片中实现,此外,也可以以程序代码的形式存储于上述装置的存储器中,由上述装置的某一个处理元件调用并执行以上获取模块的功能。其它模块的实现与之类似。此外这些模块全部或部分可以集成在一起,也可以独立实现。这里所描述的处理元件可以是一种集成电路,具有信号的处理能力。在实现过程中,本发明实施例提供的方法的各步骤或本发明实施例提供的装置的各个模块可以通过处理器元件中的硬件的集成逻辑电路或者软件形式的指令完成。
例如,本发明实施例提供的装置的模块可以是被配置成本发明实施例提供的方法的一个或多个集成电路,例如:一个或多个特定集成电路(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、或技术领域内所公知的任意其它形式的存储介质中。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。