我是靠谱客的博主 直率抽屉,最近开发中收集的这篇文章主要介绍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配置,在xxxmediatekcustomproject_namepreloaderinccust_bldr.h中定义

[cpp]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. #define CFG_LOG_BAUDRATE        (921600)  
  2. #define CFG_META_BAUDRATE       (115200)  
  3. #define CFG_UART_LOG            (UART1) //(UART4)  
  4. #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日志端口。

 

相关代码如下:

[cpp]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. #ifdef __ENABLE_UART_LOG_SWITCH_FEATURE__  
  2.     if(get_uart_port_id() == 1){  
  3.         mtk_serial_set_current_uart(UART1);  
  4.         mtk_uart_power_on(UART1);  
  5.     }else{  
  6.         mtk_serial_set_current_uart(UART4);  
  7.         mtk_uart_power_on(UART4);  
  8.     }  
  9.     #else  
  10.     mtk_serial_set_current_uart(UART4);  
  11.     mtk_uart_power_on(UART4);  
  12.     #endif  


t的AP日志端口选择关系如下图:


图3

从上面的介绍可以看出MTK6577的日志端口只能用UART1或是UART4。

 

(3)  Kernel

要么UBoot日志端口设置为NUL,或要么Kernel日志端口设置为NULL,这种情况下,我们采用kernel日志端口设置;当UBoot日志端口设置不同于Kernel日志端口设置,我们采用UBoot日志端口设置。

 

如果UBoot和kernel日志端口设置都不为NULL,我们的优选选择是UBoot的设置,而且我们要记住,UBoot设置中不能使用UART2和UART3。

最后

以上就是直率抽屉为你收集整理的MTK6577+Android log端口设置的全部内容,希望文章能够帮你解决MTK6577+Android log端口设置所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(37)

评论列表共有 0 条评论

立即
投稿
返回
顶部