MTK 驱动(82)---ABD 调试命令

  1. 一、通用
  2. adb root // user版本adb root之后就可以cat节点
  3. adb shell
  4. adb reboot // 重启
  5. reboot
  6. reboot -p // 关机
  7. adb remount
  8. adb pull /data/media/0/mtklog e:mtklog/
  9. adb push e:mtklog/ /data/media/0/mtklog // push之前需要adb remount
  10. rm -r /data/media/0/mtklog


  11. git add --all && git commit -m "before modify" // 保存调试现场
  12. adb stop // 仅重启android,不重启kernel
  13. adb start
  14. 二、调试
  15. 1. 查看内核log
  16. cat /proc/kmsg | grep "tp|lcm" // 容易断
  17. cat /dev/kmsg | grep "tp|lcm" // row不会断
  18. 导出:adb shell cat /proc/kmsg > e:kernel.log
  19. 2. 查看上层log
  20. 查看:
  21. logcat | grep "FingerprintHal"
  22. 导出:
  23. logcat | grep "FingerprintHal" > log.txt
  24. adb logcat > d:\log.txt
  25. 3.dmesg充当串口log -- 但是无preloader与lk的log
  26. 增大内核缓冲区 - 修改kernel-3.18\kernel\printk\printk.c
  27. -332 #define __LOG_BUF_LEN (1 << CONFIG_LOG_BUF_SHIFT)
  28. +332 #define __LOG_BUF_LEN (1 << CONFIG_LOG_BUF_SHIFT << 5)
  29. adb shell dmesg > log.log //查看内核缓冲区log(包括开机log,同串口log)
  30. 4. 查看input上报信息: tp,keypad,sensor
  31. getevent -i
  32. getevent -t /dev/input/eventX
  33. 4.1 getevent -l /dev/input/eventX // 可以查看键值坐标,如:
  34. // =========虚拟按键按下所报键值===========
  35. EV_ABS ABS_MT_TOUCH_MAJOR 00000014
  36. EV_ABS ABS_MT_TRACKING_ID 00000000
  37. EV_KEY BTN_TOUCH DOWN
  38. EV_ABS ABS_MT_POSITION_X 0000003c // 换成十进制为(60,2100)
  39. EV_ABS ABS_MT_POSITION_Y 00000640 // 换成十进制为(60,2100)
  40. EV_SYN SYN_MT_REPORT 00000000
  41. EV_SYN SYN_REPORT 00000000
  42. EV_KEY BTN_TOUCH UP
  43. EV_SYN SYN_MT_REPORT 00000000
  44. EV_SYN SYN_REPORT 00000000
  45. 5. 查看pin脚模式- 特别注意:输入输出 dir:0-in 1-out
  46. cat /sys/class/misc/mtgpio/pin
  47. PIN:MODE,PULL_SEL,DIN,DOUT,PULL EN,DIR,IES,SMT
  48. 0: 1 1 1 0 1 0 1 0
  49. 1: 0 0 0 0 1 0 1 0
  50. 写值
  51. echo \"-w=99:0 1 0 0 0 0 0 1\" > /sys/class/misc/mygpio/pin
  52. 6. 查看中断
  53. 1. 查看中断是否注册成功
  54. cat /proc/interrupts
  55. CPU0 CPU1
  56. 29: 0 0 GIC 29 arch_timer
  57. ...
  58. 196 0 0 GIC 196 mtk-tpd
  59. ...
  60. 298: 376 mt-eint 10 TOUCH_PANEL-eint
  61. 2. 查看是否有中断计数是否增加
  62. cat /proc/interrupts | grep " TOUCH_PANEL-eint "
  63. 298: 376 mt-eint 10 TOUCH_PANEL-eint // 376
  64. cat /proc/interrupts | grep " TOUCH_PANEL-eint "
  65. 298: 387 341 301 mt-eint 10 TOUCH_PANEL-eint // 387
  66. cat /proc/interrupts | grep " TOUCH_PANEL-eint "
  67. 298: 399 355 309 mt-eint 10 TOUCH_PANEL-eint // 399
  68. cat /proc/interrupts | grep " TOUCH_PANEL-eint "
  69. 298: 401 362 316 mt-eint 10 TOUCH_PANEL-eint // 401
  70. 7. 查看进程
  71. root@Z PLAY:/system/bin # ps | grep mem // 查看进程
  72. system 256 1 1184 384 c0051864 b6fb1310 S /system/bin/memsicp
  73. root@Z PLAY:/system/bin # kill 256 // 杀死进程
  74. // eng版本才能手动启动进程
  75. 1) adb remount
  76. 2) adb push
  77. 3) xxx &
  78. root@Z PLAY:/system/bin # memsicp // 手动启动进程,不会退出
  79. root@Z PLAY:/system/bin # memsicp & // 后台运行
  80. 8. 串口设置 - 板子上的TXD
  81. 波特率 : 921600
  82. data bits : 8
  83. stop bits : 1
  84. parity : None
  85. flow control: None
  86. 三、lcm
  87. 1. 查看机器中lcm型号:
  88. cat /proc/cmdline // 包含lcm的型号(6.0有,7.0没有-需要可以自己加)
  89. 1.1 自己加:
  90. alps/vendor/mediatek/proprietary/bootable/bootloader/lk/app/mt_boot/mt_boot.c
  91. - //#define SERIAL_NUM_FROM_BARCODE
  92. + #define SERIAL_NUM_FROM_BARCODE
  93. int boot_linux_from_storage(void)
  94. + snprintf(cmdline_tmpbuf, CMDLINE_TMP_CONCAT_SIZE, "lcm=%1d-%s", DISP_IsLcmFound(), mt_disp_get_lcm_id());
  95. + cmdline_append(cmdline_tmpbuf);
  96. + snprintf(cmdline_tmpbuf, CMDLINE_TMP_CONCAT_SIZE, "fps=%1d", mt_disp_get_lcd_time());
  97. + cmdline_append(cmdline_tmpbuf);
  98. + snprintf(cmdline_tmpbuf, CMDLINE_TMP_CONCAT_SIZE, "vram=%1d", DISP_GetVRamSize());
  99. + cmdline_append(cmdline_tmpbuf);
  100. 2. 查看系统分辨率
  101. cat /system/build.prop | grep lcd_density // 得“240”
  102. 四、tp
  103. 1. 在tp还不通的时候/frameworks/base/include/ui/KeycodeLabels.h中定义了很多keyevent
  104. inut keyevent 3 //home
  105. inut keyevent 4 //back
  106. inut keyevent 26 //power
  107. 2 通过sys节点读取
  108. cat /sys/board_properties/virtualkeys.mtk-tpd // 获取软件中虚拟按键坐标
  109. 五、camera
  110. 1 查看是否读到id
  111. cat /proc/driver/camera_info // 查看已经读到ID的camera
  112. 2 后副摄调试节点 - microhand公司自己实现
  113. cat /proc/driver/dualcam_brightness // 1 -- 光线强 0 -- 光线弱 有变化说明驱动通了,但是没有虚化效果,是因为上层的宏没配
  114. cat /sys/bus/platform/drivers/image_sensor/yuv_shutter // 可以获得亮度值
  115. 六、sensor
  116. 1.架构实现 - 两个路径的节点是一样的,cat出来也是相同的,hal层走class
  117. /sys/class/misc/m_acc_misc/***
  118. /sys/devices/virtual/misc/m_acc_misc/*** 有若干属性,可以读写操作
  119. cat /sys/.../accenablenodata -- 不支持 echo 0/1 > 无作用
  120. cat /sys/.../accactive -- 1(使能) echo 0 > /sys/.../accactive -- disable
  121. cat /sys/.../accdelay(不常用)
  122. cat /sys/.../accbatch(不常用)
  123. cat /sys/.../accflush(不常用)
  124. cat /sys/.../accdevnum -- 4(/dev/input/event4)
  125. 2.驱动实现
  126. /sys/bus/platform/drivers/gsensor/*** 有若干属性,可以读写操作
  127. * cat /sys/.../chipinfo -- MC3XXX Chip -- 直接打印MC3XXX Chip
  128. * cat /sys/.../sensordata -- 1758 0695 1b88 -- 读地址0x00
  129. cat /sys/.../cali -- 三组校准数据 -- 第二组为校准系数,上层未下发就为0
  130. cat /sys/.../selftest -- 空(未设置)
  131. cat /sys/.../firlen -- 0 -- 滤波长度 - 从dts获得 - 全部为0
  132. cat /sys/.../trace -- 0x0000 -- mc3xxx_i2c_probe()把它设置为0
  133. cat /sys/.../status -- CUST: 2 7 <-1 0> -- i2c_num direction <power_id power_vol> - 从dts获取
  134. cat /sys/.../power -- 亮屏0x0041,灭屏0x0043 -- 读地址0x07
  135. cat /sys/.../version -- 2.1.6 -- 打印驱动的宏
  136. * cat /sys/.../chipid -- 7C-5F-5E-46 -- 读地址0x3C
  137. cat /sys/.../virtualz -- 不支持
  138. * cat /sys/.../regmap -- 打印所有寄存器的值
  139. * cat /sys/.../orientation -- 方向 -- 从dts获取 echo 7 > /sys/.../orientation
  140. cat /sys/.../accuracy -- 2(精度 - 宏设置)
  141. cat /sys/.../selfcheck -- 乱码
  142. cat /sys/.../validate -- 0(验证成功) -- 从0x3b读出pcode - 匹配mc3***系列芯片 - 验证成功返回0
  143. 七、马达
  144. 1.调试马达震动时间 1000毫秒=1秒:
  145. echo 1000 > /sys/class/timed_output/vibrator/enable (节点)

猜你喜欢

转载自blog.csdn.net/zhangbijun1230/article/details/80933189
MTK