一种嵌入式软件任务分时调度方法技术

技术编号:37601150 阅读:22 留言:0更新日期:2023-05-18 11:51
本发明专利技术公开了一种嵌入式软件任务分时调度方法,包括:初始化各任务执行基本信息,设置任务管理队列;将要执行的任务添加至任务管理队列中;分时调用任务调度函数,将任务执行周期划分为多个时间片,每个时间片查询任务管理队列成员,判断是否需要执行该任务管理队列成员相应任务,如果需要执行该任务管理队列成员相应任务,则按照执行频率调用任务执行函数,直至该任务执行完成或超出执行时间,根据是否允许自删除标志,将该任务从队列中删除。本发明专利技术解决了现有嵌入式软件任务调度效率差的问题。题。题。

【技术实现步骤摘要】
一种嵌入式软件任务分时调度方法


[0001]本专利技术属于嵌入式软件任务调度
,尤其涉及一种嵌入式软件任务分时调度方法。

技术介绍

[0002]在嵌入式软件任务调度领域中,通常的程序设计架构为:在主流程中依次查询各任务标志,如果某一任务标志置位,则调用该任务执行函数,待该任务执行结束后,程序返回到主流程中,查询是否有新的任务标志置位,开启下一个任务执行流程。这种任务调度方式未对执行的任务进行统一调度,程序设计上较为繁琐冗余;在同一时间只能响应一个任务,对于多任务执行项目而言,执行效率较差。

技术实现思路

