SPM

SPM以及时钟请求信号控制流程

因为整个系统不只是AP(MCU),还包括modem、connectivity等子系统;

CPU进入WFI后,整个系统就依靠一颗SCP:SPM来控制睡眠/唤醒的流程,它会去关注各个子系统的状态

SPM =System Power Manager,

它掌控着cpu suspend之后系统是否能掉到最小电流的关键逻辑,你可以把它理解成一个投票机制,当系统的关键资源(memory、clock)没有任何人使用的时候,它就会让系统进入一个真正的深睡状态(最小电流)只要它检测到有任何资源请求还没释放,系统就无法降到底电

所以在底电问题上的debug流程中,我们不仅仅要看cpu有没有suspend成功,还要看SPM的状态是否正确

SPM里面有一个可编程控制器PCM(Programmable Command Master)

CPU在进去WFI之前会把SPM的firmware写入PCM,然后PCM就依据firmware的逻辑来控制SPM的工作

跟SPM强相关的一个东西就是系统中的时钟请求信号,也就是26M时钟开关的控制逻辑;因为系统工作在最小电流的时候,SPM只依靠32K时钟工作;因此要判断系统是不是已经到深睡状态,就要看26M有没有关闭

26M时钟的控制逻辑概要如下图

所以从上图我们就可以看到, 26M有没有关,就只要看SCLKENA这个信号有没有关闭;而SPM对这个信号的输出以及子系统的信号输入,都会记录在SPM的寄存器里面,这个就是我们通过log排查的依据

代码路径:

/kernel-x.x/drivers/misc/mediatek/base/power/spm_vx/

Android功耗优化(10)---功耗基础知识相关推荐

  1. 微型计算机系统性能优化及测试,微型计算机系统测试、优化和升级基础知识习题...

    你很了解自己的电脑吗?想优化升级发挥自己电脑的性能吗?下载资料学习.实践一下吧 微型计算机系统测试.优化和升级基础知识习题 1. 简述计算机的主要性能指标. 答: (1)运算速度 运算速度是衡量计算机 ...

  2. Android随机点名器,Excel基础知识-详解随机点名器

    说道制作个案例纯粹意外,我多少有点选择恐惧症,为了不在"选择"上纠结,就自己小玩了一下,就用了程序做了个选择器,其实很简单,就是有小时候玩的"点兵点将",稍微变 ...

  3. Android View(一)——View的基础知识

    目录 一.View的基础知识 1.什么是View 2.View的位置参数 3.MotionEvent 4. TouchSlop 5. VelocityTracker 6. GestureDetecto ...

  4. 收集的seo优化的些基础知识

    下面是一些搜索引擎优化的基础知识: 影响搜索引擎排名的主要因素: 内部因素: 跟关键字有关的内部因素: URL中出现关键字: 网页Title中出现关键字: 常规内容中出现关键字: 在页面的第一段中出现 ...

  5. 性能测试之前端性能优化(前端基础知识,前端性能测试常用工具,前端性能优化常见方法)

    目录 1. 前端基础知识 1.1 为什么要关注前端页面的性能,了解页面的加载,渲染方式和顺序? 1.2 一次页面请求会经历哪些步骤? 1.3 页面的展示过程 2. 前端性能测试的常用工具 2.1 Go ...

  6. 10.信息系统基础知识

    1.信息 1.1 概念: 信息是客观事物状态和运动特征的一种普遍形式,客观世界中大量存在.产生和传递着以这些方式表示出来的各种各样的信息. 控制论创始人认为:信息就是信息,集部署物质也不是能量 香农是 ...

  7. java android 小游戏_Android开发基础知识及小游戏

    学习目的 首次进入Android阶段的学习,首先需要我们掌握Activity(界面),程序的生命周期,界面启动,界面布局.控件 相关技术.及其使用 1.Activity: 管理一个界面从创建到运行结束 ...

  8. Android 游戏开发必备的基础知识

    Android游戏开发: View类开发框架 SurfaceView开发框架 Graphics类开发框架 Paint与Color类介绍 Canvas介绍 几何图形绘制 字符串绘制 图像的绘制 图像的旋 ...

  9. 3G应用开发之Android 传智播客 基础知识总结

    3G应用开发之Android Android应用开发之3G  3G应用开发之Android 3G应用开发之Android 应用开发之 讲师: 讲师:黎活明 北京传智 播客教育 www.itcast.c ...

  10. Java Android几个重要的基础知识

    为什么80%的码农都做不了架构师?>>>    Java 1.数据类型 bit(位):0或1计算机存储处理信息的最基本的单位 byte(字节):8个bit(上面表格数字的单位是byt ...

最新文章

  1. Kafka深入理解-2:Kafka的Log存储解析
  2. 计算机专业的大学生自我介绍,计算机专业大学生自我介绍
  3. “豆瓣酱”之用户,场景,功能
  4. LightOJ 1112 - Curious Robin Hood 树状数组
  5. Hadoop 使用FileSystem API 读取数据
  6. 解决EF 4.0 中数据缓存机制
  7. c++函数为什么带imp_二次函数含参最值问题,老师怎么讲学生都不明白,试试这九张动图...
  8. 《大数据》杂志——大数据技术发展的十个前沿方向(中)
  9. 中国的房子其实是不断贬值的
  10. 【Elasticsearch】搭建Elasitc stack集群需要注意的日志问题
  11. local lua 多个_Lua面向对象之多重继承、私密性详解
  12. 滴滴出行高并发高性能的分布式架构设计之道
  13. notepad++怎么换行命令_notepad
  14. AlphaZero问世:8小时完爆围棋、国际象棋、日本将棋(转)
  15. windows 下安装securecrt 绿色版
  16. 搭建 Python 开发环境
  17. 在后台管理系统中如何设计账户管理?
  18. 计算机和工业设计哪个就业前景大,工业设计就业前景女生
  19. 品高云暴漫 | 云计算足球赛之黑马
  20. 魔众微信管理系统,简单易用的微信公众号管理系统

热门文章

  1. java 图像 截取正方形_响应但是作为img元素的正方形的图像
  2. 100g光模块厂家排名_100G光模块固件设计示例
  3. 【LeetCode】剑指 Offer 58 - I. 翻转单词顺序
  4. 力扣69. x 的平方根
  5. Java集合之List的equals方法
  6. Redis的SETNX
  7. Mac终端神器zsh
  8. 浏览器调试时控制台出现:Uncaught SyntaxError: Unexpected identifier
  9. 创建预编译头 Debug 正常 Release Link Error:预编译头已存在,使用第一个 PCH
  10. 用EnumMap代替序数索引