一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

软件任务的管理方法、系统、设备及存储介质与流程

2022-08-09 00:45:20 来源:中国专利 TAG:


1.本发明涉及通信技术领域,特别涉及一种软件任务的管理方法、系统、设备及存储介质。


背景技术:

2.随着时代的进步,智能化设备的普及,对设备系统性能、安全、稳定性有了更高的要求,如何能够快速处理诸如通信、保护、报警等诸多信息功能的软件系统尤为重要,而现有的软件系统正常运行时通常是采用串行的方式按照顺序执行不同的软件任务,但是采用串行的方式会出现有的软件任务的任务运行速度慢而影响其他软件任务的运行,导致软件系统的实时性比较差。


技术实现要素:

3.本发明要解决的技术问题是为了克服现有技术中的软件系统采用串行的方式运行软件任务存在实时性差的缺陷,提供一种软件任务的管理方法、系统、设备及存储介质。
4.本发明是通过下述技术方案来解决上述技术问题:
5.本发明第一方面提供了一种软件任务的管理方法,所述管理方法包括:
6.获取至少一个软件任务的循环执行时长;
7.若检测出软件初始化后的时长达到所述循环执行时长中的目标循环执行时长,则调度所述目标循环执行时长对应的目标软件任务,并执行所述目标软件任务。
8.较佳地,所述若检测出软件初始化后的时长达到所述循环执行时长中的目标循环执行时长,则调度所述目标循环执行时长对应的目标软件任务,并执行所述目标软件任务的步骤之后,所述管理方法还包括:
9.获取所述目标软件任务的预设运行时长以及当前运行时长;
10.若所述当前运行时长小于等于所述预设运行时长时所述目标软件任务运行完成,则根据所述循环执行时长调度并执行其他软件任务。
11.较佳地,所述管理方法还包括:
12.若所述当前运行时长大于所述预设运行时长时所述目标软件任务运行未完成,则输出报警信息,并停止所述目标软件任务的运行。
13.较佳地,所述管理方法还包括:
14.获取每个软件任务的预设运行时长;
15.若所述每个软件任务在对应的预设运行时长内运行完成,则将所述每个软件任务对应的循环执行时长进行清零处理。
16.本发明第二方面提供了一种软件任务的管理系统,所述管理系统包括第一获取模块和第一执行模块;
17.所述第一获取模块用于获取至少一个软件任务的循环执行时长;
18.所述第一执行模块用于若检测出软件初始化后的时长达到所述循环执行时长中
的目标循环执行时长,则调度所述目标循环执行时长对应的目标软件任务,并执行所述目标软件任务。
19.较佳地,所述管理系统还包括第二获取模块和第二执行模块;
20.所述第二获取模块用于获取所述目标软件任务的预设运行时长以及当前运行时长;
21.所述第二执行模块用于若所述当前运行时长小于等于所述预设运行时长时所述目标软件任务运行完成,则根据所述循环执行时长调度并执行其他软件任务。
22.较佳地,所述管理系统还包括输出模块;
23.所述输出模块用于若所述当前运行时长大于所述预设运行时长时所述目标软件任务运行未完成,则输出报警信息,并停止所述目标软件任务的运行。
24.较佳地,所述管理系统还包括第三获取模块和处理模块;
25.所述第三获取模块用于获取每个软件任务的预设运行时长;
26.所述处理模块用于若所述每个软件任务在对应的预设运行时长内运行完成,则将所述每个软件任务对应的循环执行时长进行清零处理。
27.本发明第三方面提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现第一方面所述的软件任务的管理方法。
28.本发明第四方面提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现第一方面所述的软件任务的管理方法。
29.本发明的积极进步效果在于:
30.本发明通过检测软件初始化后的时长达到循环执行时长中的目标循环执行时长,则调度目标循环执行时长对应的目标软件任务,并执行目标软件任务,实现了根据循环执行时长调度并执行相应的软件任务,提高了软件系统的实时性以及整体运行效率。
附图说明
31.图1为本发明实施例1的软件任务的管理方法的第一流程图。
32.图2为本发明实施例1的软件任务的管理方法的第二流程图。
33.图3为本发明实施例1的软件任务的管理方法的第三流程图。
34.图4为本发明实施例2的软件任务的管理系统的结构示意图。
35.图5为本发明实施例3的电子设备的结构示意图。
具体实施方式
36.下面通过实施例的方式进一步说明本发明,但并不因此将本发明限制在所述的实施例范围之中。
37.实施例1
38.本实施例提供一种软件任务的管理方法,如图1所示,该管理方法包括:
39.步骤101、获取至少一个软件任务的循环执行时长;
40.本实施例中,每个软件任务的循环执行时长根据实际情况进行设置,通常将每个软件任务的循环执行时长设置为不同的数值,也可以设置为相同的数值,此处不做具体限
定。
41.步骤102、若检测出软件初始化后的时长达到循环执行时长中的目标循环执行时长,则调度目标循环执行时长对应的目标软件任务,并执行目标软件任务。
42.本实施例中,软件系统中的软件任务是基于嵌入式iar for stm8软件开发的,该开发软件具有以下特点:集成的工程管理工具和编辑器;支持c和c ;支持硬件调试;具备链接器和库管理工具;支持swd(串行)调试仿真;支持软件模拟仿真,正由于该开发软件所具有的强大功能,可使开发进度得以加快,开发周期得到缩短的。软件系统的软件架构通常分为软件初始化、任务调度、任务执行、任务计时等,软件初始化主要是硬件首次上电后对一些变量进行的操作,是软件准备执行相应任务(即软件任务对应的函数)前的操作,例如计时时间清零;任务调度是整个软件系统的核心,相当于整个软件系统负责调度的“大脑”,它会根据时间的设定去调用软件系统中的某一个具体函数去执行相应动作,如何才能准确、快速的响应是任务调度的关键,该任务调度具体是指首次执行软件任务,使能需要后续运行的软件任务,初始化各个软件任务需要运行的时间周期,制定每个软件任务执行优先级以及必要的软件驱动层配置。任务调度主要是将运行的指针函数指向将要运行的函数首地址,从而能够按照预定的方案执行相应的操作,例如执行通讯任务、数据采集任务、逻辑计算任务等等;任务执行是实现软件系统的最小执行单元,每个软件任务实现一个或几个特定的功能,而每个软件任务的功能都不尽相同,每个软件任务互相协调工作从而实现各种功能,它是任务调度执行的对象,具体地,任务执行是指所实现具体功能的函数,它分很多种不同的功能,例如在锂电保护行业中,电压计算函数、电流计算函数、温度计算函数和soc(系统级芯片)计算函数等等都是任务执行函数,这些最小执行单元的集合实现了锂电池保护系统的众多功能。任务计时是掌握整个软件系统“节奏”的关键,它从软件系统初始化完成后就会按照固定的“节拍”运行,同时它会记录各个软件任务运行开始到结束所运行的时长,将时长达到循环执行时长的信息传输给任务调度要运行的对象,如果时长未到则会自动查看下一个函数执行情况,循环往复,即任务计时是系统的主要节拍,它是保证整个系统能够准确、准时运行的关键,每个软件任务执行的时间是影响整个系统运行的关键,也是整个系统有条不紊运行的关键,何时开始运行某个软件任务(即函数),何时结束运行某个软件任务都非常清晰且健壮的。
43.本实施例中,每个软件任务都有对应的循环执行时长计时变量(或者有对应的循环计时器)进行单独计时,相互之间不受影响,在软件系统初始化后,每个软件任务通过各自的计时变量分别进行循环执行时长计时,当检测出软件初始化后的时长达到循环执行时长中的目标循环执行时长,则调度目标循环执行时长对应的目标软件任务,并执行目标软件任务。
44.例如,以单片机中的电流检测、电压检测、温度检测、低功耗检测、通讯检测、led(发光二极管)检测等六个软件任务为例,单片机上电后进行软件和计时变量初始化(即在整个软件任务运行之前须对单片机资源和后续将要使用到变量进行统一配置,例如单片机时钟频率、定时器频率、串口配置、采样前端配置以及状态位初始化等),获取初始化后设定的电流检测、电压检测、温度检测、低功耗检测、通讯检测、led检测等六个软件任务对应的循环执行时长,六个软件任务分别有各自的循环执行时长计时变量,例如,电流检测对应第一个循环执行时长计时变量,电压检测对应第二个循环执行时长计时变量,温度检测对应
第三个循环执行时长计时变量,低功耗检测对应第四个循环执行时长计时变量,通讯检测对应第五个循环执行时长计时变量,led检测对应第六个循环执行时长计时变量,在软件初始化后,六个循环执行时长计时变量分别从0开始计时,例如,当第一个循环执行时长计时变量达到电流检测设定的循环执行时长时,调度并执行电流检测,同时其他五个循环执行时长计时变量继续计时,直到计时时长达到对应的循环执行时长时开始执行对应的软件任务,采用这种多个软件任务分别计时的方式,在执行目标软件任务的同时避免了影响其他软件任务的正常计时,从而达到了整个软件系统有序的运行。另外,由于各个软件任务互不影响进程,因此在单片机频率足够高的情况下可视为各软件任务同时运行,从而提高了运行效率,减少了部分运行比较耗时的软件任务对整个软件系统的影响。
45.在一可实施的方案中,如图2所示,该管理方法还包括:
46.步骤103、获取目标软件任务的预设运行时长以及当前运行时长;
47.本实施例中,预设运行时长根据实际情况进行设置,此处不做具体限定。
48.步骤104、若当前运行时长小于等于预设运行时长时目标软件任务运行完成,则根据循环执行时长调度并执行其他软件任务。
49.在一可实施的方案中,该管理方法还包括:
50.若当前运行时长大于预设运行时长时目标软件任务运行未完成,则输出报警信息,并停止目标软件任务的运行。
51.本实施例中,若当前运行时长大于预设运行时长时目标软件任务运行未完成,则表明该目标软件任务出现故障,此时输出报警信息,停止该目标软件任务的运行,将该目标软件任务初始化并根据循环执行时长执行其他软件任务,以保证其他软件任务的正常运行,进而保证整个软件系统的有序运行,同时上报该目标软件任务的当前运行时长(即实际运行时长),以便调整该目标软件任务的当前运行时长,使其满足目标软件任务对应的预设运行时长。
52.在一可实施的方案中,如图3所示,该管理方法还包括:
53.步骤102-1、获取每个软件任务的预设运行时长;
54.步骤102-2、若每个软件任务在对应的预设运行时长内运行完成,则将每个软件任务对应的循环执行时长进行清零处理。
55.本实施例通过检测软件初始化后的时长达到循环执行时长中的目标循环执行时长,则调度目标循环执行时长对应的目标软件任务,并执行目标软件任务,实现了根据循环执行时长调度并执行相应的软件任务,提高了软件系统的实时性以及整体运行效率。
56.实施例2
57.本实施例提供一种软件任务的管理系统,如图4所示,该管理系统包括第一获取模块21和第一执行模块22;
58.第一获取模块21用于获取至少一个软件任务的循环执行时长;
59.本实施例中,每个软件任务的循环执行时长根据实际情况进行设置,通常将每个软件任务的循环执行时长设置为不同的数值,也可以设置为相同的数值,此处不做具体限定。
60.第一执行模块22用于若检测出软件初始化后的时长达到循环执行时长中的目标循环执行时长,则调度目标循环执行时长对应的目标软件任务,并执行目标软件任务。
61.本实施例中,软件系统中的软件任务是基于嵌入式iar for stm8软件开发的,该开发软件具有以下特点:集成的工程管理工具和编辑器;支持c和c ;支持硬件调试;具备链接器和库管理工具;支持swd调试仿真;支持软件模拟仿真,正由于该开发软件所具有的强大功能,可使开发进度得以加快,开发周期得到缩短的。软件系统的软件架构通常分为软件初始化、任务调度、任务执行、任务计时等,软件初始化主要是硬件首次上电后对一些变量进行的操作,是软件准备执行相应任务(即软件任务对应的函数)前的操作,例如计时时间清零;任务调度是整个软件系统的核心,相当于整个软件系统负责调度的“大脑”,它会根据时间的设定去调用软件系统中的某一个具体函数去执行相应动作,如何才能准确、快速的响应是任务调度的关键,该任务调度具体是指首次执行软件任务,使能需要后续运行的软件任务,初始化各个软件任务需要运行的时间周期,制定每个软件任务执行优先级以及必要的软件驱动层配置。任务调度主要是将运行的指针函数指向将要运行的函数首地址,从而能够按照预定的方案执行相应的操作,例如执行通讯任务、数据采集任务、逻辑计算任务等等;任务执行是实现软件系统的最小执行单元,每个软件任务实现一个或几个特定的功能,而每个软件任务的功能都不尽相同,每个软件任务互相协调工作从而实现各种功能,它是任务调度执行的对象,具体地,任务执行是指所实现具体功能的函数,它分很多种不同的功能,例如在锂电保护行业中,电压计算函数、电流计算函数、温度计算函数和soc计算函数等等都是任务执行函数,这些最小执行单元的集合实现了锂电池保护系统的众多功能。任务计时是掌握整个软件系统“节奏”的关键,它从软件系统初始化完成后就会按照固定的“节拍”运行,同时它会记录各个软件任务运行开始到结束所运行的时长,将时长达到循环执行时长的信息传输给任务调度要运行的对象,如果时长未到则会自动查看下一个函数执行情况,循环往复,即任务计时是系统的主要节拍,它是保证整个系统能够准确、准时运行的关键,每个软件任务执行的时间是影响整个系统运行的关键,也是整个系统有条不紊运行的关键,何时开始运行某个软件任务(即函数),何时结束运行某个软件任务都非常清晰且健壮的。
62.本实施例中,每个软件任务都有对应的循环执行时长计时变量(或者有对应的循环计时器)进行单独计时,相互之间不受影响,在软件系统初始化后,每个软件任务通过各自的计时变量分别进行循环执行时长计时,当检测出软件初始化后的时长达到循环执行时长中的目标循环执行时长,则调度目标循环执行时长对应的目标软件任务,并执行目标软件任务。
63.例如,以单片机中的电流检测、电压检测、温度检测、低功耗检测、通讯检测、led检测等六个软件任务为例,单片机上电后进行软件和计时变量初始化(即在整个软件任务运行之前须对单片机资源和后续将要使用到变量进行统一配置,例如单片机时钟频率、定时器频率、串口配置、采样前端配置以及状态位初始化等),获取初始化后设定的电流检测、电压检测、温度检测、低功耗检测、通讯检测、led检测等六个软件任务对应的循环执行时长,六个软件任务分别有各自的循环执行时长计时变量,例如,电流检测对应第一个循环执行时长计时变量,电压检测对应第二个循环执行时长计时变量,温度检测对应第三个循环执行时长计时变量,低功耗检测对应第四个循环执行时长计时变量,通讯检测对应第五个循环执行时长计时变量,led检测对应第六个循环执行时长计时变量,在软件初始化后,六个循环执行时长计时变量分别从0开始计时,例如,当第一个循环执行时长计时变量达到电流
检测设定的循环执行时长时,调度并执行电流检测,同时其他五个循环执行时长计时变量继续计时,直到计时时长达到对应的循环执行时长时开始执行对应的软件任务,采用这种多个软件任务分别计时的方式,在执行目标软件任务的同时避免了影响其他软件任务的正常计时,从而达到了整个软件系统有序的运行。另外,由于各个软件任务互不影响进程,因此在单片机频率足够高的情况下可视为各软件任务同时运行,从而提高了运行效率,减少了部分运行比较耗时的软件任务对整个软件系统的影响。
64.在一可实施的方案中,如图4所示,该管理系统还包括第二获取模块23和第二执行模块24;
65.第二获取模块23用于获取目标软件任务的预设运行时长以及当前运行时长;
66.本实施例中,预设运行时长根据实际情况进行设置,此处不做具体限定。
67.第二执行模块24用于若当前运行时长小于等于预设运行时长时目标软件任务运行完成,则根据循环执行时长调度并执行其他软件任务。
68.在一可实施的方案中,如图4所示,该管理系统还包括输出模块25;
69.输出模块25用于若当前运行时长大于预设运行时长时目标软件任务运行未完成,则输出报警信息,并停止目标软件任务的运行。
70.本实施例中,若当前运行时长大于预设运行时长时目标软件任务运行未完成,则表明该目标软件任务出现故障,此时输出报警信息,停止该目标软件任务的运行,将该目标软件任务初始化并根据循环执行时长执行其他软件任务,以保证其他软件任务的正常运行,进而保证整个软件系统的有序运行,同时上报该目标软件任务的当前运行时长(即实际运行时长),以便调整该目标软件任务的当前运行时长,使其满足目标软件任务对应的预设运行时长。
71.在一可实施的方案中,如图4所示,该管理系统还包括第三获取模块26和处理模块27;
72.第三获取模块26用于获取每个软件任务的预设运行时长;
73.处理模块27用于若每个软件任务在对应的预设运行时长内运行完成,则将每个软件任务对应的循环执行时长进行清零处理。
74.本实施例通过检测软件初始化后的时长达到循环执行时长中的目标循环执行时长,则调度目标循环执行时长对应的目标软件任务,并执行目标软件任务,实现了根据循环执行时长调度并执行相应的软件任务,提高了软件系统的实时性以及整体运行效率。
75.实施例3
76.图5为本发明实施例3提供的一种电子设备的结构示意图。电子设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时实现实施例1的软件任务的管理方法。图5显示的电子设备30仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
77.如图5所示,电子设备30可以以通用计算设备的形式表现,例如其可以为服务器设备。电子设备30的组件可以包括但不限于:上述至少一个处理器31、上述至少一个存储器32、连接不同系统组件(包括存储器32和处理器31)的总线33。
78.总线33包括数据总线、地址总线和控制总线。
79.存储器32可以包括易失性存储器,例如随机存取存储器(ram)321和/或高速缓存
存储器322,还可以进一步包括只读存储器(rom)323。
80.存储器32还可以包括具有一组(至少一个)程序模块324的程序/实用工具325,这样的程序模块324包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
81.处理器31通过运行存储在存储器32中的计算机程序,从而执行各种功能应用以及数据处理,例如本发明实施例1的软件任务的管理方法。
82.电子设备30也可以与一个或多个外部设备34(例如键盘、指向设备等)通信。这种通信可以通过输入/输出(i/o)接口35进行。并且,模型生成的设备30还可以通过网络适配器36与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。如图5所示,网络适配器36通过总线33与模型生成的设备30的其它模块通信。应当明白,尽管图中未示出,可以结合模型生成的设备30使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、raid(磁盘阵列)系统、磁带驱动器以及数据备份存储系统等。
83.应当注意,尽管在上文详细描述中提及了电子设备的若干单元/模块或子单元/模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多单元/模块的特征和功能可以在一个单元/模块中具体化。反之,上文描述的一个单元/模块的特征和功能可以进一步划分为由多个单元/模块来具体化。
84.实施例4
85.本实施例提供了一种计算机可读存储介质,其上存储有计算机程序,程序被处理器执行时实现实施例1所提供的软件任务的管理方法。
86.其中,可读存储介质可以采用的更具体可以包括但不限于:便携式盘、硬盘、随机存取存储器、只读存储器、可擦拭可编程只读存储器、光存储器件、磁存储器件或上述的任意合适的组合。
87.在可能的实施方式中,本发明还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在终端设备上运行时,程序代码用于使终端设备执行实现实施例1所述的软件任务的管理方法。
88.其中,可以以一种或多种程序设计语言的任意组合来编写用于执行本发明的程序代码,程序代码可以完全地在用户设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户设备上部分在远程设备上执行或完全在远程设备上执行。
89.虽然以上描述了本发明的具体实施方式,但是本领域的技术人员应当理解,这仅是举例说明,本发明的保护范围是由所附权利要求书限定的。本领域的技术人员在不背离本发明的原理和实质的前提下,可以对这些实施方式做出多种变更或修改,但这些变更和修改均落入本发明的保护范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献