【Rockchip】三、Linux SDK实战:从DTS定制到固件升级——以RV1126/RV1109串口与电源域改造为例

发布时间:2026/7/22 20:43:22

【Rockchip】三、Linux SDK实战:从DTS定制到固件升级——以RV1126/RV1109串口与电源域改造为例 1. 项目背景与需求拆解最近接手了一个雷达通信项目需要把RV1126/RV1109开发板的摄像头接口改造成UART串口。这个需求听起来简单但实际操作起来涉及到硬件电路改造、内核DTS修改、固件编译烧录等一系列技术环节。刚开始接触Rockchip平台时我也被这些专业术语搞得一头雾水经过几次实战才摸清门道。具体来说我们需要解决两个核心问题首先是硬件接口的转换开发板默认的摄像头接口需要重新配置为UART3/UART4其次是电源适配问题雷达模块需要3.3V供电而开发板默认输出是1.8V。这两个需求都需要通过修改设备树(DTS)文件来实现这也是嵌入式Linux开发中最关键的硬件抽象层配置。2. 设备树(DTS)深度改造实战2.1 摄像头接口的UART改造打开SDK中的设备树文件(rv1126-evb-v10.dtsi)首先要找到摄像头相关的节点。这个文件就像是开发板的硬件说明书所有外设的配置信息都在这里。我通常在arch/arm/boot/dts目录下直接搜索cif关键字很快就能定位到相关配置。注释掉原有摄像头配置时要注意语法规范// cif { // status disabled; // };然后添加UART节点配置uart3 { status okay; pinctrl-names default; pinctrl-0 uart3m0_xfer; }; uart4 { status okay; pinctrl-names default; pinctrl-0 uart4m0_xfer; };这里有个容易踩坑的地方pinctrl配置必须与硬件原理图上的引脚复用设置一致。我曾经因为漏掉这个配置导致串口无法正常工作排查了半天才发现问题。2.2 电源域电压调整技巧电源域改造需要特别谨慎RV1126的VCCIO6电源域默认输出1.8V我们需要调整为3.3V。在dts文件中找到如下节点vccio6 { regulator-min-microvolt 1800000; regulator-max-microvolt 3300000; regulator-init-microvolt 3300000; };修改后务必检查三点确认电压值单位是微伏(μV)确保min/max范围包含目标电压init电压要与目标值一致这里有个重要安全提示一定要先烧录新固件再修改硬件电路我有次手快先改了电阻位置结果芯片直接冒烟损失了一块价值不菲的开发板。3. 内核编译与固件打包3.1 高效编译技巧在SDK根目录执行编译命令时我推荐使用以下组合./build.sh kernel -j$(nproc)这个-j参数会根据CPU核心数自动设置并行编译任务数能大幅缩短编译时间。编译完成后控制台会显示Kernel build completed!的提示。验证编译是否成功的最快方法是检查生成的文件ls -lh kernel/arch/arm/boot/zImage ls -lh kernel/resource.img这两个文件的时间戳应该是最新的。3.2 固件打包的注意事项执行mkfirmware.sh时经常会遇到两个问题一是依赖缺失导致打包失败二是生成的固件大小异常。我的经验是打包前先清理旧文件rm -rf rockdev/*检查打包日志中的warning信息特别是分区表相关提示最终生成的boot.img文件通常在50-70MB左右如果发现只有几MB肯定是打包过程出了问题4. 固件烧录的实战经验4.1 Loader模式烧录详解Loader模式是最常用的烧录方式但实际操作中容易遇到设备识别问题。我总结的可靠步骤是开发板完全断电按住Recovery键不放插入USB线保持按键3秒后松开这时RKDevTool应该显示发现一个LOADER设备。如果显示未知设备可以尝试以下方法更换USB端口检查驱动是否安装正确换条质量好的USB线4.2 Maskrom模式应急方案当Loader模式失效时Maskrom就是最后的救命稻草。进入这个模式需要精准的按键时序开发板断电状态下按住Update键快速点按Reset键一次立即松开所有按键成功进入Maskrom后烧录时记得勾选Loader文件这个文件一般位于SDK的rkbin目录下。我习惯使用v2.7.1版本的烧录工具新版本反而经常出现兼容性问题。5. 硬件电路改造要点完成软件烧录后最后一步是修改硬件电路。RV1126开发板背面通常会有标注VCCIO6的电阻位置改造步骤是找到R100和R101电阻将R100从1-2位置改为2-3位置移除R101电阻或改为0Ω跳线使用万用表测量确认电压输出已经变为3.3V后就可以连接雷达模块进行测试了。这里特别提醒所有操作都要在断电状态下进行测量时再通电避免短路风险。6. 调试技巧与问题排查实际项目中最耗时的往往是调试阶段。我总结了几条实用技巧串口调试先确认底层是否通stty -F /dev/ttyS3 115200 echo test /dev/ttyS3用示波器测量对应引脚应该有波形输出电源问题排查顺序测量PMIC输出电压检查LDO使能信号确认负载是否短路内核日志分析命令dmesg | grep -i uart cat /proc/device-tree/xxx遇到特别棘手的问题时我会用二分法排查先还原到上一个可用版本然后逐步添加修改直到问题复现这样能快速定位问题根源。

相关新闻