概述
-
一、通用
-
adb root // user版本adb root之后就可以cat节点
-
adb shell
-
adb reboot // 重启
-
reboot
-
reboot -p // 关机
-
adb remount
-
adb pull /data/media/0/mtklog e:mtklog/
-
adb push e:mtklog/ /data/media/0/mtklog // push之前需要adb remount
-
rm -r /data/media/0/mtklog
-
-
git add --all && git commit -m "before modify" // 保存调试现场
-
-
adb stop // 仅重启android,不重启kernel
-
adb start
-
-
二、调试
-
1. 查看内核log
-
cat /proc/kmsg | grep "tp|lcm" // 容易断
-
cat /dev/kmsg | grep "tp|lcm" // row不会断
-
-
导出:adb shell cat /proc/kmsg > e:kernel.log
-
-
2. 查看上层log
-
查看:
-
logcat | grep "FingerprintHal"
-
导出:
-
logcat | grep "FingerprintHal" > log.txt
-
adb logcat > d:log.txt
-
-
3.dmesg充当串口log -- 但是无preloader与lk的log
-
增大内核缓冲区 - 修改kernel-3.18kernelprintkprintk.c
-
-332
-
+332
-
-
adb shell dmesg > log.log //查看内核缓冲区log(包括开机log,同串口log)
-
-
4. 查看input上报信息: tp,keypad,sensor
-
getevent -i
-
getevent -t /dev/input/eventX
-
-
4.1 getevent -l /dev/input/eventX // 可以查看键值坐标,如:
-
-
// =========虚拟按键按下所报键值===========
-
EV_ABS ABS_MT_TOUCH_MAJOR 00000014
-
EV_ABS ABS_MT_TRACKING_ID 00000000
-
EV_KEY BTN_TOUCH DOWN
-
EV_ABS ABS_MT_POSITION_X 0000003c // 换成十进制为(60,2100)
-
EV_ABS ABS_MT_POSITION_Y 00000640 // 换成十进制为(60,2100)
-
EV_SYN SYN_MT_REPORT 00000000
-
EV_SYN SYN_REPORT 00000000
-
EV_KEY BTN_TOUCH UP
-
EV_SYN SYN_MT_REPORT 00000000
-
EV_SYN SYN_REPORT 00000000
-
-
5. 查看pin脚模式- 特别注意:输入输出 dir:0-in 1-out
-
cat /sys/class/misc/mtgpio/pin
-
PIN:MODE,PULL_SEL,DIN,DOUT,PULL EN,DIR,IES,SMT
-
0: 1 1 1 0 1 0 1 0
-
1: 0 0 0 0 1 0 1 0
-
-
写值
-
echo "-w=99:0 1 0 0 0 0 0 1" > /sys/class/misc/mygpio/pin
-
-
6. 查看中断
-
1. 查看中断是否注册成功
-
cat /proc/interrupts
-
CPU0 CPU1
-
29: 0 0 GIC 29 arch_timer
-
...
-
196 0 0 GIC 196 mtk-tpd
-
...
-
298: 376 mt-eint 10 TOUCH_PANEL-eint
-
-
2. 查看是否有中断计数是否增加
-
cat /proc/interrupts | grep " TOUCH_PANEL-eint "
-
298: 376 mt-eint 10 TOUCH_PANEL-eint // 376
-
cat /proc/interrupts | grep " TOUCH_PANEL-eint "
-
298: 387 341 301 mt-eint 10 TOUCH_PANEL-eint // 387
-
cat /proc/interrupts | grep " TOUCH_PANEL-eint "
-
298: 399 355 309 mt-eint 10 TOUCH_PANEL-eint // 399
-
cat /proc/interrupts | grep " TOUCH_PANEL-eint "
-
298: 401 362 316 mt-eint 10 TOUCH_PANEL-eint // 401
-
-
7. 查看进程
-
root@Z PLAY:/system/bin # ps | grep mem // 查看进程
-
system 256 1 1184 384 c0051864 b6fb1310 S /system/bin/memsicp
-
-
root@Z PLAY:/system/bin # kill 256 // 杀死进程
-
-
// eng版本才能手动启动进程
-
1) adb remount
-
2) adb push
-
3) xxx &
-
root@Z PLAY:/system/bin # memsicp // 手动启动进程,不会退出
-
root@Z PLAY:/system/bin # memsicp & // 后台运行
-
-
8. 串口设置 - 板子上的TXD
-
波特率 : 921600
-
data bits : 8
-
stop bits : 1
-
parity : None
-
flow control: None
-
-
-
三、lcm
-
1. 查看机器中lcm型号:
-
cat /proc/cmdline // 包含lcm的型号(6.0有,7.0没有-需要可以自己加)
-
-
1.1 自己加:
-
alps/vendor/mediatek/proprietary/bootable/bootloader/lk/app/mt_boot/mt_boot.c
-
- //#define SERIAL_NUM_FROM_BARCODE
-
+ #define SERIAL_NUM_FROM_BARCODE
-
-
int boot_linux_from_storage(void)
-
+ snprintf(cmdline_tmpbuf, CMDLINE_TMP_CONCAT_SIZE, "lcm=%1d-%s", DISP_IsLcmFound(), mt_disp_get_lcm_id());
-
+ cmdline_append(cmdline_tmpbuf);
-
+ snprintf(cmdline_tmpbuf, CMDLINE_TMP_CONCAT_SIZE, "fps=%1d", mt_disp_get_lcd_time());
-
+ cmdline_append(cmdline_tmpbuf);
-
+ snprintf(cmdline_tmpbuf, CMDLINE_TMP_CONCAT_SIZE, "vram=%1d", DISP_GetVRamSize());
-
+ cmdline_append(cmdline_tmpbuf);
-
-
2. 查看系统分辨率
-
cat /system/build.prop | grep lcd_density // 得“240”
-
-
四、tp
-
1. 在tp还不通的时候/frameworks/base/include/ui/KeycodeLabels.h中定义了很多keyevent
-
inut keyevent 3 //home
-
inut keyevent 4 //back
-
inut keyevent 26 //power
-
-
2 通过sys节点读取
-
cat /sys/board_properties/virtualkeys.mtk-tpd // 获取软件中虚拟按键坐标
-
-
五、camera
-
1 查看是否读到id
-
cat /proc/driver/camera_info // 查看已经读到ID的camera
-
-
2 后副摄调试节点 - microhand公司自己实现
-
cat /proc/driver/dualcam_brightness // 1 -- 光线强 0 -- 光线弱 有变化说明驱动通了,但是没有虚化效果,是因为上层的宏没配
-
cat /sys/bus/platform/drivers/image_sensor/yuv_shutter // 可以获得亮度值
-
-
六、sensor
-
1.架构实现 - 两个路径的节点是一样的,cat出来也是相同的,hal层走class
-
/sys/class/misc/m_acc_misc/***
-
/sys/devices/virtual/misc/m_acc_misc/*** 有若干属性,可以读写操作
-
-
cat /sys/.../accenablenodata -- 不支持 echo 0/1 > 无作用
-
cat /sys/.../accactive -- 1(使能) echo 0 > /sys/.../accactive -- disable
-
cat /sys/.../accdelay(不常用)
-
cat /sys/.../accbatch(不常用)
-
cat /sys/.../accflush(不常用)
-
cat /sys/.../accdevnum -- 4(/dev/input/event4)
-
-
2.驱动实现
-
/sys/bus/platform/drivers/gsensor/*** 有若干属性,可以读写操作
-
-
* cat /sys/.../chipinfo -- MC3XXX Chip -- 直接打印MC3XXX Chip
-
* cat /sys/.../sensordata -- 1758 0695 1b88 -- 读地址0x00
-
cat /sys/.../cali -- 三组校准数据 -- 第二组为校准系数,上层未下发就为0
-
cat /sys/.../selftest -- 空(未设置)
-
cat /sys/.../firlen -- 0 -- 滤波长度 - 从dts获得 - 全部为0
-
cat /sys/.../trace -- 0x0000 -- mc3xxx_i2c_probe()把它设置为0
-
cat /sys/.../status -- CUST: 2 7 <-1 0> -- i2c_num direction <power_id power_vol> - 从dts获取
-
cat /sys/.../power -- 亮屏0x0041,灭屏0x0043 -- 读地址0x07
-
cat /sys/.../version -- 2.1.6 -- 打印驱动的宏
-
* cat /sys/.../chipid -- 7C-5F-5E-46 -- 读地址0x3C
-
cat /sys/.../virtualz -- 不支持
-
* cat /sys/.../regmap -- 打印所有寄存器的值
-
* cat /sys/.../orientation -- 方向 -- 从dts获取 echo 7 > /sys/.../orientation
-
cat /sys/.../accuracy -- 2(精度 - 宏设置)
-
cat /sys/.../selfcheck -- 乱码
-
cat /sys/.../validate -- 0(验证成功) -- 从0x3b读出pcode - 匹配mc3***系列芯片 - 验证成功返回0
-
-
七、马达
-
1.调试马达震动时间 1000毫秒=1秒:
-
echo 1000 > /sys/class/timed_output/vibrator/enable (节点)
最后
以上就是稳重香水为你收集整理的MTK 驱动(82)---ABD 调试命令的全部内容,希望文章能够帮你解决MTK 驱动(82)---ABD 调试命令所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复