CN112199170A - 实时操作系统的定时处理方法、装置、设备及存储介质 - Google Patents
实时操作系统的定时处理方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN112199170A CN112199170A CN202010930325.5A CN202010930325A CN112199170A CN 112199170 A CN112199170 A CN 112199170A CN 202010930325 A CN202010930325 A CN 202010930325A CN 112199170 A CN112199170 A CN 112199170A
- Authority
- CN
- China
- Prior art keywords
- event
- timing
- hardware timer
- time
- timing event
- 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.)
- Granted
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 37
- 238000012545 processing Methods 0.000 claims abstract description 148
- 238000000034 method Methods 0.000 claims abstract description 72
- 230000008569 process Effects 0.000 claims abstract description 59
- 230000004044 response Effects 0.000 claims abstract description 39
- 230000006870 function Effects 0.000 claims description 49
- 238000001514 detection method Methods 0.000 claims description 16
- 230000001960 triggered effect Effects 0.000 abstract description 6
- 239000002609 medium Substances 0.000 description 13
- 238000010586 diagram Methods 0.000 description 7
- 230000000052 comparative effect Effects 0.000 description 5
- 238000012217 deletion Methods 0.000 description 3
- 230000037430 deletion Effects 0.000 description 3
- 238000003780 insertion Methods 0.000 description 3
- 230000037431 insertion Effects 0.000 description 3
- 230000009191 jumping Effects 0.000 description 2
- 230000000737 periodic effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 239000012120 mounting media Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction 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
-
- 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/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- 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)
- Debugging And Monitoring (AREA)
Abstract
本申请实施例公开了实时操作系统的定时处理方法、装置、设备及存储介质。本申请实施例提供的技术方案通过根据从当前系统时刻经过定时时间确定需要处理定时事件的实际处理时刻,以确定时事件的实际处理时刻的硬件定时器比较值,并在硬件定时器计数值到达硬件定时器比较值时,触发硬件定时器比较中断,以调用函数处理定时事件,不再周期产生中断,而是随着需要处理定时事件的时刻点来产生中断,节省系统功耗,保证任务执行的连续性,并且在记录系统时间值时不会停止硬件定时器,时钟精度与硬件定时器的计数频率相关,有效提高系统的时间精度以及中断响应速度。
Description
技术领域
本申请实施例涉及计算机技术领域,尤其涉及实时操作系统的定时处理方法、装置、设备及存储介质。
背景技术
在现有的大部分嵌入式操作系统中一般会使用一个硬件定时器产生一个周期为毫秒级的周期性中断来实现系统时钟,两次中断之间相间隔的时间为最小时钟单位,称为时钟节拍(time tick),简称Tick。硬件定时器周期性地产生中断来带动调度器、定时系统及其他与时钟相关的模块。
在操作系统运行的很多时间内,除了系统时间维护,时钟中断对系统的运转没有实际意义,并不会触发进程调度及定时器事件。系统处于休眠状态以节约功耗时,这种无意义的周期时钟中断会带动系统的无意义工作,增加了不必要的能耗。
发明内容
本申请实施例提供实时操作系统的定时处理方法、装置、设备及存储介质,以降低系统功耗,提高系统的时间精度以及中断响应速度。
在第一方面,本申请实施例提供了一种实时操作系统的定时处理方法,包括:
根据定时事件的定时时间和当前系统时刻,确定需要处理定时事件的实际处理时刻;
基于需要处理的定时事件的实际处理时刻,设置硬件定时器比较值,所述硬件定时器计数值由硬件定时器以设定频率进行计算得到;
响应于硬件定时器计数值达到硬件定时器比较值,触发硬件定时器比较中断以对所述定时事件进行处理。
进一步的,所述根据定时事件的定时时间和当前系统时刻,确定需要处理定时事件的实际处理时刻,包括:
获取当前系统时刻,将定时事件需要处理的定时时间与所述当前系统时刻相加,得到所述定时事件需要处理的实际处理时刻;
按照实际处理时刻的先后顺序,将所述定时事件插入到事件链表中。
进一步的,所述基于需要处理的定时事件的实际处理时刻,设置硬件定时器比较值之后,还包括:
判断添加的定时事件是否位于所述事件链表中所有定时事件的第一位;
若是,则更新硬件定时器比较值;
否则,保持当前硬件定时器比较值。
进一步的,所述基于需要处理的定时事件的实际处理时刻,设置硬件定时器比较值,包括:
根据硬件定时器的设定频率与硬件定时器计数值确定当前系统时刻;
判断当前系统时刻是否小于所述定时事件需要处理的实际处理时刻;
若是,则根据所述实际处理时刻设置硬件定时器比较值,并确定开始对硬件定时器比较中断的检测;
否则,触发硬件定时器比较中断以处理所述定时事件。
进一步的,所述响应于硬件定时器计数值达到硬件定时器比较值,触发硬件定时器比较中断以对所述定时事件进行处理之后,还包括:
判断是否需要设置下一个定时事件的比较中断;
若是,则根据下一个定时事件的实际处理时刻设置发生下一次硬件定时器比较中断的硬件定时器比较值;
否则,确定停止对硬件定时器比较中断的检测。
进一步的,所述响应于硬件定时器计数值达到硬件定时器比较值,触发硬件定时器比较中断以对所述定时事件进行处理,包括:
响应于硬件定时器计数值达到硬件定时器比较值,判断事件链表是否存在定时事件;
若事件链表存在定时事件,则取出事件链表中的第一个定时事件,并判断当前系统时刻是否达到所述定时事件的实际处理时刻;
若当前系统时刻达到所述定时事件的实际处理时刻,则将所述定时事件从事件链表中删除并调用定时事件的回调函数以处理定时事件。
进一步的,所述若当前系统时刻达到所述定时事件的实际处理时刻,则将所述定时事件从事件链表中删除并调用定时事件的回调函数以处理定时事件之后,还包括:
根据回调函数的返回值确定是否需要进行任务切换,并重新判断事件链表是否存在定时事件;
若事件链表不存在定时事件或当前系统时刻未达到所述定时事件的实际处理时刻,则根据回调函数的返回值进行任务切换,并判断事件链表是否存在定时事件;
若事件链表存在定时事件,则根据事件链表中第一个定时事件的实际处理时刻确定下一个硬件定时器比较值,并根据任务切换需求进行任务切换。
进一步的,所述根据定时事件的定时时间和当前系统时刻,确定需要处理定时事件的实际处理时刻之前,还包括:
根据硬件定时器连续两次的硬件定时器计数值确定硬件定时器是否发生溢出,以更新硬件定时器的溢出累计值;
根据硬件定时器的溢出累计值与最新一次硬件定时器计数值确定当前系统时刻。
在第二方面,本申请实施例提供了一种实时操作系统的定时处理装置,包括时刻确定模块、中断设置模块以及中断响应模块,其中:
时刻确定模块,用于根据定时事件的定时时间和当前系统时刻,确定需要处理定时事件的实际处理时刻;
中断设置模块,用于基于需要处理的定时事件的实际处理时刻,设置硬件定时器比较值,所述硬件定时器计数值由硬件定时器以设定频率进行计算得到;
中断响应模块,用于响应于硬件定时器计数值达到硬件定时器比较值,触发硬件定时器比较中断以对所述定时事件进行处理。
进一步的,所述时刻确定模块具体用于:
获取当前系统时刻,将定时事件需要处理的定时时间与所述当前系统时刻相加,得到所述定时事件需要处理的实际处理时刻;
按照实际处理时刻的先后顺序,将所述定时事件插入到事件链表中。
进一步的,所述时刻确定模块在基于需要处理的定时事件的实际处理时刻,设置硬件定时器比较值之后,还包括:
判断添加的定时事件是否位于所述事件链表中所有定时事件的第一位;
若是,则更新硬件定时器比较值;
否则,保持当前硬件定时器比较值。
进一步的,所述中断设置模块具体用于:
根据硬件定时器的设定频率与硬件定时器计数值确定当前系统时刻;
判断当前系统时刻是否小于所述定时事件需要处理的实际处理时刻;
若是,则根据所述实际处理时刻设置硬件定时器比较值,并确定开始对硬件定时器比较中断的检测;
否则,触发硬件定时器比较中断以处理所述定时事件。
进一步的,所述装置还包括中断更新模块,用于在中断响应模块响应于硬件定时器计数值达到硬件定时器比较值,触发硬件定时器比较中断以对所述定时事件进行处理之后:
判断是否需要设置下一个定时事件的比较中断;
若是,则根据下一个定时事件的实际处理时刻设置发生下一次硬件定时器比较中断的硬件定时器比较值;
否则,确定停止对硬件定时器比较中断的检测。
进一步的,所述中断响应模块具体用于:
响应于硬件定时器计数值达到硬件定时器比较值,判断事件链表是否存在定时事件;
若事件链表存在定时事件,则取出事件链表中的第一个定时事件,并判断当前系统时刻是否达到所述定时事件的实际处理时刻;
若当前系统时刻达到所述定时事件的实际处理时刻,则将所述定时事件从事件链表中删除并调用定时事件的回调函数以处理定时事件。
进一步的,所述中断响应模块还用于:
根据回调函数的返回值确定是否需要进行任务切换,并重新判断事件链表是否存在定时事件;
若事件链表不存在定时事件或当前系统时刻未达到所述定时事件的实际处理时刻,则根据回调函数的返回值进行任务切换,并判断事件链表是否存在定时事件;
若事件链表存在定时事件,则根据事件链表中第一个定时事件的实际处理时刻确定下一个硬件定时器比较值,并根据任务切换需求进行任务切换。
进一步的,所述装置还包括时间获取模块,用于在时刻确定模块根据定时事件的定时时间和当前系统时刻,确定需要处理定时事件的实际处理时刻之前:
根据硬件定时器连续两次的硬件定时器计数值确定硬件定时器是否发生溢出,以更新硬件定时器的溢出累计值;
根据硬件定时器的溢出累计值与最新一次硬件定时器计数值确定当前系统时刻。
在第三方面,本申请实施例提供了一种计算机设备,包括:存储器以及一个或多个处理器;
所述存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如第一方面所述的实时操作系统的定时处理方法。
在第四方面,本申请实施例提供了一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行如第一方面所述的实时操作系统的定时处理方法。
本申请实施例通过根据从当前系统时刻经过定时时间确定需要处理定时事件的实际处理时刻,以确定时事件的实际处理时刻的硬件定时器比较值,并在硬件定时器计数值到达硬件定时器比较值时,触发硬件定时器比较中断,以调用函数处理定时事件,不再周期产生中断,而是随着需要处理定时事件的时刻点来产生中断,节省系统功耗,保证任务执行的连续性,并且在记录系统时间值时不会停止硬件定时器,时钟精度与硬件定时器的计数频率相关,有效提高系统的时间精度以及中断响应速度。
附图说明
图1是本申请实施例提供的一种实时操作系统的定时处理方法的流程图;
图2是本申请实施例提供的一种实时操作系统的定时处理系统的系统架构示意图;
图3是本申请实施例提供的另一种实时操作系统的定时处理方法的流程图;
图4是本申请实施例提供的一种增加定时事件的处理流程图;
图5是本申请实施例提供的一种响应比较中断对定时事件进行处理的流程图;
图6是本申请实施例提供的一种实时操作系统的定时处理装置的结构示意图;
图7是本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面结合附图对本申请具体实施例作进一步的详细描述。可以理解的是,此处所描述的具体实施例仅仅用于解释本申请,而非对本申请的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本申请相关的部分而非全部内容。在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作(或步骤)描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
图1给出了本申请实施例提供的一种实时操作系统的定时处理方法的流程图,本申请实施例提供的实时操作系统的定时处理方法可以由实时操作系统的定时处理装置来执行,该实时操作系统的定时处理装置可以通过硬件和/或软件的方式实现,并集成在计算机设备中。
图2给出了本申请实施例提供的一种实时操作系统的定时处理系统的系统架构示意图。如图2所示,该嵌入式的实时操作系统的定时处理系统在软件上定义了相互通信的系统定时器层以及硬件抽象层,用于实现本申请实施例提供的一种实时操作系统的定时处理方法。
其中,硬件抽象层提供一个设定位数(例如32位、64位)的计数值的硬件定时器,该硬件定时器以设定频率进行计算得到硬件定时器计数值,并且该硬件定时器具有不需要停止计时器就可以设置中断发生的时刻的特性,并且设置后立即生效。
本实施例以64位计数值的硬件定时器为例进行描述,在其他实施例中可根据实际需要设置计数值的位数。该硬件定时器的硬件定时器计数值以设定频率从0开始计数,本实施例设置有64位计数值,即硬件计数器的硬件定时器计数值最大可计数264-1。
进一步的,该硬件计数器可设置运行到任意指定计数值时就产生中断(比较中断)。并且硬件抽象层向系统定时器层提供三个接口,分别用于设置比较中断发生的时刻(或计数值)、获取当前硬件定时器的硬件定时器计数值以及获取硬件定时器的设定频率。
进一步的,系统定时器层主要用于管理定时事件以及为上层(操作系统或应用)提供系统时间等。系统定时器层可调用硬件抽象层的接口,同时对上层提供了两个功能:获取当前系统时刻以及增加和删除定时事件,同时还会对相同优先级任务间的轮转进行管理。
下述以实时操作系统的定时处理装置执行实时操作系统的定时处理方法为例进行描述。参考图1,该实时操作系统的定时处理方法包括:
S101:根据定时事件的定时时间和当前系统时刻,确定需要处理定时事件的实际处理时刻。
其中,定时事件为从当前时刻起经过定时时间后需要进行处理的事件,定时事件的处理方法一般是调用回调函数进行处理。回调函数是一个通过函数指针调用的函数。例如,把函数的指针(地址)作为参数传递给另一个函数,这个被用来调用其所指向的函数即为回调函数。
示例性的,当需要处理定时事件时,系统定时器层确定该定时事件的定时时间。同时,系统定时器层经硬件抽象层的接口确定当前硬件定时器的设定频率以及硬件定时器计数值,根据设定频率以及硬件定时器计数值可确定当前系统时刻。
进一步的,在确定定时事件的定时时间以及当前系统时刻后,计算从当前系统时刻经过定时时间后对应的系统时间,该系统时间即为确定需要处理定时事件的实际处理时刻。
S102:基于需要处理的定时事件的实际处理时刻,设置硬件定时器比较值。
其中,硬件定时器计数值由硬件定时器以设定频率进行计算得到。
示例性的,系统定时器层根据当前系统时刻对应的硬件定时器计数值,确定到达实际处理时刻时硬件定时器的计数值,该计数值即为硬件定时器比较值,在硬件定时器计数值达到硬件定时器比较值时,硬件定时器发生比较中断。
进一步的,确定硬件定时器比较值后,调用硬件抽象层的接口设置硬件定时器比较值,硬件抽象层将在硬件定时器的硬件定时器计数值达到硬件定时器比较值时,硬件抽象层中硬件定时器发生比较中断,向系统定时器层请求中断并调用系统定时器层对定时节点的处理函数(回调函数)。
S103:响应于硬件定时器计数值达到硬件定时器比较值,触发硬件定时器比较中断以对所述定时事件进行处理。
示例性的,在硬件抽象层中硬件定时器发生比较中断并调用系统定时器层对定时节点的处理函数时,确认有定时事件需要进行处理,并调用对应定时事件的回调函数,响应中断请求,以对达到定时时间的定时事件进行处理。
上述,通过根据从当前系统时刻经过定时时间确定需要处理定时事件的实际处理时刻,以确定时事件的实际处理时刻的硬件定时器比较值,并在硬件定时器计数值到达硬件定时器比较值时,触发硬件定时器比较中断,以调用函数处理定时事件,不再周期产生中断,而是随着需要处理定时事件的时刻点来产生中断,节省系统功耗,保证任务执行的连续性。
在上述实施例的基础上,图3为本申请实施例提供的另一种实时操作系统的定时处理方法的流程图,该实时操作系统的定时处理方法是对上述实时操作系统的定时处理方法的具体化。参考图3,该实时操作系统的定时处理方法包括:
S201:根据硬件定时器的硬件定时器计数值确定当前系统时刻。
本实施例以提供64位计数值的硬件定时器为例进行描述,对于具有64位的硬件定时器的硬件抽象层,可直接使用该硬件定时器,并根据硬件计数器的设定频率和硬件定时器计数值可确认当前系统时刻(例如将硬件定时器计数值与设定频率的商作为当前系统时刻)。
而在32位的MCU上通常不存在64位计数值的硬件定时器,则可通过将其他位数(例如32位)的硬件计数器扩展为64位的硬件计数器。
具体的,对于通过扩展32位硬件计数器的方式得到64位的硬件计数器,所述根据硬件定时器的硬件定时器计数值确定当前系统时刻具体包括:
S2011:根据硬件定时器连续两次的硬件定时器计数值确定硬件定时器是否发生溢出,以更新硬件定时器的溢出累计值。
示例性的,初始化时定义一个变量rollover_cnt作为64位系统时间的高32位,并将该变量确定为溢出累计值,每当32位的硬件定时器发生计数溢出时,将rollover_cnt的值增加1,以完成对硬件定时器的溢出累计值的更新。
具体的,获取当前硬件定时器连续读两次的硬件定时器计数值,并分别记为t1与t2,并判断t1是否大于t2,若是,则重新获取当前硬件定时器连续读两次的硬件定时器计数值,否则,确认发生硬件定时器发生溢出事件并将rollover_cnt的值增加1。
本实施例判断t1是否大于t2的原因是存在连续读取两次计数值时,发生计数器溢出事件,比如t1=232-1,t2=1,此时在使用t2时间时需要将rollover_cnt的值增加1后再来计算,通过连续读两次并且确定t1<=t2时,保证了t2的计数值可用。
S2012:根据硬件定时器的溢出累计值与最新一次硬件定时器计数值确定当前系统时刻。
具体的,将溢出累计值(rollover_cnt)作为64位计数值的高32位与t2的计数值合并为硬件定时器的64位计数值(即硬件定时器计数值)。
进一步的,根据硬件计数器的设定频率和硬件定时器计数值可确认当前系统时刻,例如将硬件定时器计数值与设定频率的商作为当前系统时刻。
S202:根据定时事件的定时时间和当前系统时刻,确定需要处理定时事件的实际处理时刻。
图4为本申请实施例提供的一种增加定时事件的处理流程图,如遇4所示,在检测到新增的定时事件时,对实际处理时刻的确定具体包括步骤S2021-S2022:
S2021:获取当前系统时刻,将定时事件需要处理的定时时间与所述当前系统时刻相加,得到所述定时事件需要处理的实际处理时刻。
具体的,当需要增加一个定时事件时,获取当前系统时刻并加上需要定时的定时时间,计算得出此定时事件需要处理的实际处理时刻。
S2022:按照实际处理时刻的先后顺序,将所述定时事件插入到事件链表中。
具体的,确定该定时事件的实际处理时刻后,将该定时事件按照实际处理时刻的先后顺序(也就是实际处理时刻的大小顺序)插入到事件链表中,在此事件链表中定时事件需要处理的实际处理时刻的值越小排序越靠前,也就越需要先处理。
在一个可能的实施例中,本实施例提供的事件链表将系统中需要处理的定时事件按需要处理的先后顺序进行排序,排在链表越前面的定时事件就越先需要处理。在增加定时事件时就对此事件链表进行了排序。排序的方法可以是将两个定时事件的实际处理时刻行比较,若第一个实际处理时刻减去第二个实际处理时刻小于0x8000000000000000(这个值是基于硬件定时器是64位计数值的)时,则第二个实际处理时刻排序在第一个实际处理时刻之前。
S2023:判断添加的定时事件是否位于所述事件链表中所有定时事件的第一位。若是,则跳转至步骤S2024,否则跳转至步骤S2025。
具体的,将定时事件插入事件链表后,判断该定时事件的插入位置是否为事件链表所有节点的第一个,则跳转至步骤S2024,否则跳转至步骤S2025。
S2024:更新硬件定时器比较值。
若定时事件的插入位置为事件链表所有节点的第一个,则需要将硬件抽象层中已设置的硬件定时器比较值更新为该实际处理时刻对应的硬件定时器比较值,以正确对排在第一位的定时事件进行处理。
具体的,在确定定时事件的插入位置为事件链表所有节点的第一个时,跳转至步骤S203进行硬件定时器比较值的确定并调用硬件抽象层提供的接口(设置比较中断发生时刻)来设置硬件定时器比较值。
S2025:保持当前硬件定时器比较值。
若定时事件的插入位置不是事件链表所有节点的第一个,则先前已设置相对该定时事件更需要先处理的定时事件的硬件定时器比较值,可保持当前硬件定时器比较值,以正确对排在第一位的定时事件进行处理。
可选的,在定时事件的插入位置不是事件链表所有节点的第一个时,可跳转至步骤S204,等待硬件定时器比较中断的触发以处理事件链表中的第一个定时事件。
可以理解的是,定时事件节点的实际处理时刻是硬件定时器的计数值为单位,而不再是以Tick为单位,由此可以提高定时事件的定时精度。例如,当前系统时刻为2.3ms(在以Tick为单位记录系统时间的系统中记录的Tick为2,误差为1Tick,而在以硬件定时器计数值记录系统时间的系统中记录的硬件定时器计数值就是2.3ms*设定频率,其误差为硬件定时器计数周期)。
假设此时需要定时10ms后来处理一个定时事件,在Tick系统中则会在绝对时刻值为12ms(此时系统时间记录的Tick为12)时来处理定时事件,此时就提前了0.3ms处理定时事件。而本实施例则会在硬件定时器的硬件定时器计数值为(2.3ms+10ms)*硬件定时器设定频率时,发生比较中断来处理定时事件,此时处理定时事件的误差最多提前1个硬件定时器计数周期。此时定时、记时与Tick脱离,与硬件定时器计数频率相关联,提高了系统定时和系统时间的精度,此精度与硬件定时器的计数频率相关。
S203:基于需要处理的定时事件的实际处理时刻,设置硬件定时器比较值。
本实施例中设置硬件定时器比较值具体包括步骤S2031-S2034:
S2031:根据硬件定时器的设定频率与硬件定时器计数值确定当前系统时刻。
具体的,将硬件定时器计数值与设定频率的商作为当前系统时刻。
S2032:判断当前系统时刻是否小于所述定时事件需要处理的实际处理时刻。若是,跳转至步骤S2033,否则跳转至步骤S2034。
具体的,获取当前系统时刻,并判断当前系统时刻是否小于新增的定时事件的实际处理时刻,若当前系统时刻小于实际处理时刻,则跳转至步骤S2033,否则,跳转至步骤S2034。
S2033:根据所述实际处理时刻设置硬件定时器比较值,并确定开始对硬件定时器比较中断的检测。
具体的,在当前系统时刻小于新增的定时事件的实际处理时刻时,根据实际处理时刻在硬件抽象层的硬件定时器中设置硬件定时器比较值,并对硬件定时器比较中断的检测进行使能,以开始对硬件定时器比较中断的检测。在比较终端的检测使能后,硬件抽象层将对硬件定时器计数值与硬件定时器比较值进行比较,并在硬件定时器计数值大于等于硬件定时器比较值时触发硬件定时器比较中断。
S2034:触发硬件定时器比较中断以处理所述定时事件。
具体的,在当前系统时刻大于等于新增的定时事件的实际处理时刻时,此时当前系统时刻已经超过定时事件对应的实际处理时刻,需要立即触发一次中断来处理该定时事件,并调用回调函数以处理该定时事件。
S204:响应于硬件定时器计数值达到硬件定时器比较值,触发硬件定时器比较中断以对所述定时事件进行处理。
图5为本申请实施例提供的一种响应比较中断对定时事件进行处理的流程图,如图5所示,本实施例触发硬件定时器比较中断以对所述定时事件进行处理具体包括步骤S2041-S2048:
S2041:响应于硬件定时器计数值达到硬件定时器比较值,判断事件链表是否存在定时事件。若存在,则跳转至步骤S2042,否则跳转至步骤S2046。
具体的,在硬件抽象层中硬件定时器的硬件定时器计数值大于等于设置的硬件定时器比较值时,硬件抽象层触发硬件定时器比较中断事件并向系统定时器层发送中断请求,以通知系统定时器层调用回调函数处理定时事件。系统定时器层在接收到中断请求后,判断事件链表中是否存在定时事件,若存在,则跳转至步骤S2042,否则跳转至步骤S2046。
S2042:取出事件链表中的第一个定时事件。
具体的,若事件链表存在定时事件,则取出事件链表中的第一个定时事件,并跳转至步骤S2043。
S2043:判断当前系统时刻是否达到所述定时事件的实际处理时刻。
具体的,获取当前系统时刻,并判断当前系统时刻是否大于等于取出的第一个定时事件的实际处理时刻,若是,则跳转至步骤S2044,否则跳转至步骤S2046。
S2044:将所述定时事件从事件链表中删除并调用定时事件的回调函数以处理定时事件。
具体的,若当前系统时刻达到所述定时事件的实际处理时刻,则将该定时事件从事件链表中删除,并调用定时事件的回调函数以处理定时事件。
在本实施例中,定时事件的删除只需要将所要删除的定时事件从事件链表中删除即可。定时事件的删除分为定时事件还未处理时调用删除定时事件接口和定时事件已经处理后再调用删除定时事件接口两种情况。在此两种情况下都存在需要访问到系统定时事件链表的情况,定时事件的删除需要进入临界区,以保证系统定时事件链表不被破坏。
S2045:根据回调函数的返回值确定是否需要进行任务切换。
具体的,在调用回调函数处理定时事件后,根据回调函数的返回值确定是否需要进行任务切换,若不需要进行任务切换,则直接返回至步骤S2041。
若需要进行任务切换,则记录callback_ret变量为需要进行任务切换,系统定时器层可根据callback_ret变量判断是否需要进行任务切换。
进一步的,在根据回调函数的返回值确定是否需要进行任务切换后,重新判断事件链表是否存在定时事件,跳转到步骤S2041,再次循环从事件链表中取出第一个节点得定时事件并判断是否需要处理此节点,循环判断的原因是因为会存在多个定时事件节点的计数值相同或相近的情况,在一次处理中需要处理多个定时事件节点。
其中任务也称作一个线程,每个任务被赐予一定的优先级,有它自己的一套CPU寄存器和自己的栈空间。
S2046:根据回调函数的返回值进行任务切换。
若事件链表不存在定时事件或当前系统时刻未达到所述定时事件的实际处理时刻,则根据回调函数的返回值进行任务切换。
具体的,在据callback_ret变量指示需要进行任务切换时,找出最高优先级任务(本实施例提供的实时操作系统以优先级进行调度,如果最高优先级任务存在同优先级的任务时则在相同优先级的任务之间以时间片轮流运行,其中时间片指操作系统分配给任务执行的时间)。
在找出最高优先级任务后或不需要进行任务切换时,判断最高优先任务是否存在同优先级的任务,如果存在则设置需要进行同优先级任务轮转的任务切换需求,在完成需要进行同优先级任务轮转的设置后或不存在同优先级的任务时,跳转至步骤S2047。
可以理解的是,在本实施例中已无Tick概念,并不会在每次Tick中断到来时再判断是否切换任务。为了需要实现同优先级任务轮转的功能,通过设置一个定时事件节点来完成切换任务功能,将此定时节点的定时值设置为任务轮转的时间片,同时将定时事件节点的回调函数设置为需要进行任务切换。将定时节点增加到系统事件链表中,当处理此定时事件后便会进行任务切换,来达到相同优先级任务间以时间片轮转的功能。
S2047:判断事件链表是否存在定时事件。
具体的,判断事件链表是否存在定时事件,若存在,则跳转至步骤S2048,否则结束本次定时事件处理流程,等待下一次硬件定时器比较中断的触发。
S2048:根据事件链表中第一个定时事件的实际处理时刻确定下一个硬件定时器比较值,并根据任务切换需求进行任务切换。
若事件链表存在定时事件,则根据事件链表中第一个定时事件的实际处理时刻,根据该实际处理时刻确定下一个硬件定时器比较值(硬件定时器比较值的确定与设置可参考步骤S203),并根据,根据任务切换需求判断是否需要进行任务切换,并响应于需要进行任务切换的任务切换需求执行切换任务。
S205:设置下一个定时事件的比较中断。
在完成定时事件的处理后,需要对事件链表中的下一个定时事件的比较中断进行设置,具体的,对下一个定时事件的比较中断的设置包括步骤S2051-S2053:
S2051:判断是否需要设置下一个定时事件的比较中断。
具体的,判断事件链表中是否还存在定时事件,若存在定时事件则跳转至步骤S2052,若不存在定时事件,则跳转至步骤S2053。
S2052:根据下一个定时事件的实际处理时刻设置发生下一次硬件定时器比较中断的硬件定时器比较值。
若事件链表中还存在定时事件,则获取时间列表中第一个定时事件的定时时间,并根据当前系统时刻与定时时间确定下一次硬件定时器比较中断的硬件定时器比较值,通知硬件抽象层根据该硬件定时器比较值配置硬件定时器,并返回步骤S203判断硬件定时器计数值是否达到硬件定时器比较值。
S2053:停止对硬件定时器比较中断的检测。
若事件链表中不存在定时事件,则对硬件定时器比较中断的检测进行失能,以停止对硬件定时器比较中断的检测,并返回步骤S203等待新定时事件的增加以对硬件定时器比较中断的检测进行使能。
上述,通过根据从当前系统时刻经过定时时间确定需要处理定时事件的实际处理时刻,以确定时事件的实际处理时刻的硬件定时器比较值,并在硬件定时器计数值到达硬件定时器比较值时,触发硬件定时器比较中断,以调用函数处理定时事件,不再周期产生中断,而是随着需要处理定时事件的时刻点来产生中断,节省系统功耗,保证任务执行的连续性。使用硬件定时器来完成Tick系统中对定时事件以及系统时间记录的处理,并且在记录系统时间值时不会停止硬件定时器,有效减小系统时间记录的累积误差,并有效进行同优先级的任务轮转,并且在记录系统时间值时不会停止硬件定时器,时钟精度与硬件定时器的计数频率相关,有效提高系统的时间精度以及中断响应速度。
图6给出了本申请实施例提供的一种实时操作系统的定时处理装置的结构示意图。参考图6,该实时操作系统的定时处理装置包括时刻确定模块61、中断设置模块62以及中断响应模块63。
其中,时刻确定模块61,用于根据定时事件的定时时间和当前系统时刻,确定需要处理定时事件的实际处理时刻;中断设置模块62,用于基于需要处理的定时事件的实际处理时刻,设置硬件定时器比较值,所述硬件定时器计数值由硬件定时器以设定频率进行计算得到;中断响应模块63,用于响应于硬件定时器计数值达到硬件定时器比较值,触发硬件定时器比较中断以对所述定时事件进行处理。
上述,通过根据从当前系统时刻经过定时时间确定需要处理定时事件的实际处理时刻,以确定时事件的实际处理时刻的硬件定时器比较值,并在硬件定时器计数值到达硬件定时器比较值时,触发硬件定时器比较中断,以调用函数处理定时事件,不再周期产生中断,而是随着需要处理定时事件的时刻点来产生中断,节省系统功耗,保证任务执行的连续性。
在一个可能的实施例中,所述时刻确定模块61具体用于:
获取当前系统时刻,将定时事件需要处理的定时时间与所述当前系统时刻相加,得到所述定时事件需要处理的实际处理时刻;
按照实际处理时刻的先后顺序,将所述定时事件插入到事件链表中。
在一个可能的实施例中,所述时刻确定模块61在基于需要处理的定时事件的实际处理时刻,设置硬件定时器比较值之后,还包括:
判断添加的定时事件是否位于所述事件链表中所有定时事件的第一位;
若是,则更新硬件定时器比较值;
否则,保持当前硬件定时器比较值。
在一个可能的实施例中,所述中断设置模块62具体用于:
根据硬件定时器的设定频率与硬件定时器计数值确定当前系统时刻;
判断当前系统时刻是否小于所述定时事件需要处理的实际处理时刻;
若是,则根据所述实际处理时刻设置硬件定时器比较值,并确定开始对硬件定时器比较中断的检测;
否则,触发硬件定时器比较中断以处理所述定时事件。
在一个可能的实施例中,所述装置还包括中断更新模块,用于在中断响应模块63响应于硬件定时器计数值达到硬件定时器比较值,触发硬件定时器比较中断以对所述定时事件进行处理之后:
判断是否需要设置下一个定时事件的比较中断;
若是,则根据下一个定时事件的实际处理时刻设置发生下一次硬件定时器比较中断的硬件定时器比较值;
否则,确定停止对硬件定时器比较中断的检测。
在一个可能的实施例中,所述中断响应模块63具体用于:
响应于硬件定时器计数值达到硬件定时器比较值,判断事件链表是否存在定时事件;
若事件链表存在定时事件,则取出事件链表中的第一个定时事件,并判断当前系统时刻是否达到所述定时事件的实际处理时刻;
若当前系统时刻达到所述定时事件的实际处理时刻,则将所述定时事件从事件链表中删除并调用定时事件的回调函数以处理定时事件。
在一个可能的实施例中,所述中断响应模块63还用于:
根据回调函数的返回值确定是否需要进行任务切换,并重新判断事件链表是否存在定时事件;
若事件链表不存在定时事件或当前系统时刻未达到所述定时事件的实际处理时刻,则根据回调函数的返回值进行任务切换,并判断事件链表是否存在定时事件;
若事件链表存在定时事件,则根据事件链表中第一个定时事件的实际处理时刻确定下一个硬件定时器比较值,并根据任务切换需求进行任务切换。
在一个可能的实施例中,所述装置还包括时间获取模块,用于在时刻确定模块61根据定时事件的定时时间和当前系统时刻,确定需要处理定时事件的实际处理时刻之前:
根据硬件定时器连续两次的硬件定时器计数值确定硬件定时器是否发生溢出,以更新硬件定时器的溢出累计值;
根据硬件定时器的溢出累计值与最新一次硬件定时器计数值确定当前系统时刻。
本申请实施例还提供了一种计算机设备,该计算机设备可集成本申请实施例提供的实时操作系统的定时处理装置。图7是本申请实施例提供的一种计算机设备的结构示意图。参考图7,该计算机设备包括:输入装置73、输出装置74、存储器72以及一个或多个处理器71;所述存储器72,用于存储一个或多个程序;当所述一个或多个程序被所述一个或多个处理器71执行,使得所述一个或多个处理器71实现如上述实施例提供的实时操作系统的定时处理方法。其中输入装置73、输出装置74、存储器72和处理器71可以通过总线或者其他方式连接,图7中以通过总线连接为例。
存储器72作为一种计算设备可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本申请任意实施例所述的实时操作系统的定时处理方法对应的程序指令/模块(例如,实时操作系统的定时处理装置中的时刻确定模块61、中断设置模块62以及中断响应模块63)。存储器72可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据设备的使用所创建的数据等。此外,存储器72可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器72可进一步包括相对于处理器71远程设置的存储器,这些远程存储器可以通过网络连接至设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置73可用于接收输入的数字或字符信息,以及产生与设备的用户设置以及功能控制有关的键信号输入。输出装置74可包括显示屏等显示设备。
处理器71通过运行存储在存储器72中的软件程序、指令以及模块,从而执行设备的各种功能应用以及数据处理,即实现上述的实时操作系统的定时处理方法。
上述提供的实时操作系统的定时处理装置、设备和计算机可用于执行上述任意实施例提供的实时操作系统的定时处理方法,具备相应的功能和有益效果。
本申请实施例还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行如上述实施例提供的实时操作系统的定时处理方法,该实时操作系统的定时处理方法包括:根据定时事件的定时时间和当前系统时刻,确定需要处理定时事件的实际处理时刻;基于需要处理的定时事件的实际处理时刻,设置硬件定时器比较值,所述硬件定时器计数值由硬件定时器以设定频率进行计算得到;响应于硬件定时器计数值达到硬件定时器比较值,触发硬件定时器比较中断以对所述定时事件进行处理。
存储介质——任何的各种类型的存储器设备或存储设备。术语“存储介质”旨在包括:安装介质,例如CD-ROM、软盘或磁带装置;计算机系统存储器或随机存取存储器,诸如DRAM、DDR RAM、SRAM、EDO RAM,兰巴斯(Rambus)RAM等;非易失性存储器,诸如闪存、磁介质(例如硬盘或光存储);寄存器或其它相似类型的存储器元件等。存储介质可以还包括其它类型的存储器或其组合。另外,存储介质可以位于程序在其中被执行的第一计算机系统中,或者可以位于不同的第二计算机系统中,第二计算机系统通过网络(诸如因特网)连接到第一计算机系统。第二计算机系统可以提供程序指令给第一计算机用于执行。术语“存储介质”可以包括可以驻留在不同位置中(例如在通过网络连接的不同计算机系统中)的两个或更多存储介质。存储介质可以存储可由一个或多个处理器执行的程序指令(例如具体实现为计算机程序)。
当然,本申请实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的实时操作系统的定时处理方法,还可以执行本申请任意实施例所提供的实时操作系统的定时处理方法中的相关操作。
上述实施例中提供的实时操作系统的定时处理装置、设备及存储介质可执行本申请任意实施例所提供的实时操作系统的定时处理方法,未在上述实施例中详尽描述的技术细节,可参见本申请任意实施例所提供的实时操作系统的定时处理方法。
上述仅为本申请的较佳实施例及所运用的技术原理。本申请不限于这里所述的特定实施例,对本领域技术人员来说能够进行的各种明显变化、重新调整及替代均不会脱离本申请的保护范围。因此,虽然通过以上实施例对本申请进行了较为详细的说明,但是本申请不仅仅限于以上实施例,在不脱离本申请构思的情况下,还可以包括更多其他等效实施例,而本申请的范围由权利要求的范围决定。
Claims (11)
1.一种实时操作系统的定时处理方法,其特征在于,包括:
根据定时事件的定时时间和当前系统时刻,确定需要处理定时事件的实际处理时刻;
基于需要处理的定时事件的实际处理时刻,设置硬件定时器比较值,所述硬件定时器计数值由硬件定时器以设定频率进行计算得到;
响应于硬件定时器计数值达到硬件定时器比较值,触发硬件定时器比较中断以对所述定时事件进行处理。
2.根据权利要求1所述的实时操作系统的定时处理方法,其特征在于,所述根据定时事件的定时时间和当前系统时刻,确定需要处理定时事件的实际处理时刻,包括:
获取当前系统时刻,将定时事件需要处理的定时时间与所述当前系统时刻相加,得到所述定时事件需要处理的实际处理时刻;
按照实际处理时刻的先后顺序,将所述定时事件插入到事件链表中。
3.根据权利要求2所述的实时操作系统的定时处理方法,其特征在于,所述基于需要处理的定时事件的实际处理时刻,设置硬件定时器比较值之后,还包括:
判断添加的定时事件是否位于所述事件链表中所有定时事件的第一位;
若是,则更新硬件定时器比较值;
否则,保持当前硬件定时器比较值。
4.根据权利要求1所述的实时操作系统的定时处理方法,其特征在于,所述基于需要处理的定时事件的实际处理时刻,设置硬件定时器比较值,包括:
根据硬件定时器的设定频率与硬件定时器计数值确定当前系统时刻;
判断当前系统时刻是否小于所述定时事件需要处理的实际处理时刻;
若是,则根据所述实际处理时刻设置硬件定时器比较值,并确定开始对硬件定时器比较中断的检测;
否则,触发硬件定时器比较中断以处理所述定时事件。
5.根据权利要求1所述的实时操作系统的定时处理方法,其特征在于,所述响应于硬件定时器计数值达到硬件定时器比较值,触发硬件定时器比较中断以对所述定时事件进行处理之后,还包括:
判断是否需要设置下一个定时事件的比较中断;
若是,则根据下一个定时事件的实际处理时刻设置发生下一次硬件定时器比较中断的硬件定时器比较值;
否则,确定停止对硬件定时器比较中断的检测。
6.根据权利要求1所述的实时操作系统的定时处理方法,其特征在于,所述响应于硬件定时器计数值达到硬件定时器比较值,触发硬件定时器比较中断以对所述定时事件进行处理,包括:
响应于硬件定时器计数值达到硬件定时器比较值,判断事件链表是否存在定时事件;
若事件链表存在定时事件,则取出事件链表中的第一个定时事件,并判断当前系统时刻是否达到所述定时事件的实际处理时刻;
若当前系统时刻达到所述定时事件的实际处理时刻,则将所述定时事件从事件链表中删除并调用定时事件的回调函数以处理定时事件。
7.根据权利要求6所述的实时操作系统的定时处理方法,其特征在于,所述若当前系统时刻达到所述定时事件的实际处理时刻,则将所述定时事件从事件链表中删除并调用定时事件的回调函数以处理定时事件之后,还包括:
根据回调函数的返回值确定是否需要进行任务切换,并重新判断事件链表是否存在定时事件;
若事件链表不存在定时事件或当前系统时刻未达到所述定时事件的实际处理时刻,则根据回调函数的返回值进行任务切换,并判断事件链表是否存在定时事件;
若事件链表存在定时事件,则根据事件链表中第一个定时事件的实际处理时刻确定下一个硬件定时器比较值,并根据任务切换需求进行任务切换。
8.根据权利要求1-7任一项所述的实时操作系统的定时处理方法,其特征在于,所述根据定时事件的定时时间和当前系统时刻,确定需要处理定时事件的实际处理时刻之前,还包括:
根据硬件定时器连续两次的硬件定时器计数值确定硬件定时器是否发生溢出,以更新硬件定时器的溢出累计值;
根据硬件定时器的溢出累计值与最新一次硬件定时器计数值确定当前系统时刻。
9.一种实时操作系统的定时处理装置,其特征在于,包括时刻确定模块、中断设置模块以及中断响应模块,其中:
时刻确定模块,用于根据定时事件的定时时间和当前系统时刻,确定需要处理定时事件的实际处理时刻;
中断设置模块,用于基于需要处理的定时事件的实际处理时刻,设置硬件定时器比较值,所述硬件定时器计数值由硬件定时器以设定频率进行计算得到;
中断响应模块,用于响应于硬件定时器计数值达到硬件定时器比较值,触发硬件定时器比较中断以对所述定时事件进行处理。
10.一种计算机设备,其特征在于,包括:存储器以及一个或多个处理器;
所述存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-8任一所述的实时操作系统的定时处理方法。
11.一种包含计算机可执行指令的存储介质,其特征在于,所述计算机可执行指令在由计算机处理器执行时用于执行如权利要求1-8任一所述的实时操作系统的定时处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010930325.5A CN112199170B (zh) | 2020-09-07 | 2020-09-07 | 实时操作系统的定时处理方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010930325.5A CN112199170B (zh) | 2020-09-07 | 2020-09-07 | 实时操作系统的定时处理方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112199170A true CN112199170A (zh) | 2021-01-08 |
CN112199170B CN112199170B (zh) | 2024-08-30 |
Family
ID=74005369
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010930325.5A Active CN112199170B (zh) | 2020-09-07 | 2020-09-07 | 实时操作系统的定时处理方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112199170B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113467921A (zh) * | 2021-07-23 | 2021-10-01 | 中国工商银行股份有限公司 | 一种任务管理方法、装置及电子设备 |
CN113504979A (zh) * | 2021-07-16 | 2021-10-15 | 珠海格力电器股份有限公司 | 定时器实现方法、装置、实时操作系统及存储介质 |
CN113806040A (zh) * | 2021-08-12 | 2021-12-17 | 苏州坤厚自动化科技有限公司 | 一种基于agv精确控制的中断处理方法 |
CN114860418A (zh) * | 2022-06-30 | 2022-08-05 | 芯翼信息科技(南京)有限公司 | 操作系统时钟源的使用方法、装置、电子设备及存储介质 |
CN116722962A (zh) * | 2022-09-05 | 2023-09-08 | 荣耀终端有限公司 | 中断处理方法、通信装置、通信设备及芯片系统 |
CN118034955A (zh) * | 2024-02-07 | 2024-05-14 | 广东明能科技有限公司 | 变流器的事件管理方法、装置、计算机设备和存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1952899A (zh) * | 2006-11-22 | 2007-04-25 | 北京中星微电子有限公司 | 一种消息及时处理方法和嵌入式多任务操作系统 |
CN102103520A (zh) * | 2010-12-14 | 2011-06-22 | 深圳市金宏威实业发展有限公司 | 一种定时器的实现方法和装置 |
CN102135906A (zh) * | 2011-03-18 | 2011-07-27 | 深圳市民德电子科技有限公司 | 面向嵌入式实时操作系统的功耗控制方法及系统 |
CN104268020A (zh) * | 2014-09-28 | 2015-01-07 | 天津凯发电气股份有限公司 | 基于嵌入式操作系统的通用定时器及其工作方法 |
US20150205737A1 (en) * | 2012-07-09 | 2015-07-23 | Commissariat A L*Energie Atomique Et Aux Energies Alternatives | Method for executing, within a multitasking onboard system, an application timed according to a plurality of different time domains including interruption management |
CN104834347A (zh) * | 2015-04-29 | 2015-08-12 | 杭州东信捷峻科技有限公司 | 有利于低功耗的无累计误差的动态时长定时器实现方法 |
CN106293919A (zh) * | 2016-08-12 | 2017-01-04 | 中国航空工业集团公司西安飞行自动控制研究所 | 一种时间触发的嵌入式任务调度装置与方法 |
CN110297700A (zh) * | 2018-12-28 | 2019-10-01 | 浙江利尔达物联网技术有限公司 | 一种多事件低功耗调度方法 |
-
2020
- 2020-09-07 CN CN202010930325.5A patent/CN112199170B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1952899A (zh) * | 2006-11-22 | 2007-04-25 | 北京中星微电子有限公司 | 一种消息及时处理方法和嵌入式多任务操作系统 |
CN102103520A (zh) * | 2010-12-14 | 2011-06-22 | 深圳市金宏威实业发展有限公司 | 一种定时器的实现方法和装置 |
CN102135906A (zh) * | 2011-03-18 | 2011-07-27 | 深圳市民德电子科技有限公司 | 面向嵌入式实时操作系统的功耗控制方法及系统 |
US20150205737A1 (en) * | 2012-07-09 | 2015-07-23 | Commissariat A L*Energie Atomique Et Aux Energies Alternatives | Method for executing, within a multitasking onboard system, an application timed according to a plurality of different time domains including interruption management |
CN104268020A (zh) * | 2014-09-28 | 2015-01-07 | 天津凯发电气股份有限公司 | 基于嵌入式操作系统的通用定时器及其工作方法 |
CN104834347A (zh) * | 2015-04-29 | 2015-08-12 | 杭州东信捷峻科技有限公司 | 有利于低功耗的无累计误差的动态时长定时器实现方法 |
CN106293919A (zh) * | 2016-08-12 | 2017-01-04 | 中国航空工业集团公司西安飞行自动控制研究所 | 一种时间触发的嵌入式任务调度装置与方法 |
CN110297700A (zh) * | 2018-12-28 | 2019-10-01 | 浙江利尔达物联网技术有限公司 | 一种多事件低功耗调度方法 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113504979A (zh) * | 2021-07-16 | 2021-10-15 | 珠海格力电器股份有限公司 | 定时器实现方法、装置、实时操作系统及存储介质 |
CN113504979B (zh) * | 2021-07-16 | 2024-04-16 | 珠海格力电器股份有限公司 | 定时器实现方法、装置、实时操作系统及存储介质 |
CN113467921A (zh) * | 2021-07-23 | 2021-10-01 | 中国工商银行股份有限公司 | 一种任务管理方法、装置及电子设备 |
CN113467921B (zh) * | 2021-07-23 | 2024-02-09 | 中国工商银行股份有限公司 | 一种任务管理方法、装置及电子设备 |
CN113806040A (zh) * | 2021-08-12 | 2021-12-17 | 苏州坤厚自动化科技有限公司 | 一种基于agv精确控制的中断处理方法 |
CN114860418A (zh) * | 2022-06-30 | 2022-08-05 | 芯翼信息科技(南京)有限公司 | 操作系统时钟源的使用方法、装置、电子设备及存储介质 |
CN116722962A (zh) * | 2022-09-05 | 2023-09-08 | 荣耀终端有限公司 | 中断处理方法、通信装置、通信设备及芯片系统 |
CN118034955A (zh) * | 2024-02-07 | 2024-05-14 | 广东明能科技有限公司 | 变流器的事件管理方法、装置、计算机设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112199170B (zh) | 2024-08-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112199170A (zh) | 实时操作系统的定时处理方法、装置、设备及存储介质 | |
JP3987384B2 (ja) | 実行キュー管理 | |
JP4205369B2 (ja) | スリープキュー管理 | |
WO2019072200A1 (zh) | 资源管理的方法及终端设备 | |
TWI512619B (zh) | 用於執行緒排程的方法以及系統 | |
JP5423635B2 (ja) | スケジューリング方法,スケジューリングプログラム,スケジューリング装置 | |
US7360216B2 (en) | Method and system for real-time multitasking | |
CN112131005B (zh) | 一种资源调整策略确定方法和装置 | |
KR20140066914A (ko) | 퍼포먼스 측정 유닛, 이를 포함하는 프로세서 코어 및 프로세스 프로파일링 방법 | |
WO2012113232A1 (zh) | 调整时钟中断周期的方法和装置 | |
CN111897637A (zh) | 作业调度方法、装置、主机及存储介质 | |
CN111552614A (zh) | 一种cpu使用率的统计方法及装置 | |
CN111736975A (zh) | 请求控制方法、装置、计算机设备及计算机可读存储介质 | |
US20180107600A1 (en) | Response times in asynchronous i/o-based software using thread pairing and co-execution | |
JP4675891B2 (ja) | タスクスケジューリング装置、タスクスケジューリング方法、タスクスケジューリングプログラム、記録媒体、及び伝送媒体 | |
US20040045003A1 (en) | Stack usage in computer-related operating systems | |
US10061676B2 (en) | Remotely located timing method and device for a processing unit in an information processing system | |
CN113157426A (zh) | 一种任务调度方法、系统、设备及存储介质 | |
CN109426563B (zh) | 一种进程管理方法及装置 | |
CN109426562B (zh) | 优先级加权轮转调度器 | |
Quinton et al. | Formal analysis of sporadic bursts in real-time systems | |
US7603673B2 (en) | Method and system for reducing context switch times | |
Zuberi et al. | EMERALDS: A small-memory real-time microkernel | |
Liu et al. | RTeX: an Efficient and Timing-Predictable Multi-threaded Executor for ROS 2 | |
JP2018536945A (ja) | タスクをタイムベーススケジューリングする方法及び装置 |
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 | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Country or region after: China Address after: 510000 room 306, 3rd floor, 43 Sicheng Road, software park, Tianhe District, Guangzhou City, Guangdong Province Applicant after: GUANGZHOU ZHIYUAN ELECTRONICS Co.,Ltd. Address before: 510000 room 517, 1023 Gaopu Road, Tianhe Software Park, Tianhe District, Guangzhou City, Guangdong Province Applicant before: GUANGZHOU ZHIYUAN ELECTRONICS Co.,Ltd. Country or region before: China |
|
GR01 | Patent grant | ||
GR01 | Patent grant |