电源管理之android内核suspend to disk的实现(八)--suspend to disk调试数据统计与总结

Linux内核Power_Management之suspend to disk(STD)详解(二) 1. STD机制 Suspend to Disk也常被叫做Hibernation(休眠),为了达到省电与快速开机的trade off,Hibernation经常被应用到Laptop和移动终端上。其常用的实现方法为SWSUSP(swap suspend)。 swsusp是一种STD(Suspend to Disk)/STF(Suspend to Flash)的实现方法,其目的是系统断电之后再次开启时... 阅读详情

suspend to disk数据统计

该测试基于jz4780grus开发板获得的开机运行时间。

时间统计:

1)开机(只有地图运行)内核启动的时间统计

    准备时间    搬移镜像    恢复现场    搬移速度    镜像大小    总计
第一次  4.43s   25.28s  3.90s   15.32M/s    387348K   33.70s
第二次  4.42s   24.97s  3.85s   15.62M/s    390160K   33.24s
第三次  4.44s   24.99s  3.83s   15.62M/s    390372K   33.26s
第四次  4.43s   24.98s  3.86s   15.63M/s    390508K   33.27s
第五次  4.95s   25.02s  3.83s   15.61M/s    390604K   33.80s
平均    4.53    25.05   3.85    15.56       380.66M   33.45s

2)开机(关闭地图运行)内核启动的时间统计

    准备时间    搬移镜像    恢复现场    搬移速度    镜像大小    总计
第一次  4.43s   24.61s  3.72s   15.90M/s    391396k   32.76s
第二次  4.43s   24.60s  3.71s   15.91M/s    391560k   30.62s
第三次  4.43s   24.61s  3.71s   15.91M/s    391696k   30.72s
平均    4.43    24.61   3.71    15.91M/s    382.37M   31.37

3)开机后关闭地图,打开音乐、浏览器、日历内核启动时间统计

准备时间    搬移镜像    恢复现场    搬移速度    镜像大小    总计
第一次  4.42s   21.08s  5.10s   17.47M/s    368424k   30.60s
第二次  4.43s   21.10s  5.09s   17.46M/s    368460k   30.62s
第三次  4.41s   21.22s  5.09s   17.36M/s    368548k   30.72s
平均    4.42    21.13   5.09    17.43M/s    359.84M   30.65


基于以上的统计结果可以得出如下结论:

1、打开的程序越多,则恢复现场所用的时间就会越长,但是幅度变换不是太大,对整体时间的影响并不是主要因素。

2、准备时间主要是为了SD卡驱动加载完成,这段时间较为固定化,变化也不大。

3、能够对启动产生影响的有两个部分:

    镜像大小:镜像越小,搬移所用时间就会越少,就越能节省时间。但是现场的镜像是经过压缩的,不同的压缩方式结果也是不同的,这一点可以借鉴一些补丁的观点,但是实现难度很大。

    搬移速度:由图可以看出来,虽然搬移速度有浮动,但是提高是有限制的,这跟我们用的介质,以及硬件是有关系的。和电脑的硬盘相比SD卡的读写速度显然很慢,我曾想过用nand代替SD卡,但是nand的分区执行的比较靠后,虽然调整了顺序,但是没能达到预期的效果。


suspend to disk的缺点;

1、不稳定,虽然几率不大,但是还是能够碰到不正常的时候。

2、wifi关机前必须先关闭,不然的话会有可能出现问题。


个人总结:

本来想靠实现android系统的hibernation功能,来像linux的hibernation功能和win8的快速开机功能一样,提高开机速度,但是移动设备的种种限制导致开机速度并不明显,现在又开始研究其他的快速开机启动了。内核是mips的有些arm开机工具不能用,真的很悲剧!


后面我会介绍tuxonice补丁的实现方法,明天就是年会了,准备表演节目中。。。。。。。。。。。。。。

安卓嵌入式设备低功耗开发实战:从RK3399休眠调试到量产级功耗优化 低功耗开发是嵌入式系统的核心能力,本质是软硬协同的电源状态管理技术。其原理基于CPU空闲时进入WFI/WFE指令态、SoC按电源域分级断电、外设通过runtime PM动态下电,并依赖PMIC寄存器精确控制供电路径。该技术的价值在于显著延长电池寿命、满足工业/医疗设备超长待机(如18个月)与车规级失效安全要求。典型应用场景涵盖安卓手持终端、智能手表、LoRa网关等资源受限设备,尤其在RK3399等ARM平台需打通设备树配置、Linux内核suspend框架、Android PowerHAL及App层Wake 阅读详情