[0003]本专利技术解决的技术问题是:克服现有技术的不足,提供了一种嵌入式软件任务分时调度方法,解决了现有嵌入式软件任务调度效率差的问题。
[0004]本专利技术目的通过以下技术方案予以实现:一种嵌入式软件任务分时调度方法,包括:初始化各任务执行基本信息,设置任务管理队列;将要执行的任务添加至任务管理队列中;分时调用任务调度函数,将任务执行周期划分为多个时间片,每个时间片查询任务管理队列成员,判断是否需要执行该任务管理队列成员相应任务,如果需要执行该任务管理队列成员相应任务,则按照执行频率调用任务执行函数,直至该任务执行完成或超出执行时间,根据是否允许自删除标志,将该任务从队列中删除。
[0005]上述嵌入式软件任务分时调度方法中,任务执行基本信息包括:任务代号,不同任务代号设置不同,作为唯一标识区别不同任务;任务初始化函数,包含运行该任务的一些初始化配置信息;任务执行函数,实现任务的具体执行过程;任务执行完成函数,实现任务执行完成后需要执行的动作;任务超时处理函数,实现任务超时后需要执行的动作;任务执行频率计数,在任务调度函数中进行累加,用于控制任务运行周期;任务执行频率,用于设置任务运行的周期;任务执行时长,在任务调度函数中进行累加,用于记录任务运行总时长;任务执行超时时长,用于设置任务最长运行时间;允许自删除标志,用于识别任务结束后是否允许自动删除任务。
[0006]上述嵌入式软件任务分时调度方法中,任务管理队列的队列基本信息包括:任务执行标志,表示任务是否需要进行执行;任务变量,用任务执行基本信息表示不同任务。
[0007]上述嵌入式软件任务分时调度方法中,设置任务管理队列包括:统一管理涉及的所有任务,任务管理队列中每个变量基本单元为任务管理队列的队列基本信息,该任务管理队列管理所有任务的添加和删除。
[0008]上述嵌入式软件任务分时调度方法中,在所述将要执行的任务添加至任务管理队列中,将要执行的任务可通过通讯接口接收任务执行指令、或按照既定的任务执行流程进行确定。
[0009]上述嵌入式软件任务分时调度方法中,在所述将要执行的任务添加至任务管理队列中,添加过程为:查询任务管理队列中是否已有本次添加的任务,如果任务已存在,则直接返回添加完成;否则,执行本次添加任务的初始化函数,设置任务执行标志为1,从任务管理队列起始地址查询第一个未使用的成员位置,将任务添加至该位置中。
[0010]上述嵌入式软件任务分时调度方法中,判断是否需要执行该任务管理队列成员相应任务包括:判断任务执行标志是否为1,若为1则在该时间片需要执行该任务管理队列成员相应任务。
[0011]上述嵌入式软件任务分时调度方法中,在则按照执行频率调用任务执行函数中,在每个时间片内,任务执行频率计数值进行累加,若计数值到达任务执行频率,则调用任务执行函数。
[0012]上述嵌入式软件任务分时调度方法中,所述任务执行完成后,调用任务执行完成函数,实现任务完成后的需要执行的动作;超出执行时间,则调用任务超时处理函数,若任务执行时长超过任务执行超时时长,则判定任务超出执行时间。
[0013]上述嵌入式软件任务分时调度方法中,将该任务从队列中删除包括:在队列中按照任务号查询本任务,设置任务执行标志为0,将该任务从队列中删除。
[0014]本专利技术与现有技术相比具有如下有益效果:
[0015](1)现有技术未对执行的任务进行统一调度,程序设计上较为繁琐冗余。本专利技术设计任务管理队列和任务调度函数,统一调度待执行任务,优化了程序设计架构。
[0016](2)现有技术在主流程中依次查询各任务标志,如果某一任务标志置位,则调用该任务执行函数,待该任务执行结束后,程序返回到主流程中,查询是否有新的任务标志置位,开启下一个任务执行流程,该技术在同一时间只能响应一个任务。本专利技术在程序主流程中分时调用任务调度函数,将任务运行周期划分为多个时间片,每个时间片查询任务队列,实现分时调用多重任务的功能,可有效提高任务执行效率。
[0017](3)本专利技术设计方法通用有效,有助于嵌入式软件多种任务调度设计项目直接移植使用,减少后续维护工作。
附图说明
[0018]通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本专利技术的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
[0019]图1是本专利技术实施例提供的添加任务流程图;
[0020]图2是本专利技术实施例提供的任务调度函数流程图。
具体实施方式
[0021]下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。需要说明的是,在不冲突的情况下,本专利技术中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本专利技术。
[0022]图1是本专利技术实施例提供的添加任务流程图;图2是本专利技术实施例提供的任务调度函数流程图。如图1和图2所示,该嵌入式软件任务分时调度方法包括如下步骤:
[0023](1)、初始化各任务执行基本信息,设置任务管理队列,统一管理涉及的所有任务。
[0024]所述各任务执行基本信息通过一个结构体变量进行描述,任务基本信息如下:
[0025](1.1)、任务代号,不同任务代号设置不同,作为唯一标识区别不同任务;
[0026](1.2)、任务初始化函数,包含运行该任务的一些初始化配置信息;
[0027](1.3)、任务执行函数,实现任务的具体执行过程;
[0028](1.4)、任务执行完成函数,实现任务执行完成后需要执行的动作;
[0029](1.5)、任务超时处理函数,实现任务超时后需要执行的动作;
[0030](1.6)、任务执行频率计数,在任务调度函数中进行累加,用于控制任务运行周期;
[0031](1.7)、任务执行频率,用于设置任务运行的周期;
[0032](1.8)、任务执行时长,在任务调度函数中进行累加,用于记录任务运行总时长;
[0033](1.9)、任务执行超本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种嵌入式软件任务分时调度方法,其特征在于包括:初始化各任务执行基本信息,设置任务管理队列;将要执行的任务添加至任务管理队列中;分时调用任务调度函数,将任务执行周期划分为多个时间片,每个时间片查询任务管理队列成员,判断是否需要执行该任务管理队列成员相应任务,如果需要执行该任务管理队列成员相应任务,则按照执行频率调用任务执行函数,直至该任务执行完成或超出执行时间,根据是否允许自删除标志,将该任务从队列中删除。2.根据权利要求1所述的嵌入式软件任务分时调度方法,其特征在于:任务执行基本信息包括:任务代号,不同任务代号设置不同,作为唯一标识区别不同任务;任务初始化函数,包含运行该任务的一些初始化配置信息;任务执行函数,实现任务的具体执行过程;任务执行完成函数,实现任务执行完成后需要执行的动作;任务超时处理函数,实现任务超时后需要执行的动作;任务执行频率计数,在任务调度函数中进行累加,用于控制任务运行周期;任务执行频率,用于设置任务运行的周期;任务执行时长,在任务调度函数中进行累加,用于记录任务运行总时长;任务执行超时时长,用于设置任务最长运行时间;允许自删除标志,用于识别任务结束后是否允许自动删除任务。3.根据权利要求1所述的嵌入式软件任务分时调度方法,其特征在于:任务管理队列的队列基本信息包括:任务执行标志,表示任务是否需要进行执行;任务变量。4.根据权利要求1所述的嵌入式软件任务分时调度方法,其特征在于:设置任务管理队列包括:统一管理涉及的所有任务,任务管理队列中每个变量基本单元为任务管理队列的队列基本信息,该任务管理队列管...

【专利技术属性】
技术研发人员:陈俐均姜海峰梁新建
申请(专利权)人:北京航天控制仪器研究所
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1