概述
使用了临滴 RK3568 开发板,其调试串口的默认波特率是 1500000 ,但并不是所有的 USB 转 TTL 都能使用这么高的波特率,所以我们就将波特率修改为 115200 这个比较通用的波特率。
RK3568 调试串口修改波特率的方法
- ddr 运行阶段串口波特率的修改
ddr 初始化是在 uboot 运行之前的阶段,此阶段也有日志打印,所以该阶段的波特率也需要修改,因为RK官方的 ddr 固件目前是闭源,所以修改波特率我们就修改 ddr bin 文件。
- 系统默认使用的 ddr bin 文件
rk3568 的 ddr 驱动是固定在 bin 文件中的,位于 $(RKSDK)/rkbin/bin/rk35 目录下:
从目录中可以看到 rk3568 的 ddr bin 文件有很多个,那我们系统默认使用的 bin 文件到底是哪个呢?我们可以查看 $(RKSDK)/rkbin/RKBOOT/RK3568MINIALL.ini 文件,该配置文件中注明了我们当前使用的 ddr bin 文件
由配置文件可知我们使用的 ddr bin 文件是:rk3568_ddr_1560MHz_v1.13.bin
- 修改 $(RKSDK)/rkbin/tools/ddrbin_param.txt 中的串口波特率参数,在 uart_baudrate= 的后面填入我们要设置的波特率
- 更新 ddr bin 文件
cd $(RKSDK)/rkbin/tools
./ddrbin_tool ddrbin_param.txt ../bin/rk35/rk3568_ddr_1560MHz_v1.13.bin //bin文件的名字需要和 RK3568MINIALL.ini 文件中保持一致
- uboot 阶段串口波特率的修改
修改文件 rk3588_defconfig 文件中的 CONFIG_BAUDRATE ,将其值修改为 115200
rk3588_defconfig 文件路径:
$(RKSDK)/u-boot/configs/rk3588_defconfig // $(RKSDK)是SDK存放的路径
- kernel 阶段串口波特率的修改
修改linux设备树文件 rk3568-linux.dtsi, 将 fiq-debugger 节点中的 rockchip,baudrate 参数修改为 115200 .$(RKSDK)/kernel/arch/arm64/boot/dts/rockchip/rk3568-linux.dtsi // $(RKSDK)是SDK存放的路径
fiq-debugger {
compatible = "rockchip,fiq-debugger";
rockchip,serial-id = <2>; /*默认使用的调试串口是串口2*/
rockchip,wake-irq = <0>;
/* If enable uart uses irq instead of fiq */
rockchip,irq-mode-enable = <1>;
//rockchip,baudrate = <1500000>; /* Only 115200 and 1500000 */
rockchip,baudrate = <115200>; /* Only 115200 and 1500000 roger change*/
interrupts = <GIC_SPI 252 IRQ_TYPE_LEVEL_LOW>;
pinctrl-names = "default";
pinctrl-0 = <&uart2m0_xfer>;
status = "okay";
};
编译烧录
修改完成后,在 $(RKSDK) 根目录下,使用 ./build.sh 执行全部编译,生成镜像,烧录到开发板后,调试串口的波特率就修改为 115200 了。