MT8735 andorid7.0 充电调试总结(2)——电池驱动流程关键代码分析

本文详细分析了MT8735在Android7.0下电池驱动的关键代码,包括电池初始化、电量计算、充电算法和温度监控等流程。重点讨论了battery_meter_initial()函数及其内部的电量计初始化、电池信息获取和充电状态监测等步骤,为理解电池驱动提供了清晰的路径。
摘要由CSDN通过智能技术生成

battery_common.c首先是进行电池驱动的一些初始化工作,之后调用函数

kthread_run(bat_thread_kthread,NULL, "bat_thread_kthread");创建一个线程。这个线程每10秒钟执行一次,里面会调用BAT_thread();在这个函数里面完成的电池驱动的大部分主要事务。

//Battery_common.c (drivers\kernel-3.18\drivers\power\mediatek)1548442017/11/1

void BAT_thread(void)
{
static kal_bool battery_meter_initilized = KAL_FALSE;
static int first_time_update;


if (battery_meter_initilized == KAL_FALSE) {
battery_meter_initial();/* move from battery_probe() to decrease booting time */
BMT_status.nPercent_ZCV = battery_meter_get_battery_nPercent_zcv();
battery_meter_initilized = KAL_TRUE;
}


mt_battery_charger_detect_check();
if (fg_battery_shutdown)
return;


mt_battery_GetBatteryData();
if (fg_battery_shutdown)
return;


if (BMT_status.charger_exist == KAL_TRUE)
check_battery_exist();


mt_battery_thermal_check();
mt_battery_notify_check();



if (first_time_update == 0) {
mt_battery_update_status();
if (BMT_status.charger_exist == KAL_TRUE) {
mt_battery_CheckBatteryStatus();
mt_battery_

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值