mtk低压充电关机充电关机动画显示

news2024/12/23 5:06:22

lk下充电:

在启动时读取电压小于BATTERY_LOWVOL_THRESOLD便会到lk循环充电,这里的BATTERY_LOWVOL_THRESOLD是3.45v

  • 1、mtk_battery.c:
    通过fg计算电池充电电流,电池温度等
  • 2、mtk_charger_intf.c:
    在mtk_charger_init_list数组添加对应IC的probe去做charger init
    charger init
    根据回调ops获取充电信息info,IC使能等
  • 3、mtk_charger.c:
    充电使能:charger_enable_charging
    充电保护状态,低电判断:is_low_battery, check_low_battery, check_bat_protect_status
    高于3.45v才会进入kernel,进入关机充电,显示关机充电动画,可以开机
    在这里插入图片描述
    充电电流设置:select_charging_current_limit
    充电器是否在位,电池是否在位:upmu_is_chr_det, is_battery_on
    power path是否支持:charger_enable_power_path

关机充电&&动画显示:

电池电压高于3.45v,boot_mode select中判断是否是关机充电:kernel_power_off_charging_detection,确定是KERNEL_POWER_OFF_CHARGING_BOOT之后会进入关机充电模式
在lk platform.c中判断是关机充电之后,在显示一帧图片之后,会继续往下走,进入kernel,ramdisk起一部分服务,其中包括关机充电服务,kpoc_charger

  • 1、kpoc_charger:
    可以参考:
    https://www.cnblogs.com/sayhellowen/p/6510633.html
    总结流程就是:
  • vendor/mediatek/proprietary/external/charger: 充电控制
  • 从charger下的main.c中的main开始kpoc charger:
  • 拉起healthd服务
    charging_control下主要有两个线程uevent_thread_routine和draw_thread_routine,分别去负责事件通知,和打开fb设备通过ioctl和kernel层驱动层交互显示动画
    draw_thread_routine线程中的draw_with_interval中有一段时间的循环控制,这个函数操作图标显示和背光开关,可以通过按键key trigger
    在这里插入图片描述
  • bootlogo.cpp:充电动画版本确认,动画绘制方式以及其他参数的初始化,充电动画logo初始化,通过它来显示充电动画的图片和显示充电电量,应该就是获得充电图片的在文件系统中的位置吧,方便后面调用指定图片

libshowlogo:

可以参考:
https://www.cnblogs.com/sayhellowen/p/6510633.html
总结流程是:

  • vendor/mediatek/proprietary/external/libshowlogo: 动画显示
  • libshowlogo是根据确认的不同的动画显示版本来显示不同样式的动画
  • 从一个对外接口show_battery_capacity开始分析:
    show_battery_capacity:
    主要是下面的 fill_animation_battery_by_ver:根据不同版本来显示动画
    init_charging_animation_ui_dimension:主要函数,对屏的分辨率大小确认,若是动画由部分错位一般就是这里分辨率不对,或者坐标不对,对应调节就是
  • fill_animation_battery_new:主要函数,动画显示和填充函数:

动画资源:

  • 在vendor/mediatek/proprietary/bootable/bootloader/lk/dev/logo下放置图片资源,
    具体的根据对应logo分辨率来判别:BOOT_LOGO=xxx

动画原理:

  • 有一张图片来作为显示的背景图,然后有一张图片是很细的一条填充线,来填充到背景图片中,然后有10张静态图来根据不同容量大小拼接显示容量图,所以我们看到是动画是由背景+已拼接容量图+线条填充+数字图片+%图片

低电量充电显示的动画是由[fhd_bat_10_01.bmp~ fhd_bat_10_01.bmp]这10张静态图片组成,针对verion 1.
充电背景图片[fhd_bat_bg.bmp] 共1张,针对verion 1.
正常充电填充图片[fhd_bat_img.bmp] 共1张,针对verion 1.
充电时动画显示是由[fhd_bat_animation_01.bmp~ fhd_bat_animation_10.bmp] 这10张静态图片组成,针对verion 1.
数字图片[fhd_num_0.bmp~ fhd_num_9.bmp]共10张,,针对verion 1.
百分比图片[fhd_mun_percent.bmp] 共1张 ,针对verion 1.
100%电量图[fhd_bat_100.bmp] 共1张 ,针对verion 1.
低电量图片[fhd_low_battery.bmp] 共1张 ,未见过此情况 。
过电压图片[fhd_change_ov.bmp] 共1张,未见过此情况 。
电压过低的图片[fhd_low_voltage.bmp] 共1张,未见过此情况 。
Kernel图片[fhd_kernal.bmp] 共1张 ,
关机插入充电器显示第一张图片[fhd_uboot.bmp] 共1张 ,mt_disp_show_boot_logo();方法调用,入口函数为platform_init();

  • fill_rect_with_content:主要函数,对显示资源做格式转换和送显,看是argb888还是rgb565
  • fill_rect_with_content_by_16bit_argb8888:主要函数,这里对图片做转换,还有可以设置lcd翻转rotation,

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1818862.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

jsl+rs???企业信用系统,秒了~

文章目录 写在前面流程分析521412 加速乐第一次请求第二次请求第三次请求 瑞数看看效果秒了~ 本文仅供参考学习使用,不得用于非法盈利,如有侵权,请联系作者删 写在前面 好久没更新了,送给有缘人 目标网站:aHR0cHM6Ly9…

周四 A股震荡走低,行情总结

文章正文 周四,A股全日震荡走低,上证指数收跌0.28%,深成指跌近0.创业板指跌0.09%。猪肉、有色金属、中药、磷化工、煤炭、房地产、白酒行业跌幅靠前。科特估概念股掀起20cm涨停潮,半导体、机器人、消费电子、光伏、虚拟电厂概念股…

C++ ─── STL 以及string

前言:什么是STL STL(standard template libaray-标准模板库):是C标准库的重要组成部分,不仅是一个可复用的组件库,而且 是一个包罗数据结构与算法的软件框架 STL的六大组件 1. 为什么学习string类? 1.1 C语言中的字符…

CUDA和Pytorch安装记录

1、关键点&#xff1a; 显卡算力 < cuda runtime version < cuda driver version 显卡算力&#xff1a;根据显卡型号查表获得。https://en.wikipedia.org/wiki/CUDA cuda runtime version&#xff1a;GPU的编程平台版本。 cuda driver version&#xff1a;显卡驱动版本。…

Linux网络编程:高级IO

目录 前言&#xff1a; 初识五种IO模型 初识高级IO 同步IO和异步IO 1.再谈五种IO模型 1.1.阻塞IO 1.2.非阻塞IO 1.3.信号驱动IO 1.4.IO多路复用 1.5.异步IO 前言&#xff1a; 在我们过去的学习中&#xff0c;我们对于IO的认识局限于input、output&#xff0c;也就是输…

美图公司AI短片创作工具MOKI工具震撼发布:自动生成助力创作者高效产出

美图公司在2024年6月12日举办的第三届美图影像节上&#xff0c;正式发布了全新的AI短片创作工具MOKI。这款工具以其独特的功能和高效的创作流程&#xff0c;为视频创作领域注入了新的活力。 MOKI的核心功能在于其能够自动生成分镜图&#xff0c;并将其转换为视频素材。用户只需…

Dorkish:一款针对OSINT和网络侦查任务的Chrome扩展

关于Dorkish Dorkish是一款功能强大的Chrome扩展工具&#xff0c;该工具可以为广大研究人员在执行OSINT和网络侦查任务期间提供强大帮助。 一般来说&#xff0c;广大研究人员在执行网络侦查或进行OSINT信息收集任务过程中&#xff0c;通常会使用到Google Dorking和Shodan&…

基于JSP的超市管理系统

你好呀&#xff0c;我是计算机学长猫哥&#xff01;如果有相关需求&#xff0c;文末可以找到我的联系方式。 开发语言&#xff1a;Java 数据库&#xff1a;MySQL 技术&#xff1a;JSP MyBatis 工具&#xff1a;IDEA/Eclipse、Navicat、Maven 系统展示 员工管理界面图 管…

[vue2]深入理解vuex

本节内容 概述初始化仓库定义数据访问数据修改数据处理异步派生数据模块拆分案例-购物车 概述 vuex是一个vue的状态管理工具, 状态就是数据 场景 某个状态在很多个组件使用 (个人信息)多个组件 共同维护 一份数据 (购物车) 优势 数据集中式管理数据响应式变化 初始化仓库 …

30字以内免费翻译维吾尔语,汉维翻译工具推荐,维吾尔文字母OCR识别神器《维汉翻译通》App!

维吾尔文OCR文字识别 《维汉翻译通》App内置的OCR技术&#xff0c;能够快速识别图片中的文字和字母&#xff0c;无论是路标、菜单还是书籍&#xff0c;都能迅速转换为用户所需的语言&#xff0c;让语言障碍不再是问题。针对维吾尔语更是进行了专门的优化&#xff0c;即便是手写…

【Ardiuno】实验ESP32单片机自动配置Wifi功能(图文)

这里小飞鱼按照ESP32的示例代码&#xff0c;实验一下wifi的自动配置功能。所谓的自动配置&#xff0c;就是不用提前将wifi的名称和密码写到程序里&#xff0c;这样可以保证程序在烧录上传后&#xff0c;可以通过手机端的软件来进行配置&#xff0c;可以避免反复修改代码&#x…

事件、方法实现 on_radioGreen_clicked ,on_chkBoxUnder_clicked,Qfont,QPalette

Vertical Layout 、Horizontal Layout 实验窗体自适应布局 接上篇界面布局&#xff0c; 实验checkBox、radioBox 的事件槽&#xff0c; 使用Qfont组件变更纯文本框QPlainTextEdit中字体的下划线、加粗、斜体效果 使用调色板组QPalette变更纯文本框QPlainTextEdit中文本颜色 UI…

Qt全局快捷键QGlobalHotKey的自研之路

这两天对Qt的快捷键格外感兴趣。 前两天在使用QHotKey的过程中&#xff0c;发现不能定义小键盘键盘码&#xff0c;自己二次修改了该库之后已经可以设置小键盘快捷键了。文章在这里&#xff1a;Qt第三方库QHotKey设置小键盘数字快捷键。 昨天突发奇想&#xff1a;目前所有的快…

20240613解决飞凌的OK3588-C的核心板的USB3.0接口不读U盘的问题

20240613解决飞凌的OK3588-C的核心板的USB3.0接口不读U盘的问题 2024/6/13 15:21 缘起&#xff0c;由于USB3.0的CC芯片在飞凌的OK3588-C的开发板的底板上&#xff0c;一切正常。 如果你单独使用核心板&#xff0c;很容易出现这个问题【省成本没有使用CC芯片】&#xff1a;不读U…

VScode中连接并使用docker容器

前提条件&#xff1a; 1.在windows下安装Docker Desktop(方法可见下面的教程) Docker Desktop 安装使用教程-CSDN博客 2.在vscode安装3个必备的插件 3.先在ubuntu中把docker构建然后运行 4.打开vscode&#xff0c;按下图顺序操作 调试好之后上传到git上&#xff0c;然后后面…

随心笔记,第六更

目录 一、 三步构建 XML转成java bean 1.XML转XSD 2.XSD转JavaBean 3.jaxb 工具类 4.测试 &#x1f4e2;&#x1f4e2;&#x1f4e2;&#x1f4e3;&#x1f4e3;&#x1f4e3; 哈喽&#xff01;大家好&#xff0c;我是「Leen」。刚工作几年&#xff0c;想和大家一同进步&am…

Java中Transactional在不同方法间的穿透性,rollbackFor参数含义

哈喽&#xff0c;大家好&#xff0c;我是木头左&#xff01; 在Java开发中&#xff0c;经常会遇到需要在一个事务中执行多个操作的场景。为了确保这些操作的原子性&#xff0c;可以使用Spring框架提供的Transactional注解来实现事务管理。然而&#xff0c;在实际开发过程中&…

Centos: ifconfig command not found且ip addr查不到服务器IP

前段时间部门新派发了服务器&#xff0c;让我过去使用U盘装机&#xff0c;装完后使用ifconfig查不到服务器IP地址&#xff0c;ip addr也是查不到 ifconfig&#xff1a;command not found (这两个图片先用虚拟机的替代一下) 在网上找资料(CSDN&#xff0c;博客园&#xff0c;知乎…

【权威出版/稳定检索】2024年气象应用、勘查与灾害应急国际会议(AEMT 2024)

2024 International Conference on Meteorological Applications, Exploration, and Disaster Emergency Response 2024年气象应用、勘查与灾害应急国际会议 【会议信息】 会议简称&#xff1a;AEMT 2024 大会时间&#xff1a;请查看官网 截稿时间&#xff1a;点击查看 大会地…

自动化办公03 用xlrd和xlwt库操作excel.xls文件(老版本)

目录 一、读操作 二、写操作 三、设置单元格格式 0.综合案例 1.设置行高和列宽 2.设置字体样式 3.设置边框样式 4.设置对齐方式 5.设置背景颜色 6.合并单元格 四、 xlutils修改Excel⽂件内容 1.安装 2.使用 一、读操作 import xlrd# 1. 打开excel文件 wb xlrd.op…