MTK 平台,可以不用在焊接串口线的情况下,通过usb口来打印串口日志。User版本打开各个阶段uart log(UART log),修改如下:
1. Preloader 阶段
文件:bootloader/preloader/platform/${plateform}/default.mak
修改:CFG_USB_UART_SWITCH :=1
注意:有些平台改成了 MTK_UART_USB_SWITCH
2. LK 阶段
文件:rlk6795_lwt_m.mk (根据平台选择文件)
修改:DEFINES += WITH_DEBUG_UART=1(1=enable)
3. cmdline的修改
文件:vendor/mediatek/proprietary/bootable/bootloader/lk/app/mt_boot/mt_boot.c
修改:
#ifdef USER_BUILD sprintf(cmdline,"%s%s",cmdline," printk.disable_uart=0"); // 需修改此文件所有的disable_uart=1, 1->0, 即可打开uart log #else sprintf(cmdline,"%s%s",cmdline," printk.disable_uart=0 ddebug_query=\"file *mediatek* +p ; file *gpu* =_\""); #endif
4. Kernel 阶段
文件:config 文件
修改:MTK_UART_USB_SWITCH = yes(yes = enable)
5. 开机到桌面后
开机到桌面后,手机uart log停止输出?
文件:kernel-3.18/kernel/printk/printk.c
修改:
void mt_disable_uart(void)
{
if (mt_need_uart_console == 0)
- printk_disable_uart = 1;
+ printk_disable_uart = 0;
}
总结:
1. 查看了修改,基本思想是设置usb 的寄存器,应该是设置成串口模式了,所以可以吐出串口日志。
2. cmdline 里面,传入了不同的参数,kernel会通过这些参数加载串口驱动。(user版本要注意这一点)