[转]功耗分析-判断 suspend 是否成功

2024-02-09 20:08

本文主要是介绍[转]功耗分析-判断 suspend 是否成功,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1. 背景

在suspend状态(sleep mode)下,我们最关心的是系统底电流。SPM掌控着CPU suspend之后系统能否掉到最小电流的关键逻辑,你可以把它理解成一个投票机制,当系统的关键资源(memeory、clock)没有任何人使用的时候,它就会让系统进入一个真正的深睡状态(最小电流)。只要它检测到有任何资源请求还没有释放,系统就无法降到底电流。所以在底电流问题上的debug流程中,我们不仅仅要看CPU有没有suspend成功,还要看SPM的状态是否正确。

2. 查SPM的状态是否正确

2.1 关于 SPM

SPM = System Power Manager

因为整个系统不只是AP(MCU),还包括modem、connectivity等子系统;CPU进入WFI(wait for interrupt状态)后,整个系统就依靠一颗SCP:SPM来控制睡眠/唤醒的流程,它回去关注各个子系统的状态。跟SPM强相关的一个东西就是系统中的时钟请求信号,也就是26M时钟开关的控制逻辑:

2.2 查看 SPM的状态

看SPM的状态只需要看wake up by 、r13 和 debug_flag 关键字

<4>[  923.097349] -(0)[1180:system_server][SPM] wake up byEINT, timer_out = 7440931, r13 = 0x10001000, debug_flag = 0x9f

这两个寄存器保留了SPM管理时钟的关键信号状态,寄存器的detail信息不对客户开发。

判断是否正常一般就只要看debug_flag的最后4个bit,如果是0xf(1111)就是正常的,如果是类似0Xc(1100)或者0x3(0011)这种的就是不正常的。

一般就只有这三种值,因为每2个bit是成对的,它们意味着26M有没有被打开/关闭过,1表示发生过,0表示没有。因为如果26M被关了,唤醒前必须打开,因此要么都是0(26M没有打开/关闭过),要么都是1(26M打开/关闭过),0就是不正常的。
如果发现debug_flag不是0xf,那么要看r13,r13是保存了每个输入SPM的时钟请求信号状态,这种状态下一定是有某个时钟请求信号是hold住了。因此可以简单地把r13理解是SPM的输入,而debug_flag是SPM输出SRCLKENA信号。

3. 结语

不同平台不同系统版本,上述log不一定有完整打印。故本分只是作为经验参考

这篇关于[转]功耗分析-判断 suspend 是否成功的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/695174

相关文章

Java面试八股之怎么通过Java程序判断JVM是32位还是64位

怎么通过Java程序判断JVM是32位还是64位 可以通过Java程序内部检查系统属性来判断当前运行的JVM是32位还是64位。以下是一个简单的方法: public class JvmBitCheck {public static void main(String[] args) {String arch = System.getProperty("os.arch");String dataM

[职场] 公务员的利弊分析 #知识分享#经验分享#其他

公务员的利弊分析     公务员作为一种稳定的职业选择,一直备受人们的关注。然而,就像任何其他职业一样,公务员职位也有其利与弊。本文将对公务员的利弊进行分析,帮助读者更好地了解这一职业的特点。 利: 1. 稳定的职业:公务员职位通常具有较高的稳定性,一旦进入公务员队伍,往往可以享受到稳定的工作环境和薪资待遇。这对于那些追求稳定的人来说,是一个很大的优势。 2. 薪资福利优厚:公务员的薪资和

JavaScript全屏,监听页面是否全屏

在JavaScript中,直接监听浏览器是否进入全屏模式并不直接支持,因为全屏API主要是关于请求和退出全屏模式的,而没有直接的监听器可以告知页面何时进入或退出全屏模式。但是,你可以通过在你的代码中跟踪全屏状态的改变来模拟这个功能。 以下是一个基本的示例,展示了如何使用全屏API来请求全屏模式,并在请求成功或失败时更新一个状态变量: javascriptlet isInFullscreen =

高度内卷下,企业如何通过VOC(客户之声)做好竞争分析?

VOC,即客户之声,是一种通过收集和分析客户反馈、需求和期望,来洞察市场趋势和竞争对手动态的方法。在高度内卷的市场环境下,VOC不仅能够帮助企业了解客户的真实需求,还能为企业提供宝贵的竞争情报,助力企业在竞争中占据有利地位。 那么,企业该如何通过VOC(客户之声)做好竞争分析呢?深圳天行健企业管理咨询公司解析如下: 首先,要建立完善的VOC收集机制。这包括通过线上渠道(如社交媒体、官网留言

六西格玛培训公司:解锁成功之门,让企业与个人共赴“嗨”途

在竞争激烈的21世纪,六西格玛培训公司手握一把神奇的钥匙,帮助企业及个人轻松开启成功的大门。 对企业来说: 产品质量飞跃:不再是偶尔的精品,而是每个产品都如同精雕细琢的艺术品,吸引无数顾客争相购买。 工作流程优化:六西格玛培训如同精准的剪刀,剪去冗余,让工作流程更加顺畅高效。 客户满意度飙升:深谙客户需求的六西格玛,帮助企业精准把握市场脉搏,让每位客户都感受到宾至如归的满意。 战略转型游刃有

【Python如何输入升高和体重判断你是偏胖还是偏瘦】

1、求体质指数得Python代码如下: # BMI(Body Mass Index)指数:简称体质指数,# 是国际上常用的衡量人体胖瘦程度以及是否健康的一个标准。# 常用指标:BMI<18.5 偏瘦 18.5<=MBI<=24 正常 MBI>24 偏胖# 计算公式:BMI=体重kg/身高的平方ma = eval(input("请输入你的体重(kg):")) # 输入体重b = e

打包体积分析和优化

webpack分析工具:webpack-bundle-analyzer 1. 通过<script src="./vue.js"></script>方式引入vue、vuex、vue-router等包(CDN) // webpack.config.jsif(process.env.NODE_ENV==='production') {module.exports = {devtool: 'none

IPD推行成功的核心要素(十一)技术规划与平台规划促进公司战略成功

随着外部大环境的影响,各企业仅有良好的愿望是不够的。预测并顺应新兴市场和技术的变化,变危机为转机,不断推出强大的产品才是一个公司持续繁荣的根本保障。而高效的产品开发往往是基于某些关键技术,针对市场推出的一个或几个产品系列,这些产品系列通常共用一些产品平台,共用一种或者几种关键技术。当一家企业进入了平稳发展期,已经建立了较为完善的管理制度和产品开发流程,但是依然认为竞争对手是那样强大,那样不可战胜。

Java中的大数据处理与分析架构

Java中的大数据处理与分析架构 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!今天我们来讨论Java中的大数据处理与分析架构。随着大数据时代的到来,海量数据的存储、处理和分析变得至关重要。Java作为一门广泛使用的编程语言,在大数据领域有着广泛的应用。本文将介绍Java在大数据处理和分析中的关键技术和架构设计。 大数据处理与

段,页,段页,三种内存(RAM)管理机制分析

段,页,段页         是为实现虚拟内存而产生的技术。直接使用物理内存弊端:地址空间不隔离,内存使用效率低。 段 段:就是按照二进制文件的格式,在内存给进程分段(包括堆栈、数据段、代码段)。通过段寄存器中的段表来进行虚拟地址和物理地址的转换。 段实现的虚拟地址 = 段号+offset 物理地址:被分为很多个有编号的段,每个进程的虚拟地址都有段号,这样可以实现虚实地址之间的转换。其实所谓的地