一种嵌入式软件接口异步应用执行方法技术

技术编号:39302427 阅读:8 留言:0更新日期:2023-11-12 15:52
本发明专利技术提出一种嵌入式软件接口异步应用执行方法,属于计算机领域。包括:注册外围设备周期事件,将标志置位,周期事件数据装载;执行轮转调度核心任务,根据时间片间隙更新周期或随机事件的计数器,进行状态转换;若周期事件在执行或未到操作间隔,则在有随机事件发起时随机事件进入等待状态并拷贝数据,等待轮转调度核心任务轮转到该随机事件执行,若已有随机事件在执行则该随机事件执行失败,此外直接执行随机事件的发送回调函数,进行状态转换,计时器清零;接口中断收到应答数据后调用对应的随机事件或周期事件的接收回调函数,执行后续复合任务或完成数据采集,并进行事件的状态转换。本发明专利技术具有简单、易移植、低成本、高可控等优点。优点。优点。

【技术实现步骤摘要】
一种嵌入式软件接口异步应用执行方法


[0001]本专利技术涉及计算机领域中用于监控系统的嵌入式软件接口异步轮转调度技术,特别适用于下级外围设备众多的嵌入式软件的异步参数查询与任务分发执行的场景。

技术介绍

[0002]目前,针对嵌入式监控软件常采用的调度执行方法为批处理系统中的调度算法,一般为先来先服务方法,有一个就绪的单一队列在执行任务。当存在复合任务等耗时较长的任务时,将长时间抢占周期性查询任务的执行队列,导致外围设备数据更新不及时,无法实现高效的嵌入式监控软件的任务执行工作。同时,部署了实时操作系统的嵌入式软件,则由于部分操作系统的非自主可控性、操作系统框架的冗余性和具有一定的移植门槛等特性,很大程度上影响了针对裸机嵌入式监控软件的应用领域。

技术实现思路

[0003]本专利技术的目的在于避免上述
技术介绍
中的不足之处而提供的一种嵌入式软件接口异步应用执行方法。本专利技术不需借助任何实时操作系统,具有可控性强,经济性好,移植便捷等优点,解决了传统裸机嵌入式软件离开实时操作系统后针对监控软件系统参数采集与任务执行并发时没有调度算法,执行不高效,以及实时操作系统存在一定的可控性风险,经济性差,移植慢的难题。
[0004]为了实现上述目的,本专利技术采用的技术方案为:
[0005]一种嵌入式软件接口异步应用执行方法,用于监控外围设备的设备状态,包括以下步骤:
[0006](1)将异步任务分为查询类周期事件Events
cycle
以及突发任务类随机事件Event<br/>random
;其中,周期事件Events
cycle
具有参数:应答ID、调用周期、超时时间、发送回调函数指针、应答回调函数指针、发送数据头指针、数据长度、运行标志、定时器;随机事件Event
random
具有参数:设置ID、应答ID、超时时间、发送回调函数指针、应答回调函数指针、发送数据数组、数据长度、运行标志、等待标志、定时器、用户数据指针;
[0007](2)定义单个外围设备的循环核心任务句柄结构体,句柄结构体中包括如下参数:随机事件Event
random
、周期事件Events
cycle
、周期事件个数random_cnt、操作间隔OPT
inter
、操作间隔定时器timer
inter
、等待操作间隔标志wait_flag
inter
,其中,操作间隔OPT
inter
用于指示外围设备最小允许操作的时间间隔;
[0008](3)外围设备任务开始前注册各外围设备的句柄结构体,清空各个周期事件Events
cycle
的运行标志和定时器,并装载周期事件Events
cycle
的应答ID、调用周期、超时时间、发送与应答回调函数、发送数据头指针、数据长度;
[0009](4)将各外围设备的句柄结构体指针指向核心任务运行模块的全局变量以等待轮转调度,核心任务运行模块进行轮转调度的具体方式为:
[0010](401)设定单步运转时间片T
step
=10ms;
[0011](402)时间片轮转到某一外围设备时,执行其核心任务,具体方式为:
[0012]针对该外围设备的句柄结构体,判断随机事件Event
random
是否正在运行,若不在运行中则不做任何操作,若在运行中,则增加其定时器时间,然后判断定时器增加后的运行时间,若超时则进入应答回调函数,入参包含超时指示,并将运行标志置FASLE,不超时则不进行任何操作;
[0013]遍历每个已注册的周期事件Events
cycle
,判断其是否正在运行,若不在运行中则不做任何操作,若在运行中,则增加其定时器时间,然后判断定时器增加后的运行时间,若超时则进入应答回调函数,入参包含超时指示,并将运行标志置FASLE,清零其定时器,不超时则不进行任何操作;
[0014]判断句柄结构体中等待操作间隔标志wait_flag
inter
是否在等待,若在等待中则增加其操作间隔定时器timer
inter
,若已大于操作间隔OPT
inter
,则将等待操作间隔标志wait_flag
inter
置FALSE,并进入内部调度函数执行周期事件;若未在等待操作间隔,则直接进入内部调度函数执行周期事件;
[0015](5)外围设备根据核心任务运行模块的调度执行突发任务类随机事件,具体方式如下:
[0016](501)根据运行标志和等待标志判断是否存在随机事件Event

