定时器实现方法、装置、实时操作系统及存储介质制造方法及图纸

技术编号:30370153 阅读:18 留言:0更新日期:2021-10-16 17:47
本申请提供的一种定时器实现方法、装置、实时操作系统及存储介质,获取定时器链条中头组件的绝对时间,其中,所述定时器链条包括至少一个定时器组件,各个定时器组件包括绝对时间,各个定时器组件基于各个定时器组件的绝对时间在所述定时器链条中升序排列,所述头组件为所述定时器链条中的第一个定时器组件;在实时操作系统的当前绝对时间达到所述头组件的绝对时间的情况下,从所述定时器链条中申请所述头组件;执行所述头组件对应的定时事件。执行所述头组件对应的定时事件。执行所述头组件对应的定时事件。

【技术实现步骤摘要】
定时器实现方法、装置、实时操作系统及存储介质


[0001]本申请涉及实时操作系统
,特别地涉及一种定时器实现方法、装置、实时操作系统及存储介质。

技术介绍

[0002]微控制单元(MCU,Microcontroller Unit)软件定时器是软件开发人员经常使用的开发功能,用于周期性的处理某些软件业务逻辑。但基于MCU的部分实时操作系统(RTOS)却不一定会提供软件定时功能;MCU软件开发通常会开发一套基于RTOS软件封装层,实现软件业务逻辑功能,其中,就包含软件定时器功能;此时,如果RTOS并没有提供软件定时器的软件接口,那么,封装层则无法利用RTOS本身的定时器接口实现对软件定时器功能的封装,不能实现定时的目的。

技术实现思路

