600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > MTK 驱动(82)---ABD 调试命令

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

时间:2019-08-06 16:21:12

相关推荐

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

一、通用 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.18\kernel\printk\printk.c -332 #define __LOG_BUF_LEN (1 << CONFIG_LOG_BUF_SHIFT) +332 #define __LOG_BUF_LEN (1 << CONFIG_LOG_BUF_SHIFT << 5) 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 (节点)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。