MTK8765Q平台关机充电卡在第一帧画面且不能充电
一、问题描述:
关机状态下进行充电,插上充电线之后卡在第一帧画面,并且不能正常充电。
二、问题背景:
在MTK新平台8765Q,我带的项目出现了关机充电卡在第一帧画面
三、解决过程
1、抓取UART log并分析
程序不断在5162行log处循环。
第5149行log:
[ 22.022162] <0>.(0)[259:kpoc_charger]libshowlogo: [show_animation_common: init_charging_animation_ui_dimension 195] lcm_width and lcm_height= 480 , 960
对应的代码路径:alps/vendor/mediatek/proprietary/external/libshowlogo/show_animation_common.c
第5150行log:
[ 22.024004] <0>.(0)[259:kpoc_charger]libshowlogo: [show_animation_common: init_charging_animation_ui_dimension 647]default case final else
对应的代码路径:alps/vendor/mediatek/proprietary/external/libshowlogo/show_animation_common.c
通过关机充电log和相应的代码分析可知:
在新平台Q上没有对应的fwvgaplus(480*960)屏幕 分辨率。
2、修改代码
修改路径:alps/vendor/mediatek/proprietary/external/libshowlogo/show_animation_common.c
主要加入480*960这一分辨率。
3、新的问题:
修改完代码编译之后遇到如下问题:
如图所示,充电动画不能正常运行显示。
初步判断是logo和坐标参数不正确导致。
4、解决思路。
分析其坐标和对应图片的含义
目前看起来是坐标值和图片都需要调整。
(1)、以cust_display.h中的定义来看
#define CAPACITY_LEFT (172) // battery capacity center
#define CAPACITY_TOP (405)
对应左上角的坐标,请查看附件图片上的标注。
#define CAPACITY_RIGHT (307)
#define CAPACITY_BOTTOM (645)
对应右下角的坐标,注意,上面两个right - left = fwvgaplus_bat_animation_01.bmp图片的宽度。请查看附件图片上的标注。
#define NUMBER_LEFT (172) // number
#define NUMBER_TOP (245)
数字图片的左上角,
#define NUMBER_RIGHT (210)
#define NUMBER_BOTTOM (305)
数字图片的右上角,注意,right -left = fwvgaplus_num_0.bmp的宽度,bottom-top = fwvgaplus_num_0.bmp的高度
#define PERCENT_LEFT (248) // percent number_left + 2*number_width
#define PERCENT_TOP (245)
left是NUMBER_LEFT + 2*数字图片的宽度,top与NUMBER_TOP保持一致
#define PERCENT_RIGHT (296)
#define PERCENT_BOTTOM (305)
right - left = fwvgaplus_num_percent.bmp的宽度,bottom - top = fwvgaplus_num_percent.bmp的高度。
(2)、fwvgaplus_bat_animation_01.bmp~fwvgaplus_bat_animation_10.bmp动画部分图片有问题,将其放到fwvgaplus_bat_100.bmp 或者 fwvgaplus_bat_bg.bmp上看,太宽了。
相关解释图片:
5、快速解决方案:
将P平台量产软件中的fwagvplus的对应logo和其坐标移植到新平台下。
Logo路径:alps/vendor/mediatek/proprietary/bootable/bootloader/lk/dev/logo/fwvgaplus