【RTOS】基于RTOS的降低功耗的策略
RTOS中降低功耗的策略
介绍
随着绿色节能产品需求的增加,快速增长的移动设备,其电池寿命最受关注,设计者必须要考虑在其设计中如何最大限度的降低功耗。这可以通过选择耗电更低的组件,以及更合理的软件架构去实现。
RTOS调度效率
一个普遍的常识,在嵌入式设计中加入RTOS会产生额外的处理开销,从而导致更高的功耗。对于简单的设计,轮询超循环架构可能是更合适的,但对于更高级、更复杂的设计,使用基于事件机制的调度算法部署RTOS可以显著减少应用程序的处理时间,从而允许选择更小的处理器或增加更多的功能。
在一个基于优先级抢占式RTOS的软件工程中,任务是按照优先级执行的,高优先级任务只要就绪总能获得处理器。在没有任务运行时,如任务等待事件而阻塞,RTOS就会运行后台任务即空闲任务,空闲任务可以做一些后台处理工作。但通常情况下,系统只是保持在空闲任务运行直到某个事件产生以使其阻塞的任务激活。软件设计越高效的利用RTOS,空闲任务消耗处理器的时间就越长。
空闲任务睡眠模式
降低功耗首先要做的就是在系统进入空闲任务后,RTOS使处理器进入低功耗模式。为了保证快速响应,处理器将在中断来临时唤醒,如果没有外部中断触发,则将在下一个RTOS tick中断时唤醒。
在OPENRTOS和SAFERTOS系统中,降低功耗的方式是在空闲任务钩子函数中使处理器进入低功耗模式,见图Figure 1。

SAFERTOS系统的超低功耗模式
tickless睡眠模式进一步扩展了之前提出的降低功耗的策略,通过在空闲期间完全停止RTOS tick中断使系统处于省电模式以达到节省电能,停止tick中断将使处理器保持深度省电模式,直到一个中断发生,或是RTOS重新激活任务的时候,如图Figure 2。

