嵌入式调度器故障恢复方法、嵌入式系统及存储介质与流程

文档序号:30497894发布日期:2022-06-22 07:21阅读:111来源:国知局
嵌入式调度器故障恢复方法、嵌入式系统及存储介质与流程

1.本技术涉及嵌入式技术领域,尤其涉及一种嵌入式调度器故障恢复方法、嵌入式系统及存储介质。


背景技术:

2.嵌入式软件就是嵌入在硬件中的操作系统和开发工具软件,它在产业中的关联关系体现为:芯片设计制造、嵌入式系统软件、嵌入式电子设备开发、制造。目前,在嵌入式系统多任务软件中,通常使用基于任务优先级或者时间片轮转的调度方法,调度器一般通过定时器周期性中断来调度相关任务,并且每个周期定时给外部硬件看门狗喂狗。但是,当调度器由于任务出现死循环或者过长时间阻塞等故障而无法对整个任务队列进行调度时,会导致外部看门狗计数器长时间得不到喂狗而溢出,导致整个软件系统重启,进而影响整个系统的稳定性。


技术实现要素:

3.本技术通过提供一种嵌入式调度器故障恢复方法、嵌入式系统及存储介质,旨在解决调度器出现故障导致系统重启的问题。
4.为实现上述目的,本技术提供了一种嵌入式调度器故障恢复方法,所述嵌入式调度器故障恢复方法,包括:在接收到目标中断源产生的中断信号时,控制调度器调度目标任务;在所述调度器调度目标任务过程中检测到第三定时器中断时,控制备用定时器启动,采用所述备用定时器作为所述调度器的目标中断源,其中,所述第三定时器与主定时器通过控制器连接,所述主定时器作为所述目标中断源,未接收到所述主定时器的中断信号时,控制所述第三定时器中断。
5.可选地,所述在接收到目标中断源产生的中断信号时,控制调度器调度目标任务的步骤包括:在主定时器启动时,将所述主定时器作为目标中断源;获取主定时器作为目标中断源时的当前中断时长;在所述主定时器作为目标中断源时的当前中断时长达到第一中断时长时,根据所述主定时器作为目标中断源产生的中断信号控制调度器从调度列表中调度目标任务。
6.可选地,所述在所述主定时器作为目标中断源时的当前中断时长达到第一中断时长时,根据所述主定时器作为目标中断源产生的中断信号控制调度器从调度列表中调度目标任务的步骤之后,还包括:在预设调度时长内所述调度器未接收到所述主定时器作为目标中断源产生的中断信号时,则控制第三定时器中断,执行所述在所述调度器调度目标任务过程中检测到第三定时器中断时,控制备用定时器启动,采用所述备用定时器作为所述调度器的目标中断源的步骤,其中,所述预设调度时长大于所述第一中断时长。
7.可选地,所述在所述调度器调度目标任务过程中检测到第三定时器中断时,控制备用定时器启动,采用所述备用定时器作为所述调度器的目标中断源的步骤包括:在所述调度器调度目标任务过程中检测到第三定时器中断时,检测所述目标任务是否执行完成;在检测到所述目标任务未执行完成时,控制备用定时器启动,采用所述备用定时器作为所述调度器的目标中断源。
8.可选地,所述在所述调度器调度目标任务过程中检测到第三定时器中断时,控制备用定时器启动,采用所述备用定时器作为所述调度器的目标中断源的步骤之后,还包括:获取所述备用定时器作为所述调度器的目标中断源时的当前中断时长;在所述备用定时器作为所述调度器的目标中断源时的当前中断时长达到第二中断时长时,根据所述备用定时器作为所述调度器的目标中断源时产生的中断信号控制调度器从调度列表中调度所述目标任务;其中,所述第一中断时长等于所述第二中断时长。
9.可选地,在所述调度器调度目标任务过程中检测到第三定时器中断时,控制备用定时器启动,采用所述备用定时器作为所述调度器的目标中断源的步骤之后,还包括:检测所述第三定时器中断的次数;在所述次数达到预设次数时,采用所述第三定时器作为所述调度器的目标中断源。
10.可选地,所述在所述次数达到预设次数时,采用所述第三定时器作为所述调度器的目标中断源的步骤包括:在所述次数达到预设次数时,将主定时器和备用定时器的工作状态更新为关闭状态;将所述第三定时器的工作状态更新为开启状态,以将所述第三定时器作为所述调度器的目标中断源。
11.可选地,所述在接收到目标中断源产生的中断信号时,控制调度器调度目标任务的步骤之前,还包括:初始化主定时器、备用定时器以及第三定时器。
12.此外,为实现上述目的,本技术还提供了一种嵌入式系统,所述嵌入式系统包括:主定时器、备用定时器、第三定时器、调度器、存储器、处理器及存储在所述存储器上并可在所述处理器上运行的嵌入式调度器故障恢复程序,所述嵌入式调度器故障恢复程序被所述处理器执行时实现上述的嵌入式调度器故障恢复方法的步骤。
13.此外,为实现上述目的,本技术还提供了一种计算机可读存储介质,其上存储有嵌入式调度器故障恢复程序,所述嵌入式调度器故障恢复程序被处理器执行时实现上述的嵌入式调度器故障恢复方法的步骤。
14.本技术提供的一种嵌入式调度器故障恢复方法、嵌入式系统及存储介质的技术方案,通过采用在接收到目标中断源产生的中断信号时,控制调度器调度目标任务;在所述调度器调度目标任务过程中,当检测到第三定时器中断时,控制备用定时器启动,采用所述备用定时器作为所述调度器的目标中断源,其中,所述第三定时器与主定时器通过控制器连接,所述主定时器作为所述目标中断源,未接收到所述主定时器的中断信号时,控制所述第三定时器中断技术方案,由于设置冗余定时器,在调度器出现故障时,通过切换驱动调度器
运行的定时器,使得可以在不重启系统的情况下让调度器从故障中恢复,从而提高嵌入式系统的稳定性。
附图说明
15.图1为本技术实施例方案涉及的嵌入式系统的结构示意图;图2为本技术嵌入式调度器故障恢复方法第一实施例的流程示意图;图3为本技术嵌入式调度器故障恢复方法第二实施例的流程示意图。
16.本技术目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明,上述附图只是一个实施例图,而不是发明的全部。
具体实施方式
17.应当理解,此处所描述的具体实施例仅用以解释本技术,并不用于限定本技术。
18.由于在嵌入式系统多任务软件中,通常使用基于任务优先级或者时间片轮转的调度方法,调度器一般通过定时器周期性中断来调度相关任务,并且每个周期定时给外部硬件看门狗喂狗。但是,当调度器由于任务出现死循环或者过长时间阻塞等故障而无法对整个任务队列进行调度时,会导致外部看门狗计数器长时间得不到喂狗而溢出,导致整个软件系统重启,进而影响整个系统的稳定性。而本技术通过设置冗余定时器,在调度器出现故障时,通过切换驱动调度器运行的定时器,使得可以在不重启系统的情况下让调度器从故障中恢复,从而提高嵌入式系统的稳定性。
19.为了更好的理解上述技术方案,下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
20.如图1所示,图1为嵌入式系统的硬件运行环境的结构示意图。
21.如图1所示,该嵌入式系统可以包括:处理器1001,例如cpu,存储器1005,用户接口1003,网络接口1004,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(display)、输入单元比如键盘(keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如wi-fi接口)。存储器1005可以是高速ram存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
22.该嵌入式系统还包括主定时器、备用定时器、第三定时器、调度器。其中,主定时器作为调度器的主中源,通过外部晶振和cpld产生5毫秒周期性中断。备用定时器作为调度器的备用中断源,通过外部晶振处理器内部pll分频产生5毫秒周期性中断。第三定时器作为调度器故障检测和恢复程序的中断源,通过外部晶振处理器内部pll分频产生15毫秒周期性中断(相当于定时器主定时器/备用定时器的 3个调度节拍的故障容忍时间)。
23.本领域技术人员可以理解,图1中示出的嵌入式系统结构并不构成对嵌入式系统限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
24.如图1所示,作为一种存储介质的存储器1005中可以包括操作系统、网络通信模
块、用户接口模块以及嵌入式调度器故障恢复程序。其中,操作系统是管理和控制嵌入式系统硬件和软件资源的程序,嵌入式调度器故障恢复程序以及其它软件或程序的运行。
25.在图1所示的嵌入式系统中,用户接口1003主要用于连接终端,与终端进行数据通信;网络接口1004主要用于后台服务器,与后台服务器进行数据通信;处理器1001可以用于调用存储器1005中存储的嵌入式调度器故障恢复程序。
26.在本实施例中,嵌入式系统包括:存储器1005、处理器1001及存储在所述存储器上并可在所述处理器上运行的嵌入式调度器故障恢复程序,其中:处理器1001调用存储器1005中存储的嵌入式调度器故障恢复程序时,执行以下操作:在接收到目标中断源产生的中断信号时,控制调度器调度目标任务;在所述调度器调度目标任务过程中检测到第三定时器中断时,控制备用定时器启动,采用所述备用定时器作为所述调度器的目标中断源,其中,所述第三定时器与主定时器通过控制器连接,所述主定时器作为所述目标中断源,未接收到所述主定时器的中断信号时,控制所述第三定时器中断。
27.处理器1001调用存储器1005中存储的嵌入式调度器故障恢复程序时,还执行以下操作:在主定时器启动时,将所述主定时器作为目标中断源;获取主定时器作为目标中断源时的当前中断时长;在所述主定时器作为目标中断源时的当前中断时长达到第一中断时长时,根据所述主定时器作为目标中断源产生的中断信号控制调度器从调度列表中调度目标任务。
28.处理器1001调用存储器1005中存储的嵌入式调度器故障恢复程序时,还执行以下操作:在预设调度时长内所述调度器未接收到所述主定时器作为目标中断源产生的中断信号时,则控制第三定时器中断,执行所述在所述调度器调度目标任务过程中检测到第三定时器中断时,控制备用定时器启动,采用所述备用定时器作为所述调度器的目标中断源的步骤,其中,所述预设调度时长大于所述第一中断时长。
29.处理器1001调用存储器1005中存储的嵌入式调度器故障恢复程序时,还执行以下操作:在所述调度器调度目标任务过程中检测到第三定时器中断时,检测所述目标任务是否执行完成;在检测到所述目标任务未执行完成时,控制备用定时器启动,采用所述备用定时器作为所述调度器的目标中断源。
30.处理器1001调用存储器1005中存储的嵌入式调度器故障恢复程序时,还执行以下操作:获取所述备用定时器作为所述调度器的目标中断源时的当前中断时长;在所述备用定时器作为所述调度器的目标中断源时的当前中断时长达到第二中断时长时,根据所述备用定时器作为所述调度器的目标中断源时产生的中断信号控制调度器从调度列表中调度所述目标任务;其中,所述第一中断时长等于所述第二中断时长。
31.处理器1001调用存储器1005中存储的嵌入式调度器故障恢复程序时,还执行以下
操作:检测所述第三定时器中断的次数;在所述次数达到预设次数时,采用所述第三定时器作为所述调度器的目标中断源。
32.处理器1001调用存储器1005中存储的嵌入式调度器故障恢复程序时,还执行以下操作:在所述次数达到预设次数时,将主定时器和备用定时器的工作状态更新为关闭状态;将所述第三定时器的工作状态更新为开启状态,以将所述第三定时器作为所述调度器的目标中断源。
33.处理器1001调用存储器1005中存储的嵌入式调度器故障恢复程序时,还执行以下操作:初始化主定时器、备用定时器以及第三定时器。
34.以下将以实施例的方式介绍本技术的技术方案。
35.第一实施例。
36.如图2所示,在本技术的第一实施例中,本技术的嵌入式调度器故障恢复方法,包括以下步骤:步骤s110,在接收到目标中断源产生的中断信号时,控制调度器调度目标任务。
37.在本实施例中,在嵌入式系统多任务软件中,通常使用基于任务优先级或者时间片轮转的调度方法,调度器一般通过定时器周期性中断来调度相关任务,并且每个周期定时给外部硬件看门狗喂狗。如果调度器由于任务出现死循环或者过长时间阻塞等故障而无法对整个任务队列进行调度时,会导致外部看门狗计数器长时间得不到喂狗而溢出,导致整个软件系统重启复位。为了使得可以在不重启系统的情况下让调度器从故障中恢复,提高嵌入式系统的稳定性。本技术提出了一种嵌入式调度器故障恢复方法。该嵌入式调度器故障恢复方法通过设置一组冗余定时器,在调度器出现故障时,通过切换驱动调度器运行的定时器,使得可以在不重启系统的情况下让调度器从故障中恢复。
38.在本实施例中,中断是指由于某种事件的发生(硬件或者软件的),计算机暂停执行当前的程序,转而执行另一程序,以处理发生的事件,处理完毕后又返回原程序继续作业的过程。中断是处理器一种工作状态的描述。本技术将引起中断的原因,或者能够发出中断信号的来源统称为目标中断源。
39.该目标中断源可以为主定时器、备用定时器或者第三定时器。其中,主定时器作为嵌入式系统的任务调度器的主中断源,在嵌入式系统运行时,默认启动主定时器。备用定时器作为任务调度器的备用中断源,在嵌入式系统运行时默认备用定时器不启用。第三定时器作为调度器故障检测和恢复程序的中断源。主定时器和备用定时器在正常工作时,每次产生中断信号都要复位第三定时器到初始状态,相当于在任务调度器正常工作时,不会触发第三定时器产生中断进入任务调度器故障检测和恢复程序。
40.该调度器是指进行任务调度的程序,调度器通常允许多个任务实时有效的利用系统的资源,或达到指定的服务质量。
41.在本实施例中,所述目标任务存在多个,且所述目标任务会预先注册在调度列表
中等待调度。在目标任务注册的过程中,同时会注册目标任务的优先级、调度周期、执行时间等信息。在正常调度的过程中,基于该优先级从调度列表中调度目标任务。
42.在本实施例中,嵌入式系统启动时,默认主定时器工作。在主定时器工作时,即在将主定时器作为目标中断源时,通过主定时器作为目标中断源时产生的中断信号控制调度器调度目标任务进行执行。由于,主定时器通过外部晶振和cpld产生5毫秒周期性中断,也即5毫秒产生一次中断信号,使得调度器在接收到该中断信号时调度目标任务进行执行。
43.步骤s120,在所述调度器调度目标任务过程中检测到第三定时器中断时,控制备用定时器启动,采用所述备用定时器作为所述调度器的目标中断源,其中,所述第三定时器与主定时器通过控制器连接,所述主定时器作为所述目标中断源,未接收到所述主定时器的中断信号时,控制所述第三定时器中断。
44.在本实施例中,在调度器调度目标任务的过程中,每次产生中断信号都要复位第三定时器到初始状态,即在任务调度器正常工作时,不会触发第三定时器产生中断进入任务调度器故障检测和恢复程序。在任务调度器异常时,例如,由于任务出现死循环或者过长时间阻塞导致外部看门狗计数器长时间得不到喂狗而溢出时,判定任务调度器异常。此时,触发第三定时器产生中断进入任务调度器故障检测和恢复程序,也即在主定时器作为目标中断源,未接收到所述主定时器的中断信号时,第三定时器会产生中断以进行故障检测和恢复程序。
45.在本实施例中,主定时器、备用定时器和第三定时器均与控制器连接,在控制器上通过控制程序驱动对应的定时器工作,以使得定时器工作时能产生中断信号控制调度器从调度列表中调度目标任务。
46.在本实施例中,在主定时器无法产生中断信号控制调度器调度目标任务时,为了使得目标任务能够继续被调度执行此时,会控制备用定时器启动,采用备用定时器替代主定时器。将备用定时器作为调度器的目标中断源,通过备用定时器产生的中断信号控制调度器调度目标任务。
47.本实施例根据上述技术方案,通过采用在接收到目标中断源产生的中断信号时,控制调度器调度目标任务;在所述调度器调度目标任务过程中,当检测到第三定时器中断时,控制备用定时器启动,采用所述备用定时器作为所述调度器的目标中断源,其中,所述第三定时器与主定时器通过控制器连接,所述主定时器作为所述目标中断源,未接收到所述主定时器的中断信号时,控制所述第三定时器中断技术方案,由于设置冗余定时器,在调度器出现故障时,通过切换驱动调度器运行的定时器,使得可以在不重启系统的情况下让调度器从故障中恢复,从而提高嵌入式系统的稳定性。
48.第二实施例。
49.在本技术的第二实施例中,本技术的嵌入式调度器故障恢复方法,包括以下步骤:步骤s111,在主定时器启动时,将所述主定时器作为目标中断源。
50.在本实施例中,在控制器启动时,即嵌入式系统启动时,主定时器默认启动进行工作,此时主定时作为目标中断源。
51.步骤s112,获取所述主定时器作为目标中断源时的当前中断时长。
52.在本实施例中,在主定时器作为目标中断源时,实时计时一个任务从调度列表被调度出去到当前时刻之间的时长,将该时长确定为当前中断时长。
53.步骤s113,在所述主定时器作为目标中断源时的当前中断时长达到第一中断时长时,根据所述主定时器作为目标中断源产生的中断信号控制调度器从调度列表中调度目标任务。
54.在本实施例中,第一中断时长为主定时器作为目标中断源时所对应的中断周期,由于主定时器作为调度器的目标中断源,通过外部晶振和cpld产生5毫秒周期性中断,因此,将第一中断时长确定为5毫秒。在主定时器作为目标中断源时的当前中断时长达到5毫秒,控制调度器从调度列表中调度下一任务。
55.步骤s120,在所述调度器调度目标任务过程中检测到第三定时器中断时,控制备用定时器启动,采用所述备用定时器作为所述调度器的目标中断源,其中,所述第三定时器与主定时器通过控制器连接,所述主定时器作为所述目标中断源,未接收到所述主定时器的中断信号时,控制所述第三定时器中断。
56.本实施例根据上述技术方案,由于采用了在控制器启动时,将所述主定时器作为目标中断源,获取所述主定时器作为目标中断源时的当前中断时长,在当前中断时长达到第一中断时长时通过主定时器产生的中断信号控制调度器从调度列表中调度目标任务,在所述调度器调度目标任务过程中检测到第三定时器中断时,控制备用定时器启动,采用所述备用定时器作为调度器的目标中断源的技术手段,实现了任务的调度以及在调度过程出现故障时,及时切换其他定时器以提高嵌入式系统的稳定性。
57.第三实施例。
58.在本技术的第三实施例中,本技术的嵌入式调度器故障恢复方法,包括以下步骤:步骤s111,在主定时器启动时,将所述主定时器作为目标中断源;步骤s112,获取所述主定时器作为目标中断源时的当前中断时长;步骤s113,在所述主定时器作为目标中断源时的当前中断时长达到第一中断时长时,根据所述主定时器作为目标中断源产生的中断信号控制调度器从调度列表中调度目标任务。
59.步骤s210,在预设调度时长内所述调度器未接收到所述主定时器作为目标中断源产生的中断信号时,则控制第三定时器中断。
60.在本实施例中,预设调度时长大于所述第一中断时长。该预设调度时长可根据实际情况进行设置。本技术可将预设调度时长设置为3个调度周期。如果调度列表中某个任务耗尽调度周期时间片,或者由于主定时器自身故障无法产生正常中断,则3个调度周期之后,第三定时器会由于没有被主定时器中断程序复位,进而触发第三定时器中断服务进入调度器故障检测和恢复程序。
61.步骤s120,在所述调度器调度目标任务过程中检测到第三定时器中断时,控制备用定时器启动,采用所述备用定时器作为所述调度器的目标中断源,其中,所述第三定时器与主定时器通过控制器连接,所述主定时器作为所述目标中断源,未接收到所述主定时器的中断信号时,控制所述第三定时器中断。
62.在本实施例的技术方案中,采用在主定时器启动时,获取主定时器作为目标中断源时的当前中断时长;在该当前中断时长达到第一中断时长时,根据主定时器作为目标中断源产生的中断信号控制调度器从调度列表中调度目标任务。若在预设调度时长内所述调度器未接收到所述主定时器作为目标中断源产生的中断信号时,则表示调度过程出现故
障,则控制第三定时器中断。并在第三定时器中断时,控制备用定时器启动,采用所述备用定时器作为所述调度器的目标中断源的技术方案,实现了在调度过程出现故障时,及时切换其他定时器以提高嵌入式系统的稳定性。
63.第四实施例。
64.在本技术的第四实施例中,本技术的嵌入式调度器故障恢复方法,包括以下步骤:步骤s111,在主定时器启动时,将所述主定时器作为目标中断源;步骤s112,获取所述主定时器作为目标中断源时的当前中断时长;步骤s113,在所述主定时器作为目标中断源时的当前中断时长达到第一中断时长时,根据所述主定时器作为目标中断源产生的中断信号控制调度器从调度列表中调度目标任务。
65.步骤s210,在预设调度时长内所述调度器未接收到所述主定时器作为目标中断源产生的中断信号时,则控制第三定时器中断。
66.步骤s121,在所述调度器调度目标任务过程中检测到第三定时器中断时,检测所述目标任务是否执行完成;步骤s122,在检测到所述目标任务未执行完成时,控制备用定时器启动,采用所述备用定时器作为所述调度器的目标中断源。
67.在本实施例中,在第三定时器中断时,即第三定时器进入故障检测和恢复程序中时,如果发现调度列表中有任务未执行完,则表明任务超时,则通过重启主定时器,由主定时器作为调度器主中断源。如果主定时器由于时钟异常没能正常产生中断信号时,则控制备用定时器启动。采用备用定时器作为调度器的目标中断源。
68.可选地,在调度列表中的目标任务均被调度执行完成时,可生成对应的标志位,以表示当前的调度状态。
69.本实施例根据上述技术方案,由于采用在主定时器启动时,将所述主定时器作为目标中断源;在主定时器作为目标中断源时的当前中断时长达到第一中断时长时,根据主定时器产生的中断信号控制调度器从调度列表中调度目标任务;在预设调度时长内调度器未接收到主定时器作为目标中断源产生的中断信号时,则控制第三定时器中断;在调度器调度目标任务过程中检测到第三定时器中断时,检测目标任务是否执行完成;在检测到目标任务未执行完成时,控制备用定时器启动,采用备用定时器作为调度器的目标中断源的技术手段,实现了在调度过程出现故障时,及时切换其他定时器以提高嵌入式系统的稳定性。
70.第五实施例。
71.在本技术的第五实施例中,本技术的嵌入式调度器故障恢复方法,包括以下步骤:步骤s110,在接收到目标中断源产生的中断信号时,控制调度器调度目标任务。
72.步骤s120,在所述调度器调度目标任务过程中检测到第三定时器中断时,控制备用定时器启动,采用所述备用定时器作为所述调度器的目标中断源,其中,所述第三定时器与主定时器通过控制器连接,所述主定时器作为所述目标中断源,未接收到所述主定时器的中断信号时,控制所述第三定时器中断。
73.步骤s310,获取所述备用定时器作为所述调度器的目标中断源时的当前中断时长;
步骤s320,在所述备用定时器作为所述调度器的目标中断源时的当前中断时长达到第二中断时长时,根据所述备用定时器作为所述调度器的目标中断源时产生的中断信号控制调度器从调度列表中调度所述目标任务;其中,所述第一中断时长等于所述第二中断时长。
74.在本实施例,由备用定时器来触发调度器进行任务调度。在备用定时器作为调度器的目标中断源时,如果备用定时器也因为某个任务耗尽调度周期时间片,或者备用定时器自身故障而无法产生正常中断,亦会触发第三定时器中断,使得第三定时器进入故障检测和恢复程序。
75.在本实施例中,在备用定时器作为目标中断源时,实时计时一个任务从调度列表被调度出去到当前时刻之间的时长,将该时长确定为当前中断时长。
76.在本实施例中,第二中断时长为备用定时器作为目标中断源时所对应的中断周期,由于备用定时器作为调度器的目标中断源时,通过外部晶振处理器内部pll分频产生5毫秒周期性中断,因此,将第二中断时长确定为5毫秒。在备用定时器作为目标中断源时的当前中断时长达到5毫秒,控制调度器从调度列表中调度下一任务。
77.本实施例根据上述技术方案,由于采用了在接收到目标中断源产生的中断信号时,控制调度器调度目标任务;在调度器调度目标任务过程中检测到第三定时器中断时,控制备用定时器启动,采用备用定时器作为调度器的目标中断源,在所述备用定时器作为所述调度器的目标中断源时的当前中断时长达到第二中断时长时,根据目标中断源产生的中断信号控制调度器从调度列表中调度所述目标任务的技术手段,实现了任务的调度以及在调度过程出现故障时,及时切换其他定时器以提高嵌入式系统的稳定性。
78.第六实施例。
79.在本技术的第六实施例中,本技术的嵌入式调度器故障恢复方法,包括以下步骤:步骤s110,在接收到目标中断源产生的中断信号时,控制调度器调度目标任务。
80.步骤s120,在所述调度器调度目标任务过程中检测到第三定时器中断时,控制备用定时器启动,采用所述备用定时器作为所述调度器的目标中断源,其中,所述第三定时器与主定时器通过控制器连接,所述主定时器作为所述目标中断源,未接收到所述主定时器的中断信号时,控制所述第三定时器中断。
81.步骤s410,检测所述第三定时器中断的次数;步骤s420,在所述次数达到预设次数时,采用所述第三定时器作为所述调度器的目标中断源。
82.在本实施例中,预设次数可根据实际情况进行设置。在第三定时器中断的过程中,实时累加第三定时器中断的次数。在第三定时器中断的次数达到预设次数时,采用第三定时器作为调度器的目标中断源。具体的,当第三定时器多次进入故障检测和恢复程序后,表明此系统已经无法从硬件上重构主定时器和备用定时器,切换第三定时器并重置其中断周期为5毫秒,使其直接充当任务调度器的目标中断源触发调度器进行任务调度。
83.可选地,在所述次数达到预设次数时,采用所述第三定时器作为所述调度器的目标中断源具体包括以下步骤:步骤s421,在所述次数达到预设次数时,将主定时器和备用定时器的工作状态更新为关闭状态;
步骤s422,将所述第三定时器的工作状态更新为开启状态,以将所述第三定时器作为所述调度器的目标中断源。
84.在本实施例中,在第三定时器中断的次数达到预设次数时,采用第三定时器作为所述调度器的目标中断源。具体的,可将主定时器和备用定时器的工作状态更新为关闭状态,将第三定时器的工作状态更新为开启状态,进而将第三定时器作为所述调度器的目标中断源。
85.可选地,在第三定时器中断的次数未达到预设次数时,则可根据实际情况选择主定时器还是备用定时器作为调度器的目标中断源。
86.本实施例根据上述技术方案,通过检测第三定时器中断的次数达到预设次数时,更新主定时器和备用定时器的工作状态的技术手段,实现了任务的调度以及在调度过程中,主定时器和备用定时器不能正常产生中断信号时,及时切换第三定时器产生中断信号进行任务调度,以提高嵌入式系统的稳定性。
87.第七实施例。
88.在本技术的第七实施例中,本技术的嵌入式调度器故障恢复方法,包括以下步骤:步骤s510,初始化主定时器、备用定时器以及第三定时器。
89.在本实施例中,在嵌入式系统启动时,预先进行初始化,主要是对主定时器、备用定时器以及第三定时器进行初始化。使得在嵌入式系统启动时,主定时器默认启动,备用定时器默认不工作,在主定时器工作时,第三定时器复位。
90.步骤s110,在接收到目标中断源产生的中断信号时,控制调度器调度目标任务。
91.步骤s120,在所述调度器调度目标任务过程中检测到第三定时器中断时,控制备用定时器启动,采用所述备用定时器作为所述调度器的目标中断源,其中,所述第三定时器与主定时器通过控制器连接,所述主定时器作为所述目标中断源,未接收到所述主定时器的中断信号时,控制所述第三定时器中断。
92.本实施例根据上述技术方案,由于采用了在调度之前对主定时器、备用定时器以及第三定时器进行初始化的技术手段,以为后续任务调度提供前提条件。
93.第八实施例。
94.第八实施例为本技术嵌入式调度器故障恢复方法另一实施例。具体的,参照图3,在嵌入式系统启动时,首先会初始化主定时器、备用定时器以及第三定时器;其中,初始化主定时器与初始化备用定时器时注册相同的中断函数;初始化第三定时器时注册调度器故障检测和恢复函数。在对主定时器、备用定时器以及第三定时器初始化之后,运行主定时器,同时运行第三定时器。检测主定时器是否产生中断。若主定时器或备用定时器产生中断时,对第三定时器进行复位并控制调度器调度目标任务。在调度目标任务进行执行的过程中,判断目标任务是否严重超时或者死循环。若目标任务严重超时或者死循环,则时间累积到第三定时器触发调度器故障检测与恢复函数。在第三定时器触发调度器故障检测与恢复函数之后,判断进入故障检测与恢复函数的次数是否达到上限。若达到上限,则重置第三定时器的运行周期,并设置第三定时器作为调度器的中断源,控制第三定时器周期性触发调度器调度任务。
95.可选地,若主定时器或备用定时器未产生中断时,则直接跳转至时间累积到第三定时器触发调度器故障检测与恢复函数的步骤。
96.可选地,若目标任务没有严重超时或者没有进入死循环,则表示当前嵌入式系统处于空闲状态,返回执行检测主定时器或备用定时器是否产生中断的步骤。
97.可选地,若进入故障检测与恢复函数的次数未达到上限时,再次判断任务是否严重超时或者死循环。若任务严重超时或者死循环,则停止运行主定时器,启动备用定时器作为调度器目标中断源,并同时记录进入故障检测与恢复函数的次数,执行与主定时器相同的中断函数,并同时执行检测主定时器是否产生中断的步骤。若任务没有严重超时或者没有进入死循环,则需要重启主定时器,记录进入故障检测与恢复函数的次数,并同时执行检测主定时器是否产生中断的步骤。
98.本技术实施例提供了嵌入式调度器故障恢复方法的实施例,需要说明的是,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
99.基于同一发明构思,本技术实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有嵌入式调度器故障恢复程序,所述嵌入式调度器故障恢复程序被处理器执行时实现如上所述的嵌入式调度器故障恢复的各个步骤,且能达到相同的技术效果,为避免重复,这里不再赘述。
100.由于本技术实施例提供的计算机可读存储介质,为实施本技术实施例的方法所采用的计算机可读存储介质,故而基于本技术实施例所介绍的方法,本领域所属人员能够了解该计算机可读存储介质的具体结构及变形,故而在此不再赘述。凡是本技术实施例的方法所采用的计算机可读存储介质都属于本技术所欲保护的范围。
101.本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
102.本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
103.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
104.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
105.应当注意的是,在权利要求中,不应将位于括号之间的任何参考符号构造成对权
利要求的限制。单词“包含”不排除存在未列在权利要求中的部件或步骤。位于部件之前的单词“一”或“一个”不排除存在多个这样的部件。本技术可以借助于包括有若干不同部件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
106.尽管已描述了本技术的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本技术范围的所有变更和修改。
107.显然,本领域的技术人员可以对本技术进行各种改动和变型而不脱离本技术的精神和范围。这样,倘若本技术的这些修改和变型属于本技术权利要求及其等同技术的范围之内,则本技术也意图包含这些改动和变型在内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1