[0003]针对定时器软件不能在任意RTOS适配的问题,本申请提供一种定时器实现方法、装置、实时操作系统及存储介质,通过设定各个定时器组件包括绝对时间,且各个定时器组件基于各个定时器组件的绝对时间在所述定时器链条中升序排列,使得实时操作系统确定系统的当前绝对时间达到所述头组件的绝对时间的情况下,可以从所述定时器链条中申请所述头组件,以执行所述头组件对应的定时事件,对于没有软件接口的实时操作系统,通过申请,使得没有软件接口的实时操作系统也能适用,使得软件定时器能够在任何RTOS中适配。
[0004]本申请提供了一种定时器实现方法,应用于实时操作系统,包括:
[0005]获取定时器链条中头组件的绝对时间,其中,所述定时器链条包括至少一个定时器组件,各个定时器组件包括绝对时间,各个定时器组件基于各个定时器组件的绝对时间在所述定时器链条中升序排列,所述头组件为所述定时器链条中的第一个定时器组件;
[0006]在实时操作系统的当前绝对时间达到所述头组件的绝对时间的情况下,从所述定时器链条中申请所述头组件;
[0007]执行所述头组件对应的定时事件。
[0008]在一些实施例中,所述方法还包括:
[0009]在所述系统的当前绝对时间未达到所述头组件的绝对时间的情况下,基于所述头组件的绝对时间和所述当前绝对时间确定时间差;
[0010]将所述时间差确定为内核线程同步的等待时间;
[0011]在达到所述等待时间的情况下,从所述定时器链条中申请所述头组件;
[0012]执行所述头组件的定时事件。
[0013]在一些实施例中,所述定时器组件还包括:定时器句柄函数,所述执行所述头组件对应的定时事件,包括:
[0014]对所述头组件进行解析,以获取所述头组件对应的定时器句柄函数;
[0015]执行所述定时器句柄函数,以执行头组件对应的定时事件。
[0016]在一些实施例中,所述方法还包括:
[0017]配置组件管理池,所述组件管理池用于管理在组件管理池中的定时器组件的数量恒定,所述定时器链条位于所述组件管理池中。
[0018]在一些实施例中,所述方法还包括:
[0019]基于所述头组件的绝对时间和所述当前绝对时间,确定下一次执行所述头组件的定时器句柄函数的目标时间;
[0020]基于所述目标时间在所述组件管理池中更新所述头组件得到目标定时器组件;
[0021]基于所述目标时间,将所述目标定时器组件插入至定时器链条中,以更新所述定时器链条。
[0022]在一些实施例中,各个定时器组件的绝对时间大于对应的定时器句柄函数的执行时间。
[0023]在一些实施例中,所述方法还包括:
[0024]获取各个定时器组件的定时器句柄函数、绝对时间、定时器句柄参数、定时器私有信息;
[0025]基于各个定时器组件的定时器句柄函数、绝对时间、定时器句柄参数、定时器私有信息生成各个定时器组件;
[0026]基于各个定时器组件的绝对时间,确定所述定时器链条。
[0027]本申请实施例提供一种定时器实现装置,应用于实时操作系统,包括:
[0028]获取模块,用于获取定时器链条中头组件的绝对时间,其中,所述定时器链条包括至少一个定时器组件,各个定时器组件包括绝对时间,各个定时器组件基于各个定时器组件的绝对时间在所述定时器链条中升序排列,所述头组件为所述定时器链条中的第一个定时器组件;
[0029]申请模块,用于在系统的当前绝对时间达到所述头组件的绝对时间的情况下,从所述定时器链条中申请所述头组件;
[0030]执行模块,用于执行所述头组件对应的定时事件。
[0031]本申请实施例提供一种设备,包括存储器和处理器,所述存储器上存储有计算机程序,该计算机程序被所述处理器执行时,执行上述任意一项所述定时器实现方法。
[0032]本申请实施例提供一种存储介质,该存储介质存储的计算机程序,能够被一个或多个处理器执行,能够用来实现上述任一项所述定时器实现方法。
[0033]本申请提供的一种定时器实现方法、装置、实时操作系统及存储介质,通过设定各个定时器组件包括绝对时间,且各个定时器组件基于各个定时器组件的绝对时间在所述定时器链条中升序排列,使得实时操作系统确定系统的当前绝对时间达到所述头组件的绝对时间的情况下,可以从所述定时器链条中申请所述头组件,以执行所述头组件对应的定时事件,对于没有软件接口的实时操作系统,通过申请,使得没有软件接口的实时操作系统也能适用,使得软件定时器能够在任何RTOS中适配。
附图说明
[0034]在下文中将基于实施例并参考附图来对本申请进行更详细的描述。
[0035]图1为本申请实施例提供的一种定时器实现方法的实现流程示意图;
[0036]图2为本申请实施例提供的一种定时器组件的结构示意图;
[0037]图3为本申请实施例提供的一种定时器链条的结构示意图;
[0038]图4为本申请实施例提供的一种定时器实现方法;
[0039]图5为本申请实施例提供的一种定时器实现方法的实现流程示意图;
[0040]图6为本申请实施例提供的一种组件管理池的结构示意图;
[0041]图7为本申请实施例提供的一种定时器实现方法的实现流程示意图;
[0042]图8为本申请实施例提供的更新后的定时器链条的结构示意图;
[0043]图9为本申请实施例提供的一种定时器实现装置的结构示意图。
[0044]在附图中,相同的部件使用相同的附图标记,附图并未按照实际的比例绘制。
具体实施方式
[0045]为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,所描述的实施例不应视为对本申请的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
[0046]在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
[0047]如本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种定时器实现方法,其特征在于,应用于实时操作系统,所述方法包括:获取定时器链条中头组件的绝对时间,其中,所述定时器链条包括至少一个定时器组件,各个定时器组件包括绝对时间,各个定时器组件基于各个定时器组件的绝对时间在所述定时器链条中升序排列,所述头组件为所述定时器链条中的第一个定时器组件;在实时操作系统的当前绝对时间达到所述头组件的绝对时间的情况下,从所述定时器链条中申请所述头组件;执行所述头组件对应的定时事件。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:在所述系统的当前绝对时间未达到所述头组件的绝对时间的情况下,基于所述头组件的绝对时间和所述当前绝对时间确定时间差;将所述时间差确定为内核线程同步的等待时间;在达到所述等待时间的情况下,从所述定时器链条中申请所述头组件;执行所述头组件对应的定时事件。3.根据权利要求1所述的方法,其特征在于,所述定时器组件还包括:定时器句柄函数,所述执行所述头组件对应的定时事件,包括:对所述头组件进行解析,以获取所述头组件对应的定时器句柄函数;执行所述定时器句柄函数,以执行头组件对应的定时事件。4.根据权利要求3所述的方法,其特征在于,所述方法还包括:配置组件管理池,所述组件管理池用于管理在组件管理池中的定时器组件的数量恒定,所述定时器链条位于所述组件管理池中。5.根据权利要求4所述的方法,其特征在于,所述方法还包括:基于所述头组件的绝对时间和所述当前绝对时间,确定下一次执行所述头组件的定...

【专利技术属性】
技术研发人员:王谦智
申请(专利权)人:珠海零边界集成电路有限公司
类型:发明
国别省市:

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

1