MTK6577+Android log端口设置
一些缩写简称:
AP:application processer,应用处理器
MD:
MT6577支持 4个UART,UART在无线通信基带芯片组(baseband chipset)和外设间提供全双工串行通信通道,UART的方块图如下图:
图1
MT6577默认的串口分配如下图:
图2
1. 产品串口分配:
|
模块 |
UART1 |
底部的扩展串口/debug口 |
UART2 |
TD3026D北斗 |
UART3 |
MT6628 GPS/BT |
UART4 |
LF/HF/UHF/1D |
2. Bootloader和kernel中日志端口设置
(1) Preloader
AP和MD log port(日志端口)定义,相关的CFG_UART_LOG和CFG_UART_META配置,在xxx\mediatek\custom\project_name\preloader\inc\cust_bldr.h中定义
#define CFG_LOG_BAUDRATE (921600) #define CFG_META_BAUDRATE (115200) #define CFG_UART_LOG (UART1) //(UART4) #define CFG_UART_META (UART1)
CFG_UART_LOG用于定义AP日志端口,CFG_UART_META用于定义MD/META日志端口。
(2) UBoot
如果定义了__ENABLE_UART_LOG_SWITCH_FEATURE__,UBoot会采用和Preloader一样的日志端口。可以通过调用get_uart_port_id()来获取preloader中采用的UART端口。
如果没有定义__ENABLE_UART_LOG_SWITCH_FEATURE__,那么UBoot中就直接采用UART4作为AP日志端口。
相关代码如下:
#ifdef __ENABLE_UART_LOG_SWITCH_FEATURE__ if(get_uart_port_id() == 1){ mtk_serial_set_current_uart(UART1); mtk_uart_power_on(UART1); }else{ mtk_serial_set_current_uart(UART4); mtk_uart_power_on(UART4); } #else mtk_serial_set_current_uart(UART4); mtk_uart_power_on(UART4); #endif
t的AP日志端口选择关系如下图:
图3
从上面的介绍可以看出MTK6577的日志端口只能用UART1或是UART4。
(3) Kernel
要么UBoot日志端口设置为NUL,或要么Kernel日志端口设置为NULL,这种情况下,我们采用kernel日志端口设置;当UBoot日志端口设置不同于Kernel日志端口设置,我们采用UBoot日志端口设置。
如果UBoot和kernel日志端口设置都不为NULL,我们的优选选择是UBoot的设置,而且我们要记住,UBoot设置中不能使用UART2和UART3。