CN112817723A - 定时器调用方法、装置、设备及计算机可读存储介质 - Google Patents
定时器调用方法、装置、设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN112817723A CN112817723A CN202110157785.3A CN202110157785A CN112817723A CN 112817723 A CN112817723 A CN 112817723A CN 202110157785 A CN202110157785 A CN 202110157785A CN 112817723 A CN112817723 A CN 112817723A
- Authority
- CN
- China
- Prior art keywords
- timer
- calling
- timing
- target
- duration
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 42
- 230000006870 function Effects 0.000 claims description 42
- 230000001960 triggered effect Effects 0.000 description 8
- 238000004891 communication Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 5
- 230000001133 acceleration Effects 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000005484 gravity Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000010079 rubber tapping Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
- G06F9/4825—Interrupt from clock, e.g. time of day
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Executing Machine-Instructions (AREA)
Abstract
本发明公开了一种定时器调用方法、装置、设备及计算机可读存储介质,所述定时器调用方法包括以下步骤:收集嵌入式实时操作系统中各个任务所申请定时器对应的定时时长;将所述定时时长中成倍数关系的定时时长分组至同一时间序列中,得到所述定时时长对应的时间序列;根据所述时间序列申请所述时间序列对应的目标定时器,在调用所述时间序列中的定时时长时,调用所述目标定时器。本发明可以避免嵌入式实时操作系统中每个任务都需要申请多个定时器以及避免执行任务时需要申请多个定时器,以使嵌入式实时操作系统在执行任务时调用较少的定时器,进而减少系统被唤醒次数,从而降低了功耗和提升了系统性能。
Description
技术领域
本发明涉及嵌入式实时操作系统技术领域,尤其涉及一种定时器调用方法、装置、设备及计算机可读存储介质。
背景技术
在嵌入式实时操作系统中,在执行任务时,经常会用到定时器来执行指定任务。实际上,不同的任务会申请多个不同时长的定时器,并且每次调用定时器进行计算时间时,都需要唤醒设备进行计时。因此在执行任务时,由于需要调用的定时器数量多,因此需要多次调用计时器时都需要唤醒设备进行计时,不仅占用系统资源,而且导致设备功耗增加,系统资源消耗增加等。
上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。
发明内容
本发明的主要目的在于提供一种定时器调用方法、装置、设备及计算机可读存储介质,旨在解决多次调用计时器时都需要唤醒设备进行计时,导致设备功耗增加以及资源消耗增加的技术问题。
为实现上述目的,本发明提供一种定时器调用方法,所述定时器调用方法包括以下步骤:
收集嵌入式实时操作系统中各个任务所申请定时器对应的定时时长;
将所述定时时长中成倍数关系的定时时长分组至同一时间序列中,得到所述定时时长对应的时间序列;
根据所述时间序列申请所述时间序列对应的目标定时器,在调用所述时间序列中的定时时长时,调用所述目标定时器。
可选地,所述根据所述时间序列申请所述时间序列对应的目标定时器,在调用所述时间序列中的定时时长时,调用所述目标定时器的步骤包括:
将所述时间序列中时长最小的定时时长作为目标定时时长,根据所述目标定时时长申请目标定时器,其中,所述目标定时器的定时时长与所述目标定时时长一致;
在调用所述时间序列中定时时长时,将所述时间序列中当前调用的定时时长作为待定时时长,根据所述待定时时长与所述目标定时时长的倍数关系,调用所述目标定时器。
可选地,所述根据所述待定时时长与所述目标定时时长的倍数关系,调用所述目标定时器的步骤包括:
确定所述待定时时长与所述目标定时时长之间的倍数值;
根据所述待定时时长与所述目标定时时长之间的倍数值,调用所述目标定时器。
可选地,所述根据所述待定时时长与所述目标定时时长之间的倍数值,调用所述目标定时器的步骤包括:
将所述待定时时长与所述目标定时时长之间的倍数值作为调用所述目标定时器的调用次数;
根据所述调用次数,调用所述目标定时器。
可选地,所述根据所述待定时时长与所述目标定时时长的倍数关系,调用所述目标定时器的步骤包括:
触发所述待定时时长对应的回调函数,并且确定所述待定时时长与所述目标定时时长的倍数关系;
基于所述回调函数以及所述倍数关系,调用所述目标定时器。
可选地,所述基于所述回调函数以及所述倍数关系,调用所述目标定时器的步骤包括:
获取所述回调函数中的回调参数;
根据所述回调函数中的回调参数以及所述倍数关系,调用所述目标定时器。
可选地,所述在调用所述时间序列中的定时时长时,调用所述目标定时器的步骤包括:
在执行所述任务时,若接收到所述任务对应的待定时时长的定时请求,则调用所述待定时时长;
在调用所述待定时时长时,基于所述目标定时器,执行计时时长为所述待定时时长对应的计时任务,其中,所述待定时时长为所述任务在所述时间序列中对应的定时时长。
此外,为实现上述目的,本发明还提供一种定时器调用装置,所述定时器调用装置包括:
收集模块,用于收集嵌入式实时操作系统中各个任务所申请定时器对应的定时时长;
分组模块,用于将所述定时时长中成倍数关系的定时时长分组至同一时间序列中,得到所述定时时长对应的时间序列;
调用模块,用于根据所述时间序列申请所述时间序列对应的目标定时器,在调用所述时间序列中的定时时长时,调用所述目标定时器。
此外,为实现上述目的,本发明还提供一种定时器调用设备,所述定时器调用设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的定时器调用程序,所述定时器调用程序被所述处理器执行时实现如上述的定时器调用方法的步骤。
此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有定时器调用程序,所述定时器调用程序被处理器执行时实现如上述的定时器调用方法的步骤。
本发明通过收集嵌入式实时操作系统中各个任务所申请定时器对应的定时时长;将所述定时时长中成倍数关系的定时时长分组至同一时间序列中,得到所述定时时长对应的时间序列;根据所述时间序列申请所述时间序列对应的目标定时器,在调用所述时间序列中的定时时长时,调用所述目标定时器。本实施例中通过对嵌入式实时操作系统中申请的定时器对应的定时时长按倍数关系进行分组,根据时间序列中定时时长对应的倍数关系给每组申请一个定时器即目标定时器,从而可以避免了嵌入式实时操作系统中每个任务都需要申请多个定时器以及避免了执行任务时需要申请多个定时器,以使嵌入式实时操作系统在执行任务时调用较少的定时器,进而减少系统被唤醒次数,从而降低了功耗和提升了系统性能。
附图说明
图1是本发明实施例方案涉及的硬件运行环境的定时器调用设备结构示意图;
图2为本发明定时器调用方法第一实施例的流程示意图;
图3为本发明定时器调用方法第二实施例的流程示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
如图1所示,图1是本发明实施例方案涉及的硬件运行环境的定时器调用设备结构示意图。
本发明实施例定时器调用设备可以是PC,也可以是智能手机、平板电脑、电子书阅读器、MP3(Moving Picture Experts Group Audio Layer III,动态影像专家压缩标准音频层面3)播放器、MP4(Moving Picture Experts Group Audio Layer IV,动态影像专家压缩标准音频层面4)播放器、便携计算机等具有显示功能的可移动式终端设备。
如图1所示,该定时器调用设备可以包括:处理器1001,例如CPU,网络接口1004,用户接口1003,存储器1005,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
可选地,定时器调用设备还可以包括摄像头、RF(Radio Frequency,射频)电路,传感器、音频电路、WiFi模块等等。其中,传感器比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示屏的亮度,接近传感器可在定时器调用设备移动到耳边时,关闭显示屏和/或背光。作为运动传感器的一种,重力加速度传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别定时器调用设备姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;当然,定时器调用设备还可配置陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
本领域技术人员可以理解,图1中示出的定时器调用设备结构并不构成对定时器调用设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及定时器调用程序。
在图1所示的定时器调用设备中,网络接口1004主要用于连接后台服务器,与后台服务器进行数据通信;用户接口1003主要用于连接客户端(用户端),与客户端进行数据通信;而处理器1001可以用于调用存储器1005中存储的定时器调用程序。
在本实施例中,定时器调用设备包括:存储器1005、处理器1001及存储在所述存储器1005上并可在所述处理器1001上运行的定时器调用程序,其中,处理器1001调用存储器1005中存储的定时器调用程序时,并执行以下操作:
收集嵌入式实时操作系统中各个任务所申请定时器对应的定时时长;
将所述定时时长中成倍数关系的定时时长分组至同一时间序列中,得到所述定时时长对应的时间序列;
根据所述时间序列申请所述时间序列对应的目标定时器,在调用所述时间序列中的定时时长时,调用所述目标定时器。
进一步地,处理器1001可以调用存储器1005中存储的定时器调用程序,还执行以下操作:
将所述时间序列中时长最小的定时时长作为目标定时时长,根据所述目标定时时长申请目标定时器,其中,所述目标定时器的定时时长与所述目标定时时长一致;
在调用所述时间序列中定时时长时,将所述时间序列中当前调用的定时时长作为待定时时长,根据所述待定时时长与所述目标定时时长的倍数关系,调用所述目标定时器。
可以理解,本发明各实施例中的定时时长为定时时长,或者,定时时长除了定时时长之外,还可以包括其他信息。
进一步地,处理器1001可以调用存储器1005中存储的定时器调用程序,还执行以下操作:
确定所述待定时时长与所述目标定时时长之间的倍数值;
根据所述待定时时长与所述目标定时时长之间的倍数值,调用所述目标定时器。
进一步地,处理器1001可以调用存储器1005中存储的定时器调用程序,还执行以下操作:
将所述待定时时长与所述目标定时时长之间的倍数值作为调用所述目标定时器的调用次数;
根据所述调用次数,调用所述目标定时器。
进一步地,处理器1001可以调用存储器1005中存储的定时器调用程序,还执行以下操作:
触发所述待定时时长对应的回调函数,并且确定所述待定时时长与所述目标定时时长的倍数关系;
基于所述回调函数以及所述倍数关系,调用所述目标定时器。
进一步地,处理器1001可以调用存储器1005中存储的定时器调用程序,还执行以下操作:
获取所述回调函数中的回调参数;
根据所述回调函数中的回调参数以及所述倍数关系,调用所述目标定时器。
进一步地,处理器1001可以调用存储器1005中存储的定时器调用程序,还执行以下操作:
在执行所述任务时,若接收到所述任务对应的待定时时长的定时请求,则调用所述待定时时长;
在调用所述待定时时长时,基于所述目标定时器,执行计时时长为所述待定时时长对应的计时任务,其中,所述待定时时长为所述任务在所述时间序列中对应的定时时长。
本发明还提供一种定时器调用方法,参照图2,图2为本发明定时器调用方法第一实施例的流程示意图。
在本实施例中,该定时器调用方法包括以下步骤:
步骤S10,收集嵌入式实时操作系统中各个任务所申请定时器对应的定时时长;
需要说明的是,本发明提出的定时器调用方法应用于嵌入式实时操作系统,嵌入式实时操作系统属于嵌入式操作系统中的一种。其中,嵌入式操作系统从应用角度可分为通用型嵌入式操作系统和专用型嵌入式操作系统,按实时性可分为嵌入式实时操作系统和嵌入式非实时操作系统。嵌入式实时操作系统主要面向控制、通信等领域,如WindRiver公司的VxWords、ISI的pSOS、QNX系统软件公司的QNX、ATI的Nucleus等。嵌入式实时操作系统是一种当外界事件或数据产生时能够接受并以足够快的速度予以处理,且处理的结果又能在规定的时间之内来控制生产过程或对处理系统作出快速响应,并控制所有实时任务协调一致运行的嵌入式操作系统。嵌入式实时操作系统应用在工业控制、军事设备、航空航天等对系统的响应时间有苛刻要求的领域。
在本实施例中,嵌入式实时操作系统中存在一定数量的待执行的任务,即任务为嵌入式实时操作系统中待执行的预设指令对应的预设操作,例如,任务可以是显示操作或者打印操作或者等待操作等等。嵌入式实时操作系统在执行任务之前或者在执行任务的过程中,预先收集嵌入式实时操作系统中各个任务所申请定时器对应的定时时长,需要说明的是,嵌入式实时操作系统中的任务中包含定时指令,从而根据任务中包含的定时指令,确定定时指令对应的定时时长,其中,任务中包含的定时指令可以是多个不同时间长度的定时指令。
步骤S20,将所述定时时长中成倍数关系的定时时长分组至同一时间序列中,得到所述定时时长对应的时间序列;
在本实施例中,在得到任务中的定时时长后,根据各个任务的定时时长的倍数关系,对定时时长进行分组。具体地,将呈倍数关系的定时时长分配至同一个时间序列中,或者将具有相同公因数的定时时长分配至相同的时间序列之中,得到多个时间序列,因此,时间序列中的各个定时时长之间具有相同的公因数,时间序列中的定时时长呈倍数关系。
例如,假设嵌入式实时操作系统各个任务申请定时器对应的定时时长包括:T1(2ms)、T2(3ms)、T3(4ms)、T4(6ms)、T5(7ms)、T6(8ms)、T7(9ms)、T8(12ms)、T9(15ms),根据定时时长的倍数关系,可以将上述示例的定时时长分成三个时间序列,依次为:时间序列1:T1(2ms)、T3(4ms)、T4(6ms)、T6(8ms)、T8(12ms);时间序列2:T2(3ms)、T7(9ms)、T9(15ms);时间序列3:T5(7ms)。
步骤S30,根据所述时间序列申请所述时间序列对应的目标定时器,在调用所述时间序列中的定时时长时,调用所述目标定时器。
在本实施例中,在得到分组定时时长对应的时间序列后,根据时间序列中的各个定时时长的倍数关系,申请该时间序列对应的一个目标定时器,从而在执行任务时,若接收到待定时时长对应的定时请求,则根据目标定时器执行计时时长为待定时时长对应的计时任务,其中,待定时时长为所述任务在所述时间序列中对应的定时时长。
进一步地,所述在调用所述时间序列中的定时时长时,调用所述目标定时器的步骤之后,还包括:
在执行所述任务时,若接收到所述任务对应的待定时时长的定时请求,则调用所述待定时时长;
在调用所述待定时时长时,基于所述目标定时器,执行计时时长为所述待定时时长对应的计时任务,其中,所述待定时时长为所述任务在所述时间序列中对应的定时时长。
在本实施例中,在执行到任务中待定时时长对应的待定时指令或者接收到待定时时长对应的定时请求时,进行调用待定时时长,并根据待定时时长获取确定待定时时长在时间序列中对应的目标定时器;之后,根据目标定时器执行计时时长为待定时时长对应的计时任务,其中,待定时时长为任务在所述时间序列中对应的定时时长。
本实施例提出的定时器调用方法,通过收集嵌入式实时操作系统中各个任务所申请定时器对应的定时时长;将所述定时时长中成倍数关系的定时时长分组至同一时间序列中,得到所述定时时长对应的时间序列;根据所述时间序列申请所述时间序列对应的目标定时器,在调用所述时间序列中的定时时长时,调用所述目标定时器。本实施例通过对嵌入式实时操作系统中申请的定时器对应的定时时长按倍数关系进行分组,根据时间序列中定时时长对应的倍数关系给每组申请一个定时器即目标定时器,从而可以避免了嵌入式实时操作系统中每个任务都需要申请多个定时器以及避免了执行任务时需要申请多个定时器,以使嵌入式实时操作系统在执行任务时调用较少的定时器,进而减少系统被唤醒次数,从而降低了功耗和提升了系统性能。
基于第一实施例,提出本发明定时器调用方法的第二实施例,参照图3,在本实施例中,步骤S30包括:
步骤S31,将所述时间序列中时长最小的定时时长作为目标定时时长,根据所述目标定时时长申请目标定时器,其中,所述目标定时器的定时时长与所述目标定时时长一致;
步骤S32,在调用所述时间序列中定时时长时,将所述时间序列中当前调用的定时时长作为待定时时长,根据所述待定时时长与所述目标定时时长的倍数关系,调用所述目标定时器。
在本实施例中,在得到分组定时时长对应的时间序列后,根据时间序列中的各个定时时长的倍数关系,确定时间序列中时长最小的定时时长;之后,将时间序列中时长最小的定时时长作为目标定时时长,并以目标定时时长对应的定时时长进行申请定时器,得到目标定时时长对应的目标定时器,使得目标定时器的定时时长与目标定时时长一致,并且该目标定时器该时间序列对应的定时器,且该目标定时器的定时时长为其对应的时间序列中时长最小的定时时长,因此,对于每个时间序列,每组时间序列只申请最小时间间隔的一个定时器,无需申请其它定时器,其他的定时器的申请被省略。
从而,后续在执行任务调用任务在时间序列中对应定时时长时,将任务在时间序列中对应定时时长作为待定时时长,即,将时间序列中当前调用的定时时长作为待定时时长,若接收到待定时时长对应的定时请求,则调用目标定时器,以使目标定时器执行计时时长为待定时时长对应的计时任务,其中,待定时时长为所述任务在时间序列中对应的定时时长。
为了便于理解,沿用第一实施例中的例子进行举例说明,对于每个时间序列,每组时间序列只申请最小时间间隔的一个定时器。对于时间序列1:T1(2ms)、T3(4ms)、T4(6ms)、T6(8ms)、T8(12ms),时间序列1申请T1(2ms)定时器;对于时间序列2:T2(3ms)、T7(9ms)、T9(15ms),时间序列2申请T2(3ms)定时器;对于时间序列3:T5(7ms),时间序列3申请T5(7ms)定时器。
进一步地,所述根据所述待定时时长与所述目标定时时长的倍数关系,调用所述目标定时器的步骤包括:
步骤S3201,确定所述待定时时长与所述目标定时时长之间的倍数值;
步骤S3202,根据所述待定时时长与所述目标定时时长之间的倍数值,调用所述目标定时器。
在本实施例中,在执行任务调用任务在时间序列中对应定时时长时,由于目标定时器的定时时长为其对应的时间序列中时长最小的定时时长,因此在执行任务调用对应的待定时时长时,计算待定时时长与目标定时时长之间的倍数值;从而根据待定时时长和目标定时时长之间的倍数值,进行调用目标定时器,以使目标定时器执行计时任务。其中,待定时时长为任务在所述时间序列中对应的定时时长。
需要说明的是,对于目标定时器对应的时间序列中的其它定时时长同理,当调用到时间序列中的定时时长时,进行计算所调用定时时长和最小的定时时长之间的倍数值,从而根据所调用定时时长和最小的定时时长之间的倍数值,进行调用目标定时器,以使目标定时器执行计时任务。
进一步地,所述根据所述待定时时长与所述目标定时时长之间的倍数值,调用所述目标定时器的步骤包括:
步骤S32021,将所述待定时时长与所述目标定时时长之间的倍数值作为调用所述目标定时器的调用次数;
步骤S32022,根据所述调用次数,调用所述目标定时器。
在本实施例中,在执行任务调用任务在时间序列中对应定时时长时,由于目标定时器的定时时长为其对应的时间序列中时长最小的定时时长,因此在执行任务调用对应的待定时时长时,计算待定时时长与目标定时时长之间的倍数值;从而根据待定时时长和目标定时时长之间的倍数值,将待定时时长与目标定时时长之间的倍数值作为调用目标定时器对应的调用次数,根据调用次数调用目标定时器,使调用目标定时器的次数为该调用次数。
为了便于理解,沿用第一实施例中的例子进行举例说明,对于时间序列1:T1(2ms)、T3(4ms)、T4(6ms)、T6(8ms)、T8(12ms),时间序列1申请T1(2ms)定时器,当调用到待定时时长为T6(8ms)时,计算T6(8ms)和T1(2ms)的倍数值,得到倍数值为4,那么在调用T6(8ms)时,调用4次目标定时器。
进一步地,所述根据所述待定时时长与所述目标定时时长的倍数关系,调用所述目标定时器的步骤包括:
步骤S3211,触发所述待定时时长对应的回调函数,并且确定所述待定时时长与所述目标定时时长的倍数关系;
步骤S3212,基于所述回调函数以及所述倍数关系,调用所述目标定时器。
在本实施例中,在执行任务调用任务在时间序列中对应定时时长时,将任务在时间序列中对应定时时长作为待定时时长,即,将时间序列中当前调用的定时时长作为待定时时长,若接收到待定时时长对应的定时请求,则触发待定时时长对应的回调函数,并确定待定时时长与目标定时时长之间的倍数关系;根据回调函数中的回调函数和倍数关系调用目标定时器,以使目标定时器执行计时时长为待定时时长对应的计时任务。其中,倍数关系为待定时时长与目标定时时长之间的倍数值,待定时时长为任务在时间序列中对应的定时时长。
进一步地,所述基于所述回调函数以及所述倍数关系,调用所述目标定时器的步骤包括:
步骤S32121,获取所述回调函数中的回调参数;
步骤S32122,根据所述回调函数中的回调参数以及所述倍数关系,调用所述目标定时器。
在本实施例中,在触发待定时时长对应的回调函数后,获取回调函数中的回调参数,根据回调函数和倍数关系调用目标定时器,以使目标定时器执行计时时长为待定时时长对应的计时任务,具体地,根据回调函数调用目标定时器,以及将待定时时长与目标定时时长之间的倍数值作为调用目标定时器的调用次数进行调用目标定时器,其中,倍数关系为待定时时长与目标定时时长之间的倍数值。需要说明的是,嵌入式实时操作系统一般不能直接调用定时器,需要通过回调函数获取回调参数,并根据回调函数以及回调函数中的回调参数调用定时器。
为了便于理解,沿用上述实施例中的例子进行举例说明,以时间序列1为例进行说明:对于时间序列1:T1(2ms)、T3(4ms)、T4(6ms)、T6(8ms)、T8(12ms),时间序列1申请T1(2ms)定时器。在触发到时间序列1中的时间序列时,确定所触发的时间为T1的倍数值,并以该倍数值为调用次数进行调用T1定时器。例如,在触发T1时,执行T1的回调函数,以基于该回调函数调用T1定时器进行计数;之后等第二次定时触发,当触发T3时,计算T3为T1在时间上的倍数值,并将该倍数值作为调用回调函数的调用次数,基于该调用次数执行T1的回调函数。以此类推,在触发T4时执行T4对应的回调函数,在触发T6时执行T6对应的回调函数,以及在触发T8时执行T8对应的回调函数。
本实施例提出的定时器调用方法,通过将所述时间序列中时长最小的定时时长作为目标定时时长,根据所述目标定时时长申请目标定时器,其中,所述目标定时器的定时时长与所述目标定时时长一致;在调用所述时间序列中定时时长时,将所述时间序列中当前调用的定时时长作为待定时时长,根据所述待定时时长与所述目标定时时长的倍数关系,调用所述目标定时器。本实施例中通过将时间序列中时长最小的定时时长作为目标定时时长,并根据目标定时时长给该时间序列申请一个定时器即目标定时器,从而可以避免了嵌入式实时操作系统中每个任务都需要申请多个定时器以及避免了执行任务时需要申请多个定时器,以使嵌入式实时操作系统在执行任务时调用较少的定时器,进而减少系统被唤醒次数,从而降低了功耗和提升了系统性能。
此外,本发明实施例还提出定时器调用装置,所述定时器调用装置包括:
收集模块,用于收集嵌入式实时操作系统中各个任务所申请定时器对应的定时时长;
分组模块,用于将所述定时时长中成倍数关系的定时时长分组至同一时间序列中,得到所述定时时长对应的时间序列;
调用模块,用于根据所述时间序列申请所述时间序列对应的目标定时器,在调用所述时间序列中的定时时长时,调用所述目标定时器。
进一步地,所述调用模块,还用于:
将所述时间序列中时长最小的定时时长作为目标定时时长,根据所述目标定时时长申请目标定时器,其中,所述目标定时器的定时时长与所述目标定时时长一致;
在调用所述时间序列中定时时长时,将所述时间序列中当前调用的定时时长作为待定时时长,根据所述待定时时长与所述目标定时时长的倍数关系,调用所述目标定时器。
进一步地,所述调用模块,还用于:
确定所述待定时时长与所述目标定时时长之间的倍数值;
根据所述待定时时长与所述目标定时时长之间的倍数值,调用所述目标定时器。
进一步地,所述调用模块,还用于:
将所述待定时时长与所述目标定时时长之间的倍数值作为调用所述目标定时器的调用次数;
根据所述调用次数,调用所述目标定时器。
进一步地,所述调用模块,还用于:
触发所述待定时时长对应的回调函数,并且确定所述待定时时长与所述目标定时时长的倍数关系;
基于所述回调函数以及所述倍数关系,调用所述目标定时器。
进一步地,所述调用模块,还用于:
获取所述回调函数中的回调参数;
根据所述回调函数中的回调参数以及所述倍数关系,调用所述目标定时器。
进一步地,所述调用模块,还用于:在执行所述任务时,若接收到所述任务对应的待定时时长的定时请求,则调用所述待定时时长;
在调用所述待定时时长时,基于所述目标定时器,执行计时时长为所述待定时时长对应的计时任务,其中,所述待定时时长为所述任务在所述时间序列中对应的定时时长。
此外,本发明实施例还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有定时器调用程序,所述定时器调用程序被处理器执行时实现如上述中任一项所述的定时器调用方法的步骤。
本发明计算机可读存储介质具体实施例与上述定时器调用方法的各实施例基本相同,在此不再详细赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种定时器调用方法,其特征在于,所述定时器调用方法包括以下步骤:
收集嵌入式实时操作系统中各个任务所申请定时器对应的定时时长;
将所述定时时长中成倍数关系的定时时长分组至同一时间序列中,得到所述定时时长对应的时间序列;
根据所述时间序列申请所述时间序列对应的目标定时器,在调用所述时间序列中的定时时长时,调用所述目标定时器。
2.如权利要求1所述的定时器调用方法,其特征在于,所述根据所述时间序列申请所述时间序列对应的目标定时器,在调用所述时间序列中的定时时长时,调用所述目标定时器的步骤包括:
将所述时间序列中时长最小的定时时长作为目标定时时长,根据所述目标定时时长申请目标定时器,其中,所述目标定时器的定时时长与所述目标定时时长一致;
在调用所述时间序列中定时时长时,将所述时间序列中当前调用的定时时长作为待定时时长,根据所述待定时时长与所述目标定时时长的倍数关系,调用所述目标定时器。
3.如权利要求2所述的定时器调用方法,其特征在于,所述根据所述待定时时长与所述目标定时时长的倍数关系,调用所述目标定时器的步骤包括:
确定所述待定时时长与所述目标定时时长之间的倍数值;
根据所述待定时时长与所述目标定时时长之间的倍数值,调用所述目标定时器。
4.如权利要求3所述的定时器调用方法,其特征在于,所述根据所述待定时时长与所述目标定时时长之间的倍数值,调用所述目标定时器的步骤包括:
将所述待定时时长与所述目标定时时长之间的倍数值作为调用所述目标定时器的调用次数;
根据所述调用次数,调用所述目标定时器。
5.如权利要求2所述的定时器调用方法,其特征在于,所述根据所述待定时时长与所述目标定时时长的倍数关系,调用所述目标定时器的步骤包括:
触发所述待定时时长对应的回调函数,并且确定所述待定时时长与所述目标定时时长的倍数关系;
基于所述回调函数以及所述倍数关系,调用所述目标定时器。
6.如权利要求5所述的定时器调用方法,其特征在于,所述基于所述回调函数以及所述倍数关系,调用所述目标定时器的步骤包括:
获取所述回调函数中的回调参数;
根据所述回调函数中的回调参数以及所述倍数关系,调用所述目标定时器。
7.如权利要求1至6任一项所述的定时器调用方法,其特征在于,所述在调用所述时间序列中的定时时长时,调用所述目标定时器的步骤包括:
在执行所述任务时,若接收到所述任务对应的待定时时长的定时请求,则调用所述待定时时长;
在调用所述待定时时长时,基于所述目标定时器,执行计时时长为所述待定时时长对应的计时任务,其中,所述待定时时长为所述任务在所述时间序列中对应的定时时长。
8.一种定时器调用装置,其特征在于,所述定时器调用装置包括:
收集模块,用于收集嵌入式实时操作系统中各个任务所申请定时器对应的定时时长;
分组模块,用于将所述定时时长中成倍数关系的定时时长分组至同一时间序列中,得到所述定时时长对应的时间序列;
调用模块,用于根据所述时间序列申请所述时间序列对应的目标定时器,在调用所述时间序列中的定时时长时,调用所述目标定时器。
9.一种定时器调用设备,其特征在于,所述定时器调用设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的定时器调用程序,所述定时器调用程序被所述处理器执行时实现如权利要求1至7中任一项所述的定时器调用方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有定时器调用程序,所述定时器调用程序被处理器执行时实现如权利要求1至7中任一项所述的定时器调用方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110157785.3A CN112817723A (zh) | 2021-02-04 | 2021-02-04 | 定时器调用方法、装置、设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110157785.3A CN112817723A (zh) | 2021-02-04 | 2021-02-04 | 定时器调用方法、装置、设备及计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112817723A true CN112817723A (zh) | 2021-05-18 |
Family
ID=75861524
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110157785.3A Pending CN112817723A (zh) | 2021-02-04 | 2021-02-04 | 定时器调用方法、装置、设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112817723A (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102231056A (zh) * | 2011-05-17 | 2011-11-02 | 四川长虹电器股份有限公司 | 定时器共用的方法 |
US20130074080A1 (en) * | 2011-09-16 | 2013-03-21 | Skype Limited | Timed Iterator |
CN106886450A (zh) * | 2015-12-16 | 2017-06-23 | 阿里巴巴集团控股有限公司 | 任务调度方法和系统 |
CN108255596A (zh) * | 2016-12-28 | 2018-07-06 | 福建省天奕网络科技有限公司 | 一种执行定时任务的方法及系统 |
CN110447013A (zh) * | 2018-01-16 | 2019-11-12 | 深圳市汇顶科技股份有限公司 | 定时器实现方法和装置 |
CN110532081A (zh) * | 2019-09-02 | 2019-12-03 | 政采云有限公司 | 一种定时任务处理方法及装置 |
-
2021
- 2021-02-04 CN CN202110157785.3A patent/CN112817723A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102231056A (zh) * | 2011-05-17 | 2011-11-02 | 四川长虹电器股份有限公司 | 定时器共用的方法 |
US20130074080A1 (en) * | 2011-09-16 | 2013-03-21 | Skype Limited | Timed Iterator |
CN106886450A (zh) * | 2015-12-16 | 2017-06-23 | 阿里巴巴集团控股有限公司 | 任务调度方法和系统 |
CN108255596A (zh) * | 2016-12-28 | 2018-07-06 | 福建省天奕网络科技有限公司 | 一种执行定时任务的方法及系统 |
CN110447013A (zh) * | 2018-01-16 | 2019-11-12 | 深圳市汇顶科技股份有限公司 | 定时器实现方法和装置 |
CN110532081A (zh) * | 2019-09-02 | 2019-12-03 | 政采云有限公司 | 一种定时任务处理方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107506240B (zh) | 后台应用程序管控方法、装置、存储介质及电子设备 | |
CN110796725B (zh) | 一种数据渲染方法、装置、终端及存储介质 | |
CN105955765A (zh) | 应用预加载方法及装置 | |
CN103294335A (zh) | 用于创建快键菜单的设备和方法 | |
CN108427698A (zh) | 预测模型的更新装置、方法及计算机可读存储介质 | |
CN108984066B (zh) | 一种应用程序图标显示方法及移动终端 | |
CN109284144B (zh) | 一种快应用处理方法及移动终端 | |
CN107590057A (zh) | 冻屏监测与解决方法、移动终端及计算机可读存储介质 | |
CN108540649B (zh) | 一种内容展示方法及移动终端 | |
CN105930213A (zh) | 应用运行方法及装置 | |
CN109215640B (zh) | 语音识别方法、智能终端及计算机可读存储介质 | |
CN107800869B (zh) | 一种分屏显示方法、移动终端和存储介质 | |
CN114640727B (zh) | 协议解析方法、装置及计算机可读存储介质 | |
CN106227566A (zh) | 应用商店中应用程序下载控制方法、装置及终端设备 | |
CN112817723A (zh) | 定时器调用方法、装置、设备及计算机可读存储介质 | |
CN109814953B (zh) | 穿戴式设备视图处理方法、装置、穿戴式设备及存储介质 | |
CN109658926B (zh) | 一种语音指令的更新方法及移动终端 | |
CN114327846A (zh) | 集群的扩容方法、装置、电子设备及计算机可读存储介质 | |
CN114244952B (zh) | 闹钟处理方法、装置、电子设备及介质 | |
CN112332996B (zh) | 终端配网方法、装置、设备及计算机可读存储介质 | |
CN109413592B (zh) | 一种广播方法和移动终端 | |
CN112363852A (zh) | 弹窗消息处理方法、装置、设备及计算机可读存储介质 | |
CN108549573B (zh) | 一种内存模型的计算方法、装置及计算机可读存储介质 | |
CN111047032A (zh) | 图像检测的加速方法、装置及存储介质 | |
CN110851200A (zh) | 动画的响应式驱动方法、装置及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210518 |