random
正在运行或等待被执行,如果有则返回执行失败;
[0017](502)设定一局部变量随机事件运行标志Local_Flag
cycle_run
,将随机事件运行标志Local_Flag
cycle_run
置FASLE,遍历周期事件,若有正在运行的事件则将随机事件运行标志Local_Flag
cycle_run
置TRUE;
[0018](503)根据入参进行随机事件Event
random
参数赋值,设置ID、应答ID、超时时间、发送回调函数装载、应答回调函数装载、发送数据数组、数据长度、用户数据装载;
[0019](504)当周期事件正在运行或等待操作间隔中时,表明随机事件Event
random
进入等待执行状态,将其等待标志置TRUE,并将其执行标志置FALSE,等到核心任务运行模块进入调度函数时自动执行;否则,该周期事件Event
random
直接执行发送回调函数,清空其计时器,将其等待标志置FALSE,并将其运行标志置TRUE。
[0020]进一步地,步骤402中,内部调度函数的工作方式为:
[0021](A1)当存在随机事件Event
random
运行时,增加该事件运行时间,退出调度函数,不执行任何新的周期事件与随机事件;否则进入步骤(A2);
[0022](A2)遍历周期事件Events
cycle
,当存在某个已注册的周期事件正在运行时,增加该事件运行时间,退出调度函数,不执行任何新的周期事件与随机事件;否则进入步骤(A3);
[0023](A3)当存在随机事件Event
random
等待执行时,执行调度,将等待标志置FALSE,执行发送回调函数,将运行标志置TRUE,清零其定时器;若不存在随机事件Event
random
等待执行,则检查是否存在周期事件定时器计时超过调用周期,超过时执行相应Event
cycle
的发送回调函数,清零其定时器,并将其运行标志置TRUE。
[0024]进一步地,本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种嵌入式软件接口异步应用执行方法,其特征在于,用于监控外围设备的设备状态,包括以下步骤:(1)将异步任务分为查询类周期事件Events
cycle
以及突发任务类随机事件Event
random
;其中,周期事件Events
cycle
具有参数:应答ID、调用周期、超时时间、发送回调函数指针、应答回调函数指针、发送数据头指针、数据长度、运行标志、定时器;随机事件Event
random
具有参数:设置ID、应答ID、超时时间、发送回调函数指针、应答回调函数指针、发送数据数组、数据长度、运行标志、等待标志、定时器、用户数据指针;(2)定义单个外围设备的循环核心任务句柄结构体,句柄结构体中包括如下参数:随机事件Event
random
、周期事件Events
cycle
、周期事件个数random_cnt、操作间隔OPT
inter
、操作间隔定时器timer
inter
、等待操作间隔标志wait_flag
inter
,其中,操作间隔OPT
inter
用于指示外围设备最小允许操作的时间间隔;(3)外围设备任务开始前注册各外围设备的句柄结构体,清空各个周期事件Events
cycle
的运行标志和定时器,并装载周期事件Events
cycle
的应答ID、调用周期、超时时间、发送与应答回调函数、发送数据头指针、数据长度;(4)将各外围设备的句柄结构体指针指向核心任务运行模块的全局变量以等待轮转调度,核心任务运行模块进行轮转调度的具体方式为:(401)设定单步运转时间片T
step
=10ms;(402)时间片轮转到某一外围设备时,执行其核心任务,具体方式为:针对该外围设备的句柄结构体,判断随机事件Event
random
是否正在运行,若不在运行中则不做任何操作,若在运行中,则增加其定时器时间,然后判断定时器增加后的运行时间,若超时则进入应答回调函数,入参包含超时指示,并将运行标志置FASLE,不超时则不进行任何操作;遍历每个已注册的周期事件Events
cycle
,判断其是否正在运行,若不在运行中则不做任何操作,若在运行中,则增加其定时器时间,然后判断定时器增加后的运行时间,若超时则进入应答回调函数,入参包含超时指示,并将运行标志置FASLE,清零其定时器,不超时则不进行任何操作;判断句柄结构体中等待操作间隔标志wait_flag
inter
是否在等待,若在等待中则增加其操作间隔定时器timer
inter
,若已大于操作间隔OPT
inter
,则将等待操作间隔标志wait_flag
inter
置FALSE,并进入内部调度函数执行周期事件;若未在等待操作间隔,则直接进入内部调度函数执行周期事件;(5)外围设备根据核心任务运行模块的调度执行突发任务类随机事件,具体方式如下:(501)根据运行标志和等待标志判断是否存在随机事件Event

random
正在运行或等待被执行,如果有则返回执行失败;(502)设定一局部变量随机事件运行标志Local_Flag
cycle_run
,将随机事件运行标志Local_Flag
cycle_run<...

【专利技术属性】
技术研发人员:葛声扬胡婧张子燕
申请(专利权)人:中国电子科技集团公司第五十四研究所
类型:发明
国别省市:

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

1