极力推荐Android 开发大总结文章:欢迎收藏程序员Android 力荐 ,Android 开发者需要的必备技能
本篇文章主要介绍
Android
开发中的
异常重启 部分知识点,通过阅读本篇文章,您将收获以下内容:
一、lk 阶段重启
二、在kernel关机充电阶段重启
三、关闭异常掉电机制
在低电量时,插着充电器关机充电,手机会不断重启。
一、lk 阶段重启
低电量关机充电不断重启问题在lk 阶段重启的log如下
Unplugged Usb/Charger in Kernel Charging Mode Before Jumping to Kernel, Power Off
重启原因
设备支持
DEVICE_TREE_SUPPORT
,在
lk
启动
kernel
的
boot_linux_fdt
int boot_linux_fdt(void *kernel, unsigned *tags,
char *cmdline, unsigned machtype,
void *ramdisk, unsigned ramdisk_size)
{
...............
#ifdef MTK_KERNEL_POWER_OFF_CHARGING
/*Prevent the system jumps to Kernel if we unplugged Charger/USB before*/
if(kernel_charging_boot() == -1)
{
dprintf(CRITICAL,"[%s] Unplugged Usb/Charger in Kernel Charging Mode Before Jumping to Kernel, Power Off
", __func__);
#ifndef NO_POWER_OFF
mt6575_power_off();
#endif
...............
}
}
由于在
lk
阶段的电流过大,导致
charger
的电压被拉低到
4.3v
以下,因为
VCDT_LV_VTH
默认的电压是
4.3v
,所以在
detect charge
r回返回
false
,由于插充电器的原因在
power off
之后又起来导致了不断重启的现象,其中
VCDT_LV_VTH
的设置可以参考
datasheet
的设置。
解决方案
- 1)首先检查lk阶段充电电流设置的大小,注意检查
backlight_on
设置的level
。
- 2)如果是用的
swtich ic charger
,首先的开启dpm功能,dpm功能是一种保护charger vol
在大电流的情况下不被拉的很低,Vin-dpm
电压的设置范围是 4.2-4.76v
,default
的值是4.2
,一般要设置为4.5
。
- 3)如果在以上的修改还不生效,就把
VCDT_LV_VTH
值设置为4.2v
。
二、在kernel关机充电阶段重启
在kernel阶段重启有两个原因如下:
- 在关机充电时,
charger detect
存在的情况下,但是如果被识别为usb host mode
,这时就会放回false
,引起了power off
这时应该去检测usb
的id pin
硬件上是不是被拉低了
kal_bool upmu_is_chr_det(void)
{
...........
if (mt_usb_is_device()) {
battery_log(BAT_LOG_FULL,
"[upmu_is_chr_det] Charger exist and USB is not host
");
return KAL_TRUE;
} else {
battery_log(BAT_LOG_CRTI,
"[upmu_is_chr_det] Charger exist but USB is host
");
...........
}
- 在
charger
电压超过了/kernel-3.10/drivers/power/mediatek/battery_common.c#charger_hv_detect_thread
里面设置的电压,默认为6.5v
这时,就会产生cable out
,接着就会power off
三、关闭异常掉电机制
修改一下异常掉电机制代码
vendor/mediatek/proprietary/bootable/bootloader/preloader/custom/k37mv1_bsp/inc/cust_rtc.h
关闭异常掉电机制
至此,本篇已结束,如有不对的地方,欢迎您的建议与指正。同时期待您的关注,感谢您的阅读,谢谢!
如有侵权,请联系小编,小编对此深感抱歉,届时小编会删除文章,立即停止侵权行为,请您多多包涵。
既然都看到这里,领两个红包在走吧!
以下两个红包每天都可以领取
1.支付宝搜索
522398497,或扫码支付宝红包海报。
支付宝扫一扫,每天领取大红包
2.微信红包,微信扫一扫即可领取红包
微信扫一扫,每天领取微信红包
小礼物走一走,来简书关注我