相关推荐

Linux休眠唤醒机制:从suspend/resume到驱动调试

在现代嵌入式Linux与移动设备中,电源管理是系统低功耗设计的核心。构建可靠的休眠唤醒能力,不仅是让系统空转,更需要对内核suspend/resume流程、设备驱动回调、中断唤醒源及寄存器级电源控制有系统化理解。Suspend-to-RAM作为最常见的低功耗状态,驱动开发者需掌握device_pm_ops回调、wakeup_source计数与pinctrl、时钟、regulator的对称管理。调试休眠问题时,利用wakeup_sources和ftrace可以快速定位“睡死”“乱醒”等异常现象。掌握从状态切换

weixin_30872577的博客 231

电源管理之android内核suspend to disk的实现(一)

最近刚刚做了一份关于电源管理中android系统suspend to disk的实现研究学习报告,最近比较清闲就简单做了整理。 我是基于北京君正jz4780grus开发板做的探究,我将要在这几天按照下面做一个学习报告,其内容如下所示: 一、Linux休眠/唤醒简介 1、介绍Linux系统的Suspend的四种状态 2、Linux系统的休眠的步骤 3、用户空间接口 4、Linux S

中华田园犬 6847

深度探索:Android电源管理驱动开发实战与内核机制解析

本文深入探讨Android电源管理驱动开发的关键技术与实践。首先解析Android电源管理框架的分层架构,包括应用层、框架层、HAL层和内核驱动层。重点讲解Linux内核电源管理基础设施,涵盖系统休眠/唤醒回调实现、运行时电源管理(RuntimePM)和唤醒源配置等核心技术。详细阐述Android HAL层电源管理接口的实现方法,包括power模块和battery模块的开发要点。在BSP开发部分,深入分析SoC初始化、休眠/唤醒序列定制、PMIC驱动开发和RTC驱动的关键实现。

郑伟强dev的专栏 37

linux suspend to disk

lock_system_sleep(); 该函数设置当前进程为不可冻结,并获取pm系统的互斥锁,防止hibernate期间被冻结,因为后面会调用freeze_process函数冻结所有进程,这其中不包含它自己。 snapshot_device_available是一个原子操作类型的变量,表示snapshot设备是否可用,这个设备应该是hibernate用到的swap分区。这个变量初始化为1,atomic_add_unless函数的作用是自动给v累加a,直到v等于u。用到这里,就是将snaps

chudejin的博客 1162

从零构建SOEM主站:基于STM32的EtherCAT伺服控制实战指南

本文详细介绍了如何从零构建基于STM32的SOEM主站系统,实现EtherCAT伺服电机的高精度控制。通过硬件选型、SOEM协议栈移植、PDO/SDO配置优化等实战步骤,帮助开发者掌握工业自动化中的关键运动控制技术,特别适用于23位编码器伺服电机的应用场景。

weixin_29186249的博客 666

西门子 S7-200 SMART 系列六:手把手教你配置S7-200 SMART Modbus RTU

最新发表:https://www.ics-pedia.com/%e8%a5%bf%e9%97%a8%e5%ad%90-s7-200-smart-%e7%b3%bb%e5%88%97%e5%85%ad%ef%bc%9a%e6%89%8b%e6%8a%8a%e6%89%8b%e6%95%99%e4%bd%a0%e9%85%8d%e7%bd%aes7-200-smart-modbus-rtu%e5%ae%9e%e4%be%8b/

John_09040211的博客 3279

【Android】 android suspend/resume总结(1)

芯片(SoC)上系统的电源状态有:on、idle和suspend。On表示SoC正在运行。Idle是一种中等功率模式,在这种模式下,SoC是通电的,但不执行任何任务。Suspend是一种低功耗模式,其中SoC没有供电。在此模式下,设备的功耗通常比“On” 模式低100倍。

weixin_41028159的博客 7557

曙光服务器RAID配置避坑指南:MegaRAID SAS 9361-8i实战(含Foreign状态处理)

本文详细解析了曙光服务器搭配MegaRAID SAS 9361-8i控制器的RAID配置全流程,包括RAID0和RAID5的创建、Foreign状态处理及性能优化策略。特别针对磁盘迁移中的Foreign状态问题,提供了系统化的解决方案和高级恢复技巧,助力企业级IT运维提升存储配置的稳定性和可靠性。

