MTK Android Driver:UART

1.uart口配置:
将uart log和meta配置端口配置为其他端口,空出来的uart1专门用作此功能通信调试。备注:硬件主板上只有uart1口能够飞线出来调试。修改方法:
参考:[FAQ07420]如何设置吐uart log的uart口
JB5.MP之前的版本:
alps/medaitek/custom/[$project]/preloader/inc/cust_bldr.h
#define CFG_UART_LOG    (UART4) //(UART1) 
#define CFG_UART_META  (UART4) //(UART1)
JB5.MP之后的版本:
alps\mediatek\custom\$project\preloader\cust_bldr.mak
CFG_UART_LOG :=UART4  #UART1
CFG_UART_META :=UART4 #UART1

2.提升UART port的permission,同样以UART1为例
alps/medaitek/config/[$project]/init.project.rc中,添加:
chmod 0666 /dev/ttyMT0
chown system system /dev/ttyMT0

uart物理端口与系统设备名称对应关系:
uart1--/dev/ttyMT0
uart2--/dev/ttyMT1
uart3--/dev/ttyMT2
uart4--/dev/ttyMT3

3.平台相关serialport api代码:
上层apk: 
alps\frameworks\base\core\java\android\hardware\SerialPort.java
JNI定义:
alps\frameworks\base\core\jni\android_hardware_SerialPort.cpp

4.测试方法:
1.)确认串口号,波特率,校验方式,停止位等所需的设置是否正确

2.)短接TX和RX看是否可以进行自发自收

3.)如果是连接电脑通过串口调试工具/超级终端调试,请确认串口线是否可以正常接收,发送数据。可以短接,看能不能自发自收。


5.硬件焊线
硬件焊出TX RX GND三根线连接外围通信设备,用以通信调试。

6.串口log打印方法:
1)插入UART线后,电脑会自动安装对应驱动,我的电脑-右键-设备管理器-端口:USB-to-Serial Comm Port(COM14),在此可以查询到UART对应的电脑端口号;
2) 串口打印工具
a. 电脑自带的超级终端:使用方法:
"开始"菜单-所有程序-附件-通讯-超级终端-弹出框中填写 名称&端口号,可以自动生成应用弹出界面,可以用来显示打印UART串口信息;
b)“串口工具”:网上下载
c) SecureCRT网上下载,使用方法:
connet->右键->properties 设置属性:
设置通信类型为串口:Protocol:Serial 
设置端口配置:Serial:Port:COM14

7.andori uart log eng版本也无法吐出的分析
ENG版本在开机到 Launcher之后自动关闭UART Log,从而使几乎大部分的测试在eng版本和user版本上得到一致的测试结果。
有两种种方法可以在eng版本上临时打开UART log(重启之后失效):
在超级终端窗口按下键盘的任何一个按键就可以让UART log继续吐。此种方式需 要UART的TX和RX都要连接好。 
通过修改proc参数的方式: adb shell echo 1 > /proc/mtprintk
还有一种方法可以在eng版本上面永久性打开UART Log (重启之后继续有效):
通过修改Property的方式:adb shell setprop persist.uartconsole.enable 1 (通过getprop persist.uartconsole.enable可查询属性值
参考:
[FAQ11402]JB9/KK1版本开机动画完之后UART  log停止输出问题
[FAQ10087]为什么进入Launcher界面之后UART  Log就不吐了

8.andori uart log user版本如何打开
参考:
[FAQ02495]如何在Android user 版本下打开UART  log
[FAQ03891]如何在User版本开启串口(Uart),抓取 上层Log,开启输入控制台

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。