rk3399出现UART2串口打印异常问题

问题描述:

一开始上电的时候uart2串口出现了乱码还有部分uboot的log打印信息(通过飞线接到串口抓到),如下图所示:
在这里插入图片描述

然后剩下的部分uboot的log打印出现到了debug串口uart4中,

分析修改要达到的目的:让uart4 debug打印正常,uart2上的打印切换到uart4,关闭掉uart2,避免uart2在一上电和uboot状态的时候出现打印乱码和部分uboot的log信息,。

修改如下:
说明:

SDK版本:RK3399 LINUX SDK V0.1_20170117
对比看了下几个版本的SDK,要在安卓10以后的SDK才支持自己配置ddr uart信息,之前的SDK应该是不支持的,所以我这边找到RK3399 android10的SDK来生成自己定制的ddr bin和编译较新版本的loader文件。

涉及的文件:
./rkbin/RKBOOT/RK3399MINIALL.ini
./rkbin/bin/rk33/rk3399_ddr_800MHz_v1.24.bin
./rkbin/tools/ddrbin_tool_user_guide.txt
./rkbin/tools/ddrbin_param.txt

1、通过查看rkbin/RKBOOT/RK3399MINIALL.ini,确认当前uboot使用的是哪个ddr bin,一般rk的SDK代码会默认有三个不通频率值的ddr bin文件备用,我这里修改的ddr bin是rk3399_ddr_800MHz_v1.24.bin文件;

2、修改串口的参数ddrbin_param.txt,我这里使用的是uart4,因此参数设置如下:
uart id=4
uart iomux=0
uart baudrate=115200
具体的参数设置可以查看ddrbin_tool_user_guide.txt文件和cpu的datasheet TRM来修改。

3、然后通过sudo ./ddrbin_tool ddrbin_param.txt …/bin/rk33/rk3399_ddr_800MHz_v1.24.bin重新生成rk3399_ddr_800MHz_v1.24.bin,注意生成的bin要带上目录,否则可能会失败:rk3399_ddr_800MHz_v1.24.bin

4、修改RK3399MINIALL.ini配置文件

--- a/rkbin/RKBOOT/RK3399MINIALL.ini
+++ b/rkbin/RKBOOT/RK3399MINIALL.ini
@@ -2,19 +2,19 @@
 NAME=RK330C
 [VERSION]
 MAJOR=1
-MINOR=15
+MINOR=26
 [CODE471_OPTION]
 NUM=1
-Path1=tools/rk_tools/bin/rk33/rk3399_ddr_800MHz_v1.15.bin
+Path1=bin/rk33/rk3399_ddr_800MHz_v1.24.bin
 Sleep=1
 [CODE472_OPTION]
 NUM=1
-Path1=tools/rk_tools/bin/rk33/rk3399_usbplug_v1.15.bin
+Path1=bin/rk33/rk3399_usbplug_v1.26.bin
 [LOADER_OPTION]
 NUM=2
 LOADER1=FlashData
 LOADER2=FlashBoot
-FlashData=tools/rk_tools/bin/rk33/rk3399_ddr_800MHz_v1.15.bin
-FlashBoot=tools/rk_tools/bin/rk33/rk3399_miniloader_v1.15.bin
+FlashData=bin/rk33/rk3399_ddr_800MHz_v1.24.bin
+FlashBoot=bin/rk33/rk3399_miniloader_v1.26.bin
 [OUTPUT]
-PATH=rk3399_loader_v1.15.115.bin
+PATH=rk3399_loader_v1.24.126.bin

5、编译loader文件拷贝到rkbin/bin/rk33/目录

u-boot 下,执行:
./make.sh loader

sdk目录下:
./mkimage.sh
生成到rockdev下

6、修改uboot的编译脚本build/mk-uboot.sh(不同SDK可能有些许区别,新版的SDK好像直接在uboot目录下能编译loader文件即可),我这里是旧版本的LINUX SDK的代码,修改如下:

diff --git a/build/mk-uboot.sh b/build/mk-uboot.sh
index 0e422a6..6925bd4 100755
--- a/build/mk-uboot.sh
+++ b/build/mk-uboot.sh
@@ -80,16 +80,16 @@ EOF
 elif [ "${CHIP}" == "rk3399" ]; then
        $TOOLPATH/loaderimage --pack --uboot ./u-boot-dtb.bin uboot.img 0x200000 --size 1024 1

-       tools/mkimage -n rk3399 -T rksd -d ../rkbin/bin/rk33/rk3399_ddr_800MHz_v1.15.bin idbloader.img
-       cat ../rkbin/bin/rk33/rk3399_miniloader_v1.15.bin >> idbloader.img
+       tools/mkimage -n rk3399 -T rksd -d ../rkbin/bin/rk33/rk3399_ddr_800MHz_v1.24.bin idbloader.img
+       cat ../rkbin/bin/rk33/rk3399_miniloader_v1.26.bin >> idbloader.img
        cp idbloader.img ${OUT}/u-boot/

-       tools/mkimage -n rk3399 -T rkspi -d ../rkbin/bin/rk33/rk3399_ddr_800MHz_v1.15.bin idbloader-spi.img
+       tools/mkimage -n rk3399 -T rkspi -d ../rkbin/bin/rk33/rk3399_ddr_800MHz_v1.24.bin idbloader-spi.img
        cat ../rkbin/bin/rk33/rk3399_miniloader_spinor_v1.14.bin >> idbloader-spi.img
        cp idbloader-spi.img ${OUT}/u-boot/spi

-       cp ../rkbin/bin/rk33/rk3399_loader_v1.12.112.bin ${OUT}/u-boot/
-       cp ../rkbin/bin/rk33/rk3399_loader_spinor_v1.15.114.bin ${OUT}/u-boot/spi
+       cp ../rkbin/bin/rk33/rk3399_loader_v1.24.126.bin ${OUT}/u-boot/
+       #cp ../rkbin/bin/rk33/rk3399_loader_spinor_v1.15.114.bin ${OUT}/u-boot/spi

        cat >trust.ini <<EOF

6、重新编译uboot即可,烧录的时候使用最新编译出来的loader文件。

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

零意@

您的打赏将是我继续创作的动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值