weixin_29200741的博客 412

电源管理之android内核suspend to disk的实现(七)--方案的选择与问题解决

一、实现android系统hibernation的方案分析: 实现方案分析:       方案一: linux标准内核实现       android标准内核的代码是由linux内核演变而来,只要解决android系统独特的wakelock问题,并提供交换分区的支持,就能实现android系统的hibernation。       方案二: tuxonice内核补丁实现     t

中华田园犬 4368

AWR1642+DCA1000EVM 不使用mmWave Studio软件采集原始ADC数据 Timeout问题汇总

DCA1000 EVM Timeout问题汇总

Jesy_Hsu的博客 1476

手把手教你RK3588 NPU驱动与RKNN Toolkit,AI开发不迷路!

本文详细介绍了RK3588 NPU驱动安装与RKNNToolkit使用方法。首先阐述了RK3588芯片在嵌入式AI领域的优势,包括6TOPS算力和混合量化支持。随后分步骤讲解了NPU驱动安装流程,包括准备工作、编译安装、验证调试及常见问题解决。接着全面介绍了RKNNToolkit的环境搭建、基本使用流程和图像分类实战案例,涵盖模型转换、推理优化等关键环节。最后展望了RK3588在智能安防、工业自动化等领域的应用前景,为开发者提供了完整的嵌入式AI开发指南。

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 433

电源管理之android内核suspend to disk的实现(二)

4、Linux Suspend 的流程     相关的文件下面是文件的路径:android4.0/kernel/kernel/power/     接下来让我们详细的看一下Linux是怎么休眠/唤醒的:     (1)用户对于/sys/power/state的读写会调用到main.c中的state_store(),用户可以写入constchar * const pm_state[] 中定义的

中华田园犬 4655

基于深度学习的茶叶等级检测识别系统:YOLOv10 + UI界面 + 数据集

YOLOv10是YOLO系列的最新版本,继承了YOLO模型的优点,并对速度和精度进行了优化。YOLOv10在目标检测中使用卷积神经网络(CNN)作为基础,通过改进网络结构和优化训练策略,实现了在更低的延迟下进行高精度的目标检测。本文详细介绍了基于YOLOv10的茶叶等级检测与识别系统的设计与实现过程。我们从数据集准备、模型训练与推理、UI界面设计等多个方面进行了详细讲解,并给出了相应的代码实现。通过本系统,我们可以高效地自动检测茶叶的等级,并通过UI界面直观地展示结果。

YOLO 765

电源管理之android内核suspend to disk的实现(三)

Android休眠的介绍

中华田园犬 3827

(十一)随机性与独立性回顾

随机性与独立性回顾

旺旺的碎冰冰~的博客 1017

带洞多边形如何分成凸多边形集合,对多边形进行凸分解?

摘要: 凸分解是计算几何中的经典问题,分为三角化和凸分解两种方法。三角化将带洞多边形转换为简单多边形并分割为三角形,常用算法包括耳剪法、单调多边形三角化等。凸分解则生成更少但更大的凸多边形,常用Hertel-Mehlhorn算法或基于凹点的递归切割。实际应用中建议使用CGAL、Poly2Tri等成熟库处理。三角化适合图形渲染,凸分解更适用于物理引擎和路径规划。关键步骤包括数据校验、选择合适的算法及后处理优化。

插件开发 354

Android 内核驱动——电源管理

13.1   基本原理 Android  中定义了几种低功耗状态:earlysuspend,suspend,hibernation。   earlysuspend 是一种低功耗的状态,某些设备可以选择进入某种功耗较低的状态,比如 LCD可以降低亮度或灭掉;   suspend是指除电源管理以外的其他外围模块以及cpu均不工作,只有内存保持自刷新的 状态;      hib

coco163的专栏 880

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

休眠唤醒 standby 调试

内容是关于Linux休眠唤醒调试的文章。摘要要简洁概括主要内容和调试方法。

内核笔记 301

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

Android电源管理框架

一、wakelock机制 Android电源管理使用的wakelock机制:系统中有激活(未释放)的wakelock存在,系统就不能进入休眠状态;如果系统没有激活的wakelcok存在,则系统立即进入到休眠状态。 wakelock按加锁的方式有两种:永久锁,这样的锁除非显示的放开,是不会解锁的,所以这种锁的使用是非常小心的;超时锁,这种锁会锁定系统唤醒一段时间,如果这个时间过去了,这个锁会自动

红娃子 3070

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

从一次‘睡死’Bug排查说起:手把手教你调试Linux/Android系统休眠唤醒问题

本文通过一个真实的‘睡死’Bug案例,详细介绍了如何调试Linux/Android系统的休眠唤醒问题。从日志分析、工具链构建到深入电源管理框架,提供了系统化的排查方法和高级调试技巧,帮助开发者快速定位和解决suspend/resume相关问题。

weixin_30770783的博客 1182

Linux内核system sleep深度解析:整机休眠唤醒全链路与驱动调优实践

在嵌入式Linux与Android底层开发中,整机休眠唤醒是功耗调优的核心环节,但很多人容易把关屏、CPU降频与真正的system sleep混为一谈。Linux内核通过/sys/power/state暴露s2idle、standby、mem、disk等睡眠状态,其背后涉及进程冻结、设备suspend分级回调、中断唤醒仲裁与CPU电源域切换。理解suspend/resume的dpm_list排序规则、suspend_late/suspend_noirq等回调层级,以及wakeup source框架,是定位“

weixin_34326429的博客 379

Linux内核PM Core深度解析:功耗管理分层设计与回调机制

操作系统通过电源管理机制协调硬件资源与设备状态,其中Linux内核的功耗管理框架尤为关键。在嵌入式与Android BSP开发中,设备驱动的suspend/resume回调直接决定系统休眠唤醒的稳定性与功耗表现。PM Core作为Linux内核功耗子系统的编排核心,通过dev_pm_ops定义设备与框架的交互契约,并借助dpm_suspend等流程实现有序的设备状态切换。理解分层设计(硬件特性层、驱动回调层、框架编排层)以及wakeup source、runtime PM等机制,有助于开发者快速定位休眠失败

weixin_33970449的博客 337

Android定时状态管理:AlarmManager+RTC+PowerManager实战

Android定时开关机本质是系统级状态调度问题,而非硬件级断电重启。其核心依赖AlarmManager的RTC_WAKEUP闹钟机制、Linux内核Suspend-to-RAM(mem)电源状态,以及PowerManager对goToSleep()等底层接口的精准调用。技术价值在于以低功耗深度休眠替代真关机,实现毫秒级唤醒与高可靠性定时闭环。典型应用于工控平板自动启停、健康终端定时省电、教育设备课表联动等场景。本文聚焦AlarmManager调度策略与RTC时间基准协同,结合PowerManager状态控

weixin_34380948的博客 356

Linux PM Core 分层详解:从 dpm_list 到 Runtime PM 的系统睡眠机制

Linux 电源管理常被简化看作 CPUFreq 或某个驱动中的 suspend 回调,但真正统筹整机休眠与唤醒的核心是 PM Core。它作为内核电源管理的“调度中枢”,通过 kernel/power 与 drivers/base/power 两套代码,将系统级睡眠策略与设备级运行态管理解耦。PM Core 的核心价值在于跨设备协调:借助 dpm_list 有序队列、suspend/resume 多阶段回调以及 dev_pm_ops 接口,确保设备按依赖顺序进入和退出低功耗状态;而 Runtime PM

weixin_34416649的博客 338

低功耗开发本质:从安卓电源管理到嵌入式寄存器的工程闭环

低功耗开发不是调用API或开启深色模式的表层操作,而是基于能量守恒与时间约束的系统级工程实践。其核心原理在于精准控制芯片各模块的供电状态、时钟使能与唤醒响应,涉及CPU休眠、外设时钟门控、电源域切换及RTC/GPIO等唤醒源协同。技术价值体现在延长电池寿命、降低散热压力、满足车规/工业场景十年免维护等严苛SLA。典型应用场景覆盖智能穿戴、边缘网关、车载T-Box及野外环境监测终端。本文聚焦安卓PowerManager/BatteryStats机制与STM32/RK3399底层寄存器协同优化,揭示功耗岗位真实

cigang4063的博客 790
上一篇: 电源管理之android内核suspend to disk的实现(七)--方案的选择与问题解决
下一篇: 电源管理之android内核suspend to disk的实现(九)--tuxonice实现方案
中華田園犬
博客等级 码龄16年 349粉丝 76原创
评论 6
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值