嵌入式分享#41:RK3576改UART波特率【精简版】

正文

RK3576 官方公版的调试串口默认波特率为 1500000,若实际使用时遇到串口工具不支持这一波特率,就需要对其进行调整。

**【修改思路】:**首先我们可通过系统启动首条日志判断当前所处阶段,以此为依据,就能明确波特率修改需要覆盖系统的哪些阶段。

从上图的输出日志能清晰看到,系统启动后第一条打印信息就与 DDR 相关。熟悉 RK3576 启动流程的朋友应该知道,DDR 的初始化正是从 preloader 阶段正式开始的。

因此,若要将默认的 1500000 波特率调整为 115200,不能只改单一环节 ------ 必须从系统启动的 preloader 阶段开始,依次同步修改 preloader、uboot,再到 kernel 阶段的波特率配置,才能确保全流程串口通信正常,避免因某一阶段配置不一致导致串口日志错乱。

1 preloader 阶段

(1)先确认当前使用的 DDR bin 具体是哪个。

复制代码
vim ./rkbin/RKBOOT/RK3576MINIALL.ini

(2)修改 DDR bin 波特率

修改方法:打开 ddrbin_param.txt,把波特率参数调整为 "uart baudrate = 115200"。

复制代码
vim ddrbin_param.txt

(3)编译 DDR bin

编译方法:RK 提供了 ddrbin_tool 这一工具,专门用于编译 DDR bin。

复制代码
./ddrbin_tool px30 ddrbin_param.txt ../bin/rk35/rk3576_ddr_lp4_2112MHz_lp5_2736MHz_v1.05.bin

注意事项:

a. 参数 px30 代表芯片名称,我试了直接使用 RK3576 无效(推测是当前 SDK 未兼容),需用 px30 替代;

b. 确保所用 DDR bin 与之前查看的保持一致;

c. ddrbin_tool 的详细使用方法可参考文档 ddrbin_tool_user_guide.txt。

执行 git diff 后确认有变更记录,由此可判断编译成功。

补充:如果无需输出 DDR 日志,也可在 ddrbin_param.txt 中修改参数 "uart id = 0xf",以此关闭 uart 输出。

2 uboot 阶段修改

uboot 阶段的修改很简单,只需改动 u-boot/configs/rk3576_defconfig 这个文件就行

打开之后找到 CONFIG_BAUDRATE,将 1500000 改为 115200。

3 kernel 阶段修改

内核阶段的修改更直接,只需修改 rk3576-linux.dtsi 中的波特率参数。

复制代码
vim kernel-6.1/arch/arm64/boot/dts/rockchip/rk3576-linux.dtsi

(完)

相关推荐
M78佐菲3 小时前
Linux学习笔记:TCP协议
linux·笔记·学习·tcp/ip·算法
Brilliantwxx3 小时前
【Linux】 进程(9)程序与进程地址空间(基础+进阶+面试题)
linux·运维·服务器·开发语言·c++
俊基科技3 小时前
A-59U工业级多模语音处理模块在矿山矿井通信与呼叫报警系统中的应用
嵌入式硬件·嵌入式开发·硬件开发·ai降噪·回音消除·拾音降噪
不怕犯错,就怕不做3 小时前
git prune 自动删除本地记录中那些远程已经不存在的分支引用
linux·服务器·git
周周记笔记5 小时前
GD32F450xx MCU Datasheet 解读:硬件测试工程师的测试方法论
单片机·嵌入式硬件
一池秋_5 小时前
arm低配linux设备,桌面应用冷启动提速方法
linux·运维·arm开发
惜离殇5 小时前
从零开始的敲代码生活--Linux应用软件(文件操作基础1)
linux·c语言·文件操作·标准io
闲云野鹤在人间8 小时前
OpenStack架构介绍和安装流程
linux·网络·架构·openstack
我命由我123458 小时前
Linux - Linux/POSIX 路径斜杠折叠规则
linux·运维·服务器·android studio·android jetpack·android-studio·android runtime
AOI小白新手上路8 小时前
江科协51单片机16-1 AD/DA ADC 三通道综合显示(LCD1602 版)改造说明
单片机·嵌入式硬件·51单片机