android 快速开机启动,MTK6577+Android之快速开机
MTK6577+Android之快速开机
今天测试了关机电流,就是长按power按键,弹出下图:
图1
选择Power off(关机)后发现电流还有25mA,和短按进入挂起时电流一样。但为什么关机是电流还有这么高了,而且在关机时电源指示灯还是亮的,那说明就没有真正关机。此时我按下power按键,设备重新启动,但很快就进入系统(大概9s),比正常的拔掉电池后开机的29s短了不少。
难道这就是快速开机(ipo: instant power on)吗?MTK工程文件下
\mediatek\config\hsimobile77_ics2\projectconfig.mk
MTK_IPO_SUPPORT=yes
通过MTK_IPO_SUPPORT的设置来决定是否打开快速启动,如果为yes表示打开,否则为no。
关机的时候最后会调用pm_power_off()来关机的,见
\mediatek\platform\mt6577\kernel\core\core.c文件相关代码:
void __initmt6577_init(void)
{
unsigned int tmp;
pm_power_off = mt6577_power_off;
#ifdefined(CONFIG_CACHE_L2X0)
writel(L2X0_DYNAMIC_CLK_GATING_EN,PL310_BASE + L2X0_POWER_CTRL);
writel(readl(PL310_BASE +L2X0_PREFETCH_CTRL) | 0x40000000, PL310_BASE + L2X0_PREFETCH_CTRL);
/*L2C data ram access latency*/
tmp = readl(PL310_BASE +L2X0_DATA_LATENCY_CTRL);
tmp &= ~((0x7 << 4) | 0x7); //clear bit[6:4] and bit[2:0]
tmp |= ((0x2 << 4) | 0x1); //3T readaccess latency & 2T setup latency
writel(tmp, PL310_BASE +L2X0_DATA_LATENCY_CTRL);
l2x0_init((void __iomem *)PL310_BASE,0x70400000, 0x8FBFFFFF);
#endif /* CONFIG_CACHE_L2X0 */
#ifdefined(CONFIG_HAVE_ARM_SCU)
scu_enable((void *)SCU_BASE);
/* set INFRA_ACP to 0x00003333 forreceiving transactions to ACP */
writel(0x00003333, INFRA_SYS_CFG_BASE +0x0F04);
#endif /* CONFIG_HAVE_ARM_SCU */
}
可以看出实际是回调mt6577_power_off()来实现关机的,它的定义在
\mediatek\custom\hsimobile77_ics2\kernel\core\src\board.c下面:
voidmt6577_power_off(void)
{
printk("core--->mt6577_power_off()\n");
/* pull PWRBB low */
rtc_bbpu_power_down();
while (1) {
printk("mt6577_power_off :check charger\n");
if (pmic_chrdet_status() ==KAL_TRUE)
arch_reset(0,"charger");
}
}
通过拉低RTC的PWRBB引脚来关机,如果判断有接入USB或是充电器,会进入关机充电流程。
关机充电时,拔出USB调用uboot的mt6577_power_off来实现关机的。
参考链接:
MTK 快速开机 技术详解
深入解析Android关机
Android 长按电源键关机整个流程小学习
android 快速开机启动,MTK6577+Android之快速开机相关推荐
- Android是怎么启动的-[Android取经之路]
摘要:本节主要来讲解Android是如何启动的 阅读本文大约需要花费10分钟. 文章首发微信公众号:IngresGe 专注于Android系统级源码分析,Android的平台设计,欢迎关注我,谢谢! ...
- Linux Redis自动启动,Redis开机启动,Linux Redis设置开机启动
Linux Redis自动启动,Redis开机启动,Linux Redis设置开机启动 >>>>>>>>>>>>>> ...
- win7开机启动项怎么设置 电脑开机启动项在哪里设置
win7开机启动项怎么设置 电脑开机启动项在哪里设置 现在的软件很多安装程序都是默认的开机启动,电脑上如果软件的开机启动项多了就会使得电脑的开机速度很慢,这个时候就需要大家手动来设置开机启动项了,那电 ...
- linux redis自动重启,Linux Redis自动启动,Redis开机启动,Linux Redis设置开机启动
Linux Redis自动启动,Redis开机启动,Linux Redis设置开机启动 >>>>>>>>>>>>>> ...
- Android8.0 开机启动脚本,Android开机启动shell脚本(Android 8.0测试OK)
Android 下做开机启动shell脚本的大致流程如下: 目录 写shell脚本 为脚本写te文件 在init.rc中启动脚本 添加Selinux权限 写shell脚本 比如新建一个init.tes ...
- android服务的启动过程,Android Service的启动过程(上)
原标题:Android Service的启动过程(上) (点击上方公众号,可快速关注) 来源:伯乐在线专栏作者 - xuyinhuan 链接:http://android.jobbole.com/85 ...
- 如何利用注册表修改开机启动程序并提高电脑开机速度!
利用注册表修改开机启动程序: 修改以下三个地方就可以了,最主要的是Run这个地方.[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersi ...
- 安卓系统开机指定APP应用启动,安卓机顶盒指定APP启动,安卓系统设置开机启动APP,安卓app开机自启动
目前市面上好多机顶盒比如创维,爱奇艺,先科机顶盒,夏新机顶盒,英菲克机顶盒等等, 都设置了开机不启动第三方应用, 开机自启动设置方法: 1. 监控RECEIVE_BOOT_COMPLETED,即开机 ...
- win7如何启动计算机,win7开机启动项怎么设置 电脑开机启动项在哪里设置
现在的软件很多安装程序都是默认的开机启动,电脑上如果软件的开机启动项多了就会使得电脑的开机速度很慢,这个时候就需要大家手动来设置开机启动项了,那电脑开机启动项在哪里设置呢?小编的电脑的系统是win7的 ...
- win10怎么设置开机启动项目_苹果mac开机启动项怎么设置
mac系统有没有开机启动项?如何设置呢?有些软件我们不需要开机启动,有些软件我们又想让它开机启动,那么mac系统下要怎么禁止或添加开机启动项呢?下面macdown小编给小伙伴详细的讲解苹果mac开机启 ...
最新文章
- 共基极放大电路_「模拟电子技术」运算放大电路的共基极、共射极、共集电极接法...
- Android之多线程工作-AsyncTask与handler
- linux 系统迁移到固态硬盘,windows 和 Linux 系统 从硬盘迁移到SSD
- openssl创建CA、申请证书及其给web服务颁发证书
- [转载] 信息系统项目管理挂靠合同(协议)范例1
- 每天自动备份网站数据,发现问题一键恢复 ——阿里云虚拟主机推出网站数据自动备份功能...
- 一键生成通讯录的软件_橙瓜码字自动写作软件,外貌描写对话描写一键生成
- 小鹏汽车窃密特斯拉实锤?前员工回应:确实上传过30万份Autopilot源码
- linux 删除和安装java
- 9种缺陷管理工具对比Bugzilla、testRail、TestLink、redmine、禅道、CODING、jira、TAPD、PingCode
- 中望CAD的引线标注格式怎么改_大神总结:CAD设计五个段位 你在哪个阶段?
- vscode离线安装vsix插件命令
- 群晖 android软件,群晖-手机端常用App
- 聚宽-彼得·林奇的成功投资策略
- 应该怎么正确向老板提加薪呢?
- R语言矩阵操作:根据值找到行号和列号
- Keras开发环境安装方法新手教程(GPU版)
- 加速度计及其飞控应用
- 微信多开方法 win10系统
- jdk8的安装及环境配置