使用SAFERTOS,可以在下述情况进入tickless睡眠模式
- 只有空闲任务在运行的时候,所有的应用任务均被阻塞或挂起
- 在内核将应用任务激活时,至少需要N个完整的tick周期,这样做可避免在每次tick时计算和重新配置时钟
在tickless睡眠模式处理器将处于睡眠模式,直到下一个任务阻塞时间到达,或是下一个软件定时器被触发。在下述条件满足时,SAFERTOS将使处理器处于深度睡眠模式直到下一个外部中断到来
- 软件定时器未被使用,或是定时未到,SAFERTOS在任何时候均不执行定时器的回调函数
- 所有的应用任务均处于挂起状态或无限超时阻塞状态(超时被设置为portMAX_DELAY),SAFERTOS在任何时候均不激活任务
SAFERTOS知道最长的睡眠时间,没有错过任务阻塞时间超时的风险,或软件定时器的执行。但无法预测何时退出低功耗模式,因为无法预测异步中断何时发生,因此在SAFERTOS退出低功耗模式时,无法假定睡了多久,故无法在调整系统时间前计算出睡眠时长。
freertos低功耗机制
freertos是在系统进入空闲任务时,将处理器设置为低功耗状态,当然rtos节拍时钟频率过高,将会使处理器频繁的进入和退出低功耗状态,这带来的电量损耗可能比正常运行模式时还高,为解决这个问题,freertos引入了tickless低功耗模式,即在系统执行空闲任务时停止系统时钟,在tick中断被激活时重新计算并调整rtos的tick计数值,tickless低功耗模式可使处理器保持在深度省电状态,直到中断发生。
【RTOS】基于RTOS的降低功耗的策略的更多相关文章
- 基于 普通及Lambda方式实现策略模式
什么是策略模式 策略模式代表了解决一类算法的通用解决方案,你可以在运行时选择使用哪种方案.比如如何使用不同的条件(比如苹果的重量,或者颜色 )来筛选库存中的苹果.你可以将这一模式应用到更广泛的领域 , ...
- 基于KMeans的指数择时策略
[导语]:聚类分析是指将物理或者抽象对象的结合分组为由类似对象组成的多个类的分析过程.简单来讲,聚类就是通过一些特征去自动识别一个大群体中的多个子群体,这些子群体中的对象彼此之间相似度高,而子群体之间 ...
- 【RTOS】RTOS汇编入门 (1)
引言 为了提高效率,进行更为底层的操作,RTOS常采用汇编语句,因此了解常用的汇编语句,很有必要 汇编指令 1..equ:类似于c中的#define,表声明常量 例如:.equ PSW 0x10000 ...
- winform降低功耗总结
这里整理了一些网上关于Winform如何降低系统内存占用的资料,供参考: 1.使用性能测试工具dotTrace 3.0,它能够计算出你程序中那些代码占用内存较多2.强制垃圾回收3.多dispose,c ...
- 【原/转】ios指令集以及基于指令集的app包压缩策略
iPhone指令集 本文所讲的内容都是围绕iPhone的CPU指令集(想了解ARM指令集的同学请点击这里),现在先说说不同型号的iPhone都使用的是什么指令集: ARMv8/ARM64 = iP ...
- 基于CORS的geoserver同源访问策略
这个问题理顺整个2天.终于攻克.记录下来. 1.下载文件 首先下载cors压缩包,解压,得到的是org/mortbay/servlets/CrossOriginFilter.class文件,把此文件拷 ...
- 90-95年CPU功耗感知调度研究
最近读了三篇1990-1995年的通过调度来降低cpu能耗的文章[1] [2] [3],简单总结一下该年代单核CPU功耗感知的调度策略. Motivation 随着便携式设备逐渐兴起,人们对降低其功耗 ...
- FPGA设计中的电源管理(转载)
过去,FPGA设计者主要关心时序和面积使用率问题.但随着FPGA不断取代ASSP和ASIC器件,设计者们现正期望能够开发低功耗设计,在设计流程早期就能对功耗进行正确估算,以及管理和对与FPGA相关的各 ...
- uC/OS-II内核架构解析(1)---嵌入式RTOS(转)
uC/OS-II内核架构解析(1)---嵌入式RTOS 1. 嵌入式系统基本模型 2. RTOS设计原则 采用各种算法和策略,始终保持系统行为的可预测性.即在任何情况下,在系统运行的任何时刻,OS的资 ...
- Linux之RTOS学习
Linux之RTOS学习 RTOS: Real time operating system 系统选型 可选方案 RTLinux - FSMLabs, WindRiver Systems - http: ...
随机推荐
- javaScript正则截取自定义标签-javascript-zheng-ze-jie-qu-zi-ding-yi-biao-qian
title: javaScript正则截取自定义标签 date: 2021-12-29 17:31:48.448 updated: 2021-12-29 17:31:48.448 url: https ...
- 使用 vve-i18n-cli 来一键式自动化实现国际化
[Github:vue-viewer-editor/vve-i18n-cli] 这是我同事开发的国际化自动处理脚本,我进行过一次扩展,让其也支持我们一个 jQuery 老项目的国际化日常维护 至此,我 ...
- java后端工具类之从0到1生成数字证书(RSA)
开放签电子签章系统-开源版这周(2023-12-15)就要上线发布了,为了让开源版能够更好的服务广大研发工程师,接下来会详细的说说开源版从代码层面的具体实现,以便大家在工作过程中更好使用开放签电子签章 ...
- thymeleaf自定义标签
前言 使用thymeleaf自定义标签,环境:springboot 2.3.7 + thymeleaf 3.0.11(2021-01-14最新版) 由于使用shiro,我们需要与thymeleaf整合 ...
- UnionFind 并查集
简介 UnionFind 主要用于解决图论中的动态联通性的问题(对于输入的一系列元素集合,判断其中的元素是否是相连通的). 以下图为例: 集合[1, 2, 3, 4] 和 [5, 6]中的每个元素之间 ...
- SSH默认端口从22修改为其他端口
1.在终端中使用root权限登录到您的Linux服务器. 2.打开终端,并使用适合您的文本编辑器(如vi.nano等)打开SSH配置文件.例如,通过运行以下命令之一: vi /etc/ssh/sshd ...
- 微信小程序常用代码
在微信小程序中,可以使用 wx.showToast.wx.showLoading 和 wx.showModal 等方法来显示不同类型的提示框 wx.showToast:用于显示一条浮动的提示框,一般用 ...
- 第六部分_Shell脚本流程控制语句
流程控制语句 关键词:选择(人生漫漫长路,我该何去何从) 1. 基本语法结构 ㈠ if结构 箴言1:只要正确,就要一直向前冲️ F:表示false,为假 T:表示true,为真 if [ condit ...
- 从4个特点为你解密华为云媒体网络底座AND
本文分享自华为云社区<解密华为云媒体网络底座ADN>,作者: Satan.D . 互联网的痛点与解决思路 互联网自1968年起源依赖,已经发展了半个多世纪.互联网仅从中文字面意思,可以简单 ...
- 一文带你熟悉Pytorch->Caffe->om模型转换流程
摘要:本文旨在分享Pytorch->Caffe->om模型转换流程. 标准网络 Baseline:PytorchToCaffe 主要功能代码在: PytorchToCaffe +-- Ca ...