CN110489089B - 基于中断管理框架的嵌入式***低功耗控制方法及*** - Google Patents
基于中断管理框架的嵌入式***低功耗控制方法及*** Download PDFInfo
- Publication number
- CN110489089B CN110489089B CN201910754454.0A CN201910754454A CN110489089B CN 110489089 B CN110489089 B CN 110489089B CN 201910754454 A CN201910754454 A CN 201910754454A CN 110489089 B CN110489089 B CN 110489089B
- Authority
- CN
- China
- Prior art keywords
- interrupt
- low
- scheduling
- processing program
- low power
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
- G06F8/22—Procedural
-
- 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
-
- 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)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Power Sources (AREA)
Abstract
本发明提供一种基于中断管理框架的嵌入式***低功耗控制方法及***。该方法包括:在***初始化时,微处理器调用执行回调函数,生成一个全局结构体数组,包括中断序列号和权限标识,权限标识用于指示在低功耗模式下中断处理程序是否进入调度内核或***软件;在低功耗模式下,当新的中断处理程序产生时,微处理器在执行完当前中断处理程序后,遍历全局结构体数组,根据权限标识判断退出当前中断处理程序时,是否需要进入调度内核或***软件,若不需要,则直接回退到断点,继续执行低功耗模式下的后台逻辑;当***退出低功耗模式时,微处理器则基于调度内核或***软件的调度机制执行整个软件。通过上述中断过滤,能够达到可定义***低功耗的目的。
Description
技术领域
本发明涉及嵌入式***技术领域,尤其涉及基于中断管理框架的嵌入式***低功耗控制方法及***。
背景技术
随着物联网、无人***的大规模推广,人们对嵌入式***低功耗性能的要求越来越高,尤其是对电池供电的设备。因为低功耗意味着设备更长的生命周期,更少的维护(例如更换电池)次数,对于海量部署的嵌入式设备(例如物联网终端)来说,减少维护次数就能大幅度减少运营成本。
嵌入式***的低功耗设计是综合性问题,要打“组合拳”,不能有“短板”,不能只依赖于硬件(例如微处理器)的低功耗设计;软件,尤其是***软件,以及***软件与应用层软件的配合等方面的低功耗设计都非常重要。王奇等人(王奇, 徐文韧, 唐克. 嵌入式***的软件低功耗技术实现策略[J]. 舰船电子工程, 2013(3):74-76.)根据嵌入式***的软件组成结构,将软件低功耗技术划分为三个层次进行分类描述,阐明了各层次上低功耗技术面临的问题、主要解决方法及应用情况。但在该论文中仅简单提及到应将循环/中断风格转换为调用返回风格,其实并未涉及到如何解决因中断而引起的功耗问题。
当嵌入式***进入低功耗模式后,根据预先设计的工作模型,只需响应各种中断即可,大部分***软件或者应用软件是可以不工作的,从而达到在保证***功能设计需求的前提下,尽可能减少逻辑代码的运行,从而达到降低功耗的目的。
因此,对于使用嵌入式实时操作***(Real Time Operating System,RTOS)或者未使用嵌入式实时操作***的嵌入式***来说,应该尽可能的减少因为中断而触发***软件或者应用层软件的运行,使这些上层软件尽可能多的处于“睡眠”状态。
发明内容
为尽可能的减少因为中断而触发***软件或者应用层软件的运行,使这些上层软件尽可能多的处于“睡眠”状态,本发明提供一种基于中断管理框架实现的嵌入式***低功耗控制方法及嵌入式实时操作***。
一方面,本发明提供的基于中断管理框架的嵌入式***低功耗控制方法,包括以下步骤:
在***初始化时,微处理器调用执行回调函数,生成一个全局结构体数组,所述全局结构体数组包括中断序列号和权限标识,所述权限标识用于指示在低功耗模式下中断处理程序是否进入调度内核或***软件;
在低功耗模式下,当新的中断处理程序产生时,微处理器在执行完当前中断处理程序后,遍历所述全局结构体数组,根据所述权限标识判断退出当前中断处理程序时,是否需要进入调度内核或***软件,若不需要,则直接回退到被中断的点,继续执行低功耗模式下的后台逻辑;
当***退出低功耗模式时,微处理器则基于调度内核或***软件的原有调度方式继续执行整个软件。
进一步地,在微处理器调用执行回调函数之前,还包括:通过配置接口接收并存储用户编写的回调函数,所述回调函数中设置有***在低功耗模式下无需进入调度内核或***软件的中断类型。
另一方面,本发明提供的一种嵌入式实时操作***,包括:中断管理模块;
所述中断管理模块,用于基于上述的嵌入式***低功耗控制方法执行中断处理程序。
进一步地,所述嵌入式实时操作***还包括:任务管理模块、消息传递模块、事件模块、资源模块和时间模块;
所述任务管理模块、消息传递模块和事件模块中均配置有用于在中断处理程序中调用的第一API,以及在任务中被调用的与所述第一API相对应的第二API;
所述时间模块配置有用于被应用层调用以按需获取未进入调度内核的相关信息的第三API。
进一步地,所述嵌入式实时操作***还配置有用于进入低功耗模式的第四API,以及用于退出低功耗模式的第五API。
本发明的有益效果:
本发明提供的一种基于中断管理框架的嵌入式***低功耗控制方法,首先,基于设计并实现的一个中断管理框架,为编程人员提供配置接口,本方法为根据编程人员编写的回调逻辑,对中断过滤,需要时进入调度内核(使用RTOS时)或者***软件(未使用RTOS时),否则不进入,从而达到可定义(可配置)低功耗的目的。本发明提供的嵌入式实时操作***,是混合抢占式实时操作***,能在抢占式调度与非抢占式调度之间取得合理折中,通过减少不必要的任务切换而提高任务集合可调度性;同时减少内存消耗,可在内存资源有限、成本压力大的深嵌入环境中广泛应用,例如:物联网、智能硬件、无人***等。
附图说明
图1为本发明实施例提供的支持低功耗机制的中断管理框架的示意图;
图2为本发明实施例提供的嵌入式实时操作***的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例提供的支持低功耗机制的中断管理框架的示意图。结合图1,本发明实施例提供的中断处理程序控制方法包括以下步骤:
S101、在***初始化时,微处理器调用执行回调函数,生成一个全局结构体数组,所述全局结构体数组包括中断序列号和权限标识,所述权限标识用于指示在低功耗模式下中断处理程序是否进入调度内核或***软件;
S102、在低功耗模式下,当新的中断处理程序产生时,微处理器在执行完当前中断处理程序后,遍历所述全局结构体数组,根据所述权限标识判断退出当前中断处理程序时,是否需要进入调度内核或***软件,若不需要,则直接回退到断点,继续执行低功耗模式下的后台逻辑;
S103、当***退出低功耗模式时,微处理器则基于调度内核或***软件的原有调度机制继续执行整个软件。
例如,若调度内核或***软件的原有调度机制为:基于优先级的抢占式调度机制,当***退出低功耗模式时,则执行最高优先级的就绪任务。
在上述实施例的基础上,在微处理器调用执行回调函数之前,该方法还包括:S100、通过配置接口接收并存储用户编写的回调函数,所述回调函数中设置有***在低功耗模式下无需进入调度内核或***软件的中断类型。
具体地,在使用RTOS的嵌入式***中,上述中断管理框架的工作过程如下,但不限于这种工作方式:
(1)编程人员编写的回调函数中配置了在低功耗模式下可以不进入调度内核的中断的类型,该回调函数会在***初始化时被调用执行,生成一个全局的结构体数组,结构体中包含中断序列号,以及是否在低功耗模式下进入调度内核的标识。该结构体数组会被中断管理框架的逻辑代码所使用。
(2)在低功耗模式下,当中断产生后,微处理器会执行已经事先注册的中断处理程序,在该程序的最后将调用***代码,会进入中断管理框架的逻辑,通过遍历上述结构体数组来判断退出中断处理程序时,是否需要进入调度内核,若不需要,则直接回退到被中断的点,继续执行低功耗模式下的后台逻辑。即,不会进入RTOS的调度内核,即使这些中断处理程序已经使得若干任务就绪,按照调度内核的原有调度机制应该从这些若干任务中选择执行合适的任务,微处理器也不会执行现场切换而去执行某一任务。
(3)当***退出低功耗模式时,调度内核或***软件的原有调度机制才开始发挥作用。(例如,若为基于优先级的抢占式调度,则执行最高优先级的就绪任务)。
因为在低功耗模式下,只需接收、存储外部的数据即可,这些逻辑可以在中断处理程序中完成,无需再执行处理这些数据的***级或者应用层逻辑。因此,所述中断管理框架是合理、高效的。
本发明实施例提供的基于中断管理框架的嵌入式***低功耗控制方法,通过设计并实现了一个中断管理框架,为编程人员提供配置接口,可根据编程人员编写的回调逻辑,对中断过滤,需要时进入调度内核(使用RTOS时)或者***软件(未使用RTOS时),否则不进入,从而达到可定义(可配置)低功耗的目的。
图2为本发明实施例提供的嵌入式实时操作***的结构示意图。如图2所示,该嵌入式实时操作***包括:中断管理模块21、任务管理模块22、消息传递模块23、事件模块24、资源模块25和时间模块26;其中:中断管理模块21用于基于上述的中断处理程序控制方法执行中断处理程序。
具体地,中断管理模块21又称中断管理框架。中断是引起现场切换的重要时机,抢占式调度的大部分触发点也存在于中断处理程序中。因此,中断管理框架是嵌入式RTOS的核心逻辑。
嵌入式实时操作***的中断管理框架是外部世界与***软件交互的接口,情况的变化会触发中断,从而执行中断处理程序,而在该程序中可能会调用操作***提供的API,例如:设置事件、发送消息、激活任务的API,从而使得某些任务就绪。在非低功耗模式下,这些就绪的任务会参与调度内核的调度过程,并有可能在中断处理程序退出后被调度执行。但在低功耗模式下,因为中断处理程序退出时不进入调度内核,则这些就绪的任务不会参与调度,直到退出低功耗模式时,才参与调度,本发明称之为“滞后调度”,并合理地处理了该情况。
需要说明的是,本发明实施例提供的嵌入式实时操作***中所包含的任务管理、消息传递、事件和时间等模块,与传统嵌入式实时操作***的类似模块不同,内置增加了支持上述低功耗机制的逻辑代码,包括:
(1)任务管理、消息传递、事件等模块中,可以在中断处理程序中调用的API(包括:激活任务、发送消息、设置事件等),增加了可在低功耗模式下,记录此次虽然令相应任务就绪,但不会进入调度内核等信息的逻辑代码,并在任务控制块、消息控制块、事件控制块等结构体中,增加了相应字段,来保存这些信息,包括:就绪时间、是否会进入调度内核、触发次数等信息。
(2)任务管理、消息传递、事件等模块中,可以在任务中被调用的与上述中断处理程序中调用的API相对应的API(包括:读取任务控制块数据、接收消息、等待事件等),增加了可在低功耗模式下,读取上述信息的逻辑代码,并可将这些信息向上传递到应用层,供应用程序使用,以便在低功耗模式下,或者退出低功耗模式时,有针对性地对控制逻辑或者数据处理逻辑做出相应的调整。
(3)时间模块26的最底层为微处理器硬件定时器的中断处理程序,同样也会在低功耗模式下,减少进入调度内核的次数。例如:在正常模式下,10毫秒周期的定时器中断,每次执行完中断处理程序后都会进入调度内核;而在低功耗模式下,会根据用户的配置,以更长的周期进入调度内核。因此,在该中断处理程序中增加了回调函数,用于接收用户的配置参数。同时,增加逻辑代码,用于在低功耗模式下,记录未进入调度内核的相关信息,包括:当前周期值、中断次数、是否进入调度内核等。并相应在时间控制块的结构体中,增加了字段,来保存这些信息。时间模块26还为此增加了API,用于被应用层调用以按需获取相关信息,作为任务中各种应用层控制或者数据处理逻辑做出相应调整的依据。
(4)与传统嵌入式实时操作***相比,增加了一个调度时机,即,在退出低功耗模式时,会进入一次调度内核,对前述各种被滞后调度的就绪任务进行一次统一调度,且既可以是基于优先级的抢占式调度也可以是其它非抢占式调度。需要注意的是:在此次进入调度内核之前,可能已经进入过几次调度内核了,并处理了在此之前的所有被滞后调度的就绪任务;因为低功耗模式下并不完全禁止进入调度内核,只是减少进入调度内核的次数。
为此,本发明实施例中的嵌入式实时操作***新增了进入低功耗模式的API和退出低功耗模式的API。
由上述内容可知,本发明提供的嵌入式实时操作***,在具备典型RTOS功能模块的同时,又在中断管理框架的基础上,对这些典型的RTOS功能模块进行了适应性改进,具有简洁易用、实时高效等特征,适合于从深嵌入的物联网终端设备、可穿戴设备,到智能硬件、无人***、汽车电子、工业控制、通信设备等中高端嵌入式***的广泛应用领域。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (4)
1.基于中断管理框架的嵌入式***低功耗控制方法,其特征在于,包括:
在***初始化时,通过配置接口接收并存储用户编写的回调函数,所述回调函数中设置有***在低功耗模式下无需进入调度内核或***软件的中断类型;微处理器调用执行回调函数,生成一个全局结构体数组,所述全局结构体数组包括中断序列号和权限标识,所述权限标识用于指示在低功耗模式下中断处理程序是否进入调度内核或***软件;
在低功耗模式下,当新的中断处理程序产生时,微处理器在执行完当前中断处理程序后,遍历所述全局结构体数组,根据所述权限标识判断退出当前中断处理程序时,是否需要进入调度内核或***软件,若不需要,则直接回退到断点,继续执行低功耗模式下的后台逻辑;
当***退出低功耗模式时,微处理器则基于调度内核或***软件的原有调度机制继续执行整个软件。
2.一种嵌入式实时操作***,其特征在于,包括:中断管理模块;
所述中断管理模块,用于基于权利要求1所述的低功耗控制方法执行中断处理程序。
3.根据权利要求2所述的嵌入式实时操作***,其特征在于,还包括:任务管理模块、消息传递模块、事件模块、资源模块和时间模块;
所述任务管理模块、消息传递模块和事件模块中均配置有用于在中断处理程序中调用的第一API,以及在任务中被调用的与所述第一API相对应的第二API;
所述时间模块配置有用于被应用层调用以按需获取未进入调度内核的相关信息的第三API。
4.根据权利要求3所述的嵌入式实时操作***,其特征在于,还配置有用于进入低功耗模式的第四API,以及用于退出低功耗模式的第五API。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910754454.0A CN110489089B (zh) | 2019-08-15 | 2019-08-15 | 基于中断管理框架的嵌入式***低功耗控制方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910754454.0A CN110489089B (zh) | 2019-08-15 | 2019-08-15 | 基于中断管理框架的嵌入式***低功耗控制方法及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110489089A CN110489089A (zh) | 2019-11-22 |
CN110489089B true CN110489089B (zh) | 2022-12-30 |
Family
ID=68551325
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910754454.0A Active CN110489089B (zh) | 2019-08-15 | 2019-08-15 | 基于中断管理框架的嵌入式***低功耗控制方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110489089B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5754869A (en) * | 1994-10-04 | 1998-05-19 | Intel Corporation | Method and apparatus for managing power consumption of the CPU and on-board system devices of personal computers |
WO2001016679A1 (en) * | 1999-08-31 | 2001-03-08 | Intel Corporation | Operating vehicular processor-based systems |
CN102135906A (zh) * | 2011-03-18 | 2011-07-27 | 深圳市民德电子科技有限公司 | 面向嵌入式实时操作***的功耗控制方法及*** |
CN103620521A (zh) * | 2011-06-24 | 2014-03-05 | 英特尔公司 | 用于控制***功耗的技术 |
WO2015143594A1 (en) * | 2014-03-24 | 2015-10-01 | Intel Corporation | Syncronization of interrupt processing to reduce power consumption |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7197654B2 (en) * | 2002-04-11 | 2007-03-27 | International Business Machines Corporation | Method and apparatus for managing low power processor states |
-
2019
- 2019-08-15 CN CN201910754454.0A patent/CN110489089B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5754869A (en) * | 1994-10-04 | 1998-05-19 | Intel Corporation | Method and apparatus for managing power consumption of the CPU and on-board system devices of personal computers |
WO2001016679A1 (en) * | 1999-08-31 | 2001-03-08 | Intel Corporation | Operating vehicular processor-based systems |
CN102135906A (zh) * | 2011-03-18 | 2011-07-27 | 深圳市民德电子科技有限公司 | 面向嵌入式实时操作***的功耗控制方法及*** |
CN103620521A (zh) * | 2011-06-24 | 2014-03-05 | 英特尔公司 | 用于控制***功耗的技术 |
WO2015143594A1 (en) * | 2014-03-24 | 2015-10-01 | Intel Corporation | Syncronization of interrupt processing to reduce power consumption |
Non-Patent Citations (2)
Title |
---|
TI-RTOS 2.20Power Management:MSP432,CC13xx/CC26xx,and CC3200 SimpleLink MCUs;佚名;《TEXAS INSTRUMENTS》;20160630;全文 * |
μC/O-SII内核扩展接口的低功耗模式;佚名;《http://news.eeworld.com.cn/qrs/xsjk/200604/5.html》;20060429;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN110489089A (zh) | 2019-11-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7120911B1 (en) | Processor power-saving control method, storage medium, and processor power-saving control device | |
KR101522081B1 (ko) | 프로세서에서 스레드들을 실행하는 시스템 및 방법 | |
CN101194231B (zh) | 用于在多线程***中设置事件的技术 | |
CN105373207B (zh) | 一种无线通信终端的待机方法 | |
CN102455940B (zh) | 一种定时器和异步事件的处理方法及*** | |
CN102455933B (zh) | 一种通过线程管理提高多任务处理效率的方法 | |
TWI441083B (zh) | 計時器管理之裝置與方法 | |
CN108536531A (zh) | 一种基于单片机的任务调度和电源管理方法 | |
CN109343960A (zh) | 一种Linux***的任务调度方法、***及相关装置 | |
CN111475312B (zh) | 基于实时操作***的消息驱动方法和装置 | |
KR20000060827A (ko) | 실시간 운영체계 커널(Real-time operating systemKernel)의 이벤트 전달 체계 구현방법 | |
CN111580949A (zh) | 一种网络收包模式自动调节方法 | |
CN110489089B (zh) | 基于中断管理框架的嵌入式***低功耗控制方法及*** | |
CN116974728B (zh) | 单片机任务调度方法、单片机产品及存储介质 | |
CN110794759B (zh) | 一种plc任务调度方法和装置 | |
CN101349975B (zh) | 一种在嵌入式操作***上实现中断底半部机制的方法及装置 | |
CA2767782C (en) | Suspendable interrupts for processor idle management | |
CN111813531B (zh) | 一种操作***时钟调度方法及*** | |
Kopják et al. | Event-driven control program models running on embedded systems | |
JPS62284437A (ja) | タスク管理方式 | |
CN114035926A (zh) | 应用线程调度方法、装置、存储介质及电子设备 | |
US7269677B2 (en) | Power consumption reduction and quicker interruption response in an information processing device utilizing a first timer and a second timer wherein the second timer is only conditionally activated | |
CN117407053A (zh) | 一种开源鸿蒙操作***快速移植方法 | |
CN115543461A (zh) | 一种强实时中断唤醒任务方法及相关设备 | |
JP2005519393A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |