x-2010
这个作者很懒,什么都没留下…
展开
-
充电IC ETA6937的一次log分析过程
VMREG与寄存器2的VOREG比较,取较小值作为电池CV电压值,本案VOREG值更小为4.4V,如后图3。ICHG结合寄存器4的ICHG可知:10011对应电流为2.45A 如后图1;ICHG需要与寄存器5的ICHG结合。寄存器0x0: 0x1101 0000 (寄存器0x7: 0x00000 0000(寄存器0x3: 0x0101 0100(寄存器0x4: 0x0011 0010(寄存器0x5:0x1001 0100(原创 2024-05-19 12:45:00 · 36 阅读 · 0 评论 -
充电与电池
电池BC1.2识别错误很多时候是波形受到干扰,所以首先要确认硬件收到的波形是否正确。CDP:DCP:SDP:Design notice中的介绍,其中寄存器的BAT_COMPVCLAMPdefault是0,指的是ic默认是0。Code初始化时会去拿mt6370.dtsi中的值设置进RG中。原创 2024-05-17 18:05:57 · 35 阅读 · 0 评论 -
MTK的软件下载
在Option->Tracing->DA_log选项中,将DA_log_channel设为usb. DA_log_level有三个选项:info,debug,trace, 三个选项的区别是log量的多少,从log量从少到多的顺序为info->debug->trace。一般用于debug,选择debug即可。设置完成之后,直接做下载操作即可。如果没能找到相应的解决办法,需要提CR,详细描述问题现象,问题必现的路径,做过的对比试验等,并提供download fail的tool log和uart log。原创 2024-05-06 21:28:21 · 107 阅读 · 0 评论 -
踩内存问题分析方法
比较麻烦的在于程序奔溃点在之后的某个时间出现。此时array为全局数组,则被踩坏的内存也属于全局数组(除非array定义在全局区域的边缘),此种情况比较容易查找,通常也是由于index越界引起,可通过被踩坏内容的特征往前推,大致推导开始踩的位置,找出对应的全局变量后检查代码逻辑,看是否存在溢出。看到func没有对参数i做范围检查,极可能传进的i超过10,甚至是负数,这就无法知道被踩坏内存位置和自己内存位置,此种问题也是最难查的,因为可能每次奔溃的情况都不一样。1.1.2. 栈溢出。原创 2024-01-06 16:44:27 · 1382 阅读 · 0 评论 -
死机重启不开机
这种情况的原因是panic或HWT流程卡住导致HW reboot了,需要参考last kmsg,按普通的kernel panic或HWT分析,找问题的原因。HW reboot没走任何软件流程,是直接复位的,无法知道CPU处于什么状态,因为重启后什么都丢了,不像kernel panic或HWT有详尽的CPU寄存器和调用栈参考。1/5:表示HW reboot(如果fiq step不为0则是有发生panic然后才发生的HW reboot,此时应该先看panic),看门狗发出FIQ还是无法得到响应,只能硬件复位。原创 2024-01-05 14:02:26 · 926 阅读 · 0 评论 -
CAMERA调试
1.1. kernel-4.19\arch\arm\configs\k39tv1_bsp_1g_k419_debug_defconfig 与 kernel-4.19\arch\arm\configs\k39tv1_bsp_1g_k419_defconfig。在config_static_metadata.sensor.xxx.h文件中将 CONFIG_ENTRY_VALUE(MTK_SENSOR_INFO_TIMESTAMP_SOURCE_REALTIME, MUINT8)改为。原创 2023-12-14 18:27:43 · 175 阅读 · 0 评论 -
NVRAM相关
假设修改的是NVRAM_EF_IMS_PROFILE_LID这只NVRAM的默认值,它的文件名前缀MT79,升级前的NVRAM_EF_IMS_PROFILE_LID_VERNO号是000,修改默认值后将NVRAM_EF_IMS_PROFILE_LID_VERNO修改为001,那么Download Only升级前/data/nvram/md/NVRAM/NVD_DATA/目录中就有MT79_000这只文件。里面存的是普通NVRAM,2G RF driver NVRAM,3G RF driver NVRAM。原创 2023-12-07 14:34:32 · 223 阅读 · 0 评论 -
TP触摸屏调试
在系统亮屏或灭屏时,会调用回调tpd_fb_notifier_callback,并通过参数data实时传入FB_BLANK_UNBLANK(亮屏)与FB_BLANK_POWERDOWN(灭屏)的值,从而在亮屏时queue_work调度任务touch_resume_work运行并执行敦泰的resume(g_tpd_drv->resume(NULL)),灭屏时cancel_work_sync挂起任务touch_resume_work并执行敦泰的suspend(g_tpd_drv->suspend)。原创 2023-11-11 15:54:35 · 1281 阅读 · 0 评论 -
LCD调试
BOOT_LOGO = hd720 --- 根据屏分辨率来选择开机logo 位置在 vendor\mediatek\proprietary\bootable\bootloader\lk\dev\logo。后续所有围绕lcd的驱动处理,都会回到上面nt35521_hd_dsi_vdo_truly_nt50358_lcm_drv中所注册的函数。lcm_drv->init_power 对应 lcm_init_power --- 上电。--- 主要是跑屏初始化列表寄存器。原创 2023-11-04 16:16:42 · 193 阅读 · 0 评论 -
Flash ddr调试
流程:先确认所使用DDR类型(eMCP或分离式DDR+eMMC,可与项目经理确认),确认完DDR类型后,在官网online上面QVL查询是否有对应时序,若无,则可让flash供应商提供时序。大概意思为先读取eMMC firmware的emmc id,再与解析后的xlm时序表中的emmc id做遍历,若找到,则初始化ddr。--- CUSTOM_CONFIG_MAX_DRAM_SIZE的大小不能小于实际DRAM大小,DRAM会自适应物理DRAM的size。背景: Android T。原创 2023-06-17 17:18:13 · 523 阅读 · 0 评论