[Android6.0][RK3399] 串口无法输入输出 串口打印乱码

Platform: RK3399
OS: Android 6.0
Version: v2017.03

    • 串口无任何输出无法输入
    • 串口有输出为乱码
    • 串口在正常输出几秒后输出为乱码

新装的电脑,安装了 minicom 后,连接上 3399 的板子无打印信息,无法输入。安装过程如下:
[Linux] 串口调试工具 Minicom 详细介绍

串口无任何输出,无法输入

minicom 工具默认配置是 tty8 ,我们采用的是 USB 转串口。执行

ls -l /dev/ttyUSB*

一下即可知道我们的串口是 ttyUSB0。
所以

sudo minicom -s

选第三项 Serial port setup  ——> A Serial Device (手动修改为 /dev/ttyUSB0) ——> F (顺便关掉硬件流控) ——> 回车 ——> Save setup as dfl
保存,保存的配置会放在 /etc/minicom/minicom.dfl 中

至此串口有输出,但是为乱码

串口有输出,为乱码

我们查看 rk3399 默认的波特率,可知其为 1500000
方法如下:

grep "baudrate" ./kernel/arch/arm64/boot/dts/rockchip/rk3399* -nir

可以看到是 rk3399-android.dtsi 文件中设置波特率

 fiq_debugger: fiq-debugger { 
 72         compatible = "rockchip,fiq-debugger"; 
            ...
 77         rockchip,baudrate = <1500000>;  /* Only 115200 and 1500000 */ 
 78         ...
 80     }; 

所以我们将 minicom 中的波特率设置为 1500000 :
选第三项 Serial port setup  ——> E Bps/Par/Bits (按 E 切换为 150000) ——> 回车 ——> Save setup as dfl

至此,串口正常输入输出。

串口在正常输出几秒后输出为乱码

这个事情发生的很莫名其妙。
合入 HDMI-IN 的 patch 后串口异常,现象为正常输出大概四秒,之后均为乱码。
回退 HDMI-IN 的 patch 后串口正常。
但是 patch 中没有任何与 Uart 有关的逻辑。

换了串口线,换插主机 USB 接口现象依旧复现。

看到 patch 中有打开几个 debug 的宏,猜测是不是数据太多了导致。
尝试将波特率从 150000 改为 115200(方法和上节相同,改 dts)
主机调试端也同样修改波特率。
问题解决。

你可能感兴趣的:(驱动移植,RockChip平台)