串口波特率修改
1.1. 波特率介绍
波特率(Baud Rate)是数据通信中每秒传输的符号(调制速率)数量,单位是波特(Baud)。本质上,它是衡量数据传输速度的重要指标,反映了串行通信中信号变化的频率。简单来说,波特率决定了串口每秒能够发送的“信号单元”数量。由于每个信号单元可以携带一个或多个比特(bit)数据,因此波特率与比特率密切相关,但二者并不完全相同(比特率 = 波特率 × 每个符号的比特数)。
在嵌入式设备的串口通信中,常见的波特率包括 9600、19200、38400、115200 等。在设备之间进行串口通信时,发送端和接收端的波特率必须完全一致。如果不一致,数据传输时会出现乱码、数据丢失,甚至无法通信等问题。这是串口通信的基本前提。
1.2. 修改波特率设置
1.2.1 修改 U-BOOT 的 defconfig 配置
-
参考《嵌入式底层开发/Ubuntu 系统 SDK/源码获取》获取 SDK。
-
进入 u-boot 目录,修改 rv1126b_defconfig 文件。
vim u-boot/configs/rv1126b_defconfig
1.2.1 修改 U-BOOT 的 defconfig 配置 图1

1.2.1 修改 U-BOOT 的 defconfig 配置 图2
1.2.2 修改 U-BOOT 的 DDR BIN 配置
DDR BIN 是 DDR 内存的初始化配置文件。在部分设备中,串口波特率设置与 DDR BIN 相关联,因此如果不修改这里的配置,设备启动后串口可能无法正常工作。如果有其他配置需求,请阅读 ddrbin_tool_user_guide.txt 指南。修改步骤如下:
- 查看 RV1126BMINIALL.ini 配置
打开 rkbin/RKBOOT 目录,查看 RV1126BMINIALL.ini 配置。

1.2.2 修改 U-BOOT 的 DDR BIN 配置 图3
确认初始默认的 .bin 文件名:rv1126b_ddr_1332MHz_v1.06.bin
- 复制新的 .bin 文件
sudo cp rv1126b_ddr_1332MHz_v1.06.bin test.bin- 使用 ddrbin_tool 进行配置
获取 rv1126b_ddr_1332MHz_v1.06.bin 文件的配置。
cd rkbin/tools./ddrbin_tool.py rv1126b -g gen_param.txt../bin/rv11/rv1126b_ddr_1332MHz_v1.06.bin
1.2.2 修改 U-BOOT 的 DDR BIN 配置 图4
打开 gen_param.txt 后,可以查看详细的配置参数。后续将基于该默认配置进行修改。

1.2.2 修改 U-BOOT 的 DDR BIN 配置 图5
通过配置 ddrbin_param.txt 来修改 .bin 文件的配置。

1.2.2 修改 U-BOOT 的 DDR BIN 配置 图6
./ddrbin_tool.py rv1126b ddrbin_param.txt ../bin/rv11/test.bin
1.2.2 修改 U-BOOT 的 DDR BIN 配置 图7
💡 注意:通常,ddrbin_param.txt 中的参数值为空(空白)。空值表示对应 .bin 的默认值。可以使用命令检查 test.bin 文件的配置是否正确。
修改 RV1126BMINIALL.ini 配置
vim rkbin/RKBOOT/RV1126BMINIALL.ini
1.2.2 修改 U-BOOT 的 DDR BIN 配置 图8
1.2.3 编译 U-BOOT 配置
- 编译 U-BOOT 配置。
./build.sh uboot
1.2.3 编译 U-BOOT 配置 图9
- 将编译后的 U-BOOT 配置更新到固件工具中。

1.2.3 编译 U-BOOT 配置 图10
此时,如果只重新烧写这两个配置文件,串口控制台的 U-BOOT 部分输出将能够正常显示,但 kernel(内核)部分的输出仍然会出现乱码。

1.2.3 编译 U-BOOT 配置 图11
因此,为了使所有内容都能正常显示,还需要继续进行内核配置。
1.2.4 修改内核(Kernel)配置
- 修改 rv1126b-nano.dts 配置。
vim kernel_dev/arch/arm64/boot/dts/rockchip/rv1126b-nano.dts
1.2.4 修改内核(Kernel)配置 图12
- 编译内核配置。
./build.sh kernel
1.2.4 修改内核(Kernel)配置 图13
如果不熟悉内核编译流程,请参考《嵌入式底层开发/Ubuntu 系统 SDK/kernel》文章。
- 将编译后的内核配置更新到固件工具中。

1.2.4 修改内核(Kernel)配置 图14
1.2.5 重新烧写
- 将所有更新后的配置重新烧写(刷写)到开发板。

1.2.5 重新烧写 图15
- 最终,串口控制台的所有输出都会正常显示。

1.2.5 重新烧写 图16