之前在公司搞了半年多的待机功能,在这里就做一个简单的总结吧。
首先介绍下用的平台是MDM9225,也就是传说中高通的骁龙800处理器的基带方案吧。
1、如何进入待机?
MDM9225采用的仍然是Linux架构,所以呢,只需要在串口中输入待机命令,系统就会进入待机。
命令就是:echo mem > /sys/power/state &
是不是很简单,当输入完这个命令之后,AP侧就会发起待机,如果Modem侧也已经进入待机,则整个系统进入待机。
2、系统不能待机怎么办?
问题来了,进入待机只需要输入命令就OK了。但是大部分情况并不是这么顺利呀。楼主搞了半年待机,大部分都是不能进入待机的额。
首先,输入完待机命令以后你要查看串口打印,AP侧是否完成了待机指令,如果有模块没有进入待机则串口会打印出来哪些模块无法进入待机,那你就要具体查看了。
3、待机电流降不下来啊,怎么办?
一般MDM9225待机电流正常应该在5mA以下,如果超过10mA肯定有问题,那就要具体查找时哪个模块没有进入待机。
高通给提供了一套用trace32脚本来检测哪个模块没有进入待机的方法,但是trace32实在是不好用啊,主要楼主的是盗版的额,所以不推荐这个办法。
楼主有个简单有效的方法就是测量核电,用万用表测量每个核的核电压。来判断是否进入待机。
4、待机不能唤醒是神马情况?
5、现网可以待机,仪表却不能待机,为什么啊?
6、如何进行待机电流优化呢?
7、待机过程中一直有异常唤醒啊,闹哪样啊?
8、一待机就死机,还让不让人玩啦?
总之,待机会遇到很多很难缠的问题,大部分都是高通芯片的问题,但是没办法,我们还是要硬着头皮搞下去。
关于待机的问题大家有什么问题可以一起讨论下哈,我就在这里抛砖引玉额!