
清空记录
历史记录
取消
清空记录
历史记录

调试手段按「从软到硬」排:串口日志是最常用的一层,串口失效再上JTAG;测试则分软件功能/压测和量产PCBA两级。本文把这四块串成一套完整的调试与验收方法,分上下篇为大家分享。
上篇讲了开发期两条调试链路:串口日志调通、JTAG 兜底早期崩溃。对上篇感兴趣可点此跳转,本文为下篇,转向验收侧——「手点一遍」不算测试,量产阶段每一块板都要过体检。核心内容两块:SDK 自带的rockchip-test 软件测试框架怎么跑功能与压力;量产 PCBA 测试框架 rk_pcba_test 怎么搭、怎么判定 PASS/FAIL。
系统化测试功能用例与压测
"手点一遍"不算测试。瑞芯微SDK自带一套rockchip-test 软件测试框架,把 CPU/DDR/GPU/Flash/音频/相机/网络/压力测试都做成了可复跑的用例。用框架+压力测试规范化操作,功能才算真正验证过。
SDK的软件测试框架在 external/rockchip-test/:主脚本 rockchip_test.sh 提供交互式菜单,每个模块一个目录(cpu/ddr/gpu/npu2/flash_test/audio/camera/video/wifibt/pcie/benchmark/auto_reboot…,注意 NPU 目录是 npu2、Flash 是 flash_test)。做法:先跑功能用例验证行为,再跑压力测试验证稳定(压测通过才算数)。
external/rockchip-test/rockchip_test.sh(V2.4)启动后打印菜单,模块号与用例(源码里直接可见):
注:菜单里的9为 recovery wipe(recovery 擦除)测试,属recovery范畴,本系列不展开。
# 交互式(菜单选择) cd external/rockchip-test && ./rockchip_test.sh # 直接跑某个模块的脚本(看模块目录) ls external/rockchip-test/cpu external/rockchip-test/benchmark ./external/rockchip-test/cpu/*stress*.sh # 例:cpu 压测脚本
注意:菜单里含 suspend_resume 等模块,休眠/唤醒相关内容不在本系列范围(见 uboot-series 07.05)。
系统化测试 = rockchip_test.sh 菜单跑功能用例 → 对改动模块跑压力测试 → 全程留 dmesg 日志 → 按官方测试规范判定。压测能复现的崩溃,按 call trace 分析直接定位到驱动。
量产板子PCBA测试搭建
量产阶段每一块板都要过"体检":CPU、DDR、eMMC、SD、摄像头、音频、按键、LED、RTC、USB……SDK 自带的 rk_pcba_test 把每个模块做成独立用例,一个服务端统一调度、回报 PASS/FAIL。本文拆开这个框架,讲清楚怎么搭、怎么看结果。
PCBA 测试 = 量产产线上的"功能体检"。external/rk_pcba_test/ 是官方实现:一个服务端(echo_pcbatest_server)统一调度,每个硬件模块一个独立用例(echo_<模块>_test.c),用例回报 PASS/FAIL/VERIFY/PRESS,结果可存盘(默认 /tmp)。量产时:编好镜像 → 逐模块跑用例 → 全部 PASS 才放行。
整个测试程序位于 external/rk_pcba_test/,核心三块:
辅助件:pcba_minui(板上迷你UI)、tinyalsa(音频测试)、echo_auto_test.c(一键全测)、echo_discovery.c(设备发现)。构建目标在 CMakeLists.txt:echo_pcbatest_server、pcba-core、各 echo_xxx_test。
common.h 里定义了回报给产线的结果:
错误码也是负值编号,例如 KEY_OPEN_FAIL=-40、IR_OPEN_FAIL=-130、SDCARD_MOUNT_FAIL=4 等(详见 common.h)。FAIL 时按错误码查原因,比只看"失败"高效得多。结果默认存 /tmp(TEST_RESULT_SAVE_PATH)。
从目录里的用例文件即可看出能测哪些硬件(每项对应一个 echo_<模块>_test.c):
框架用 CMake 组织(external/rk_pcba_test/CMakeLists.txt),产线镜像里把服务端/用例打进去:
# 1. 交叉编译(在 SDK 内,工具链见 01.01/01.02) cd external/rk_pcba_test && mkdir build && cd build cmake .. && make # 产物: echo_pcbatest_server / pcba-core / echo_xxx_test # 2. 部署到板子并启动服务端 adb push echo_pcbatest_server /userdata/ && adb shell chmod +x /userdata/echo_pcbatest_server && /userdata/echo_pcbatest_server & # 3. 跑单个用例(以 eMMC 为例) ./echo_emmc_test # 返回 PASS / 打印错误码
产线可把"逐模块跑 + 解析 PASS/FAIL"写成脚本,或直接跑 echo_auto_test.c 一键全测;带 UI 的产线用 pcba_minui 展示结果。
自动项
人工项
FAIL 定位
PCBA 量产测试 = 编译 rk_pcba_test → 产线镜像里带服务端与用例 → 逐模块跑(或 auto 全测)→ 按 PASS/FAIL/VERIFY + 错误码判定 → 全过才放行。框架的每个模块都是独立用例、源码可读可改,需要覆盖更多项时可仿照已有文件自行扩展用例(如新增一个 echo_xxx_test.c)。
RK3576板端实测记录
以下在 RK3576+Debian Bookworm上通过adb直连执行(串口一节命令全部可用):
官方文档依据:
docs/cn/Common/UART/Rockchip_Developer_Guide_UART_CN.pdf docs/cn/Common/UART/Rockchip_Developer_Guide_UART_FAQ_CN.pdf(串口与 FAQ)
SDK 源码依据:
kernel-6.1/arch/arm64/boot/dts/rockchip/rk3576-linux.dtsi(earlycon/console bootargs) kernel-6.1/arch/arm64/configs/rockchip_linux_rk3576_defconfig(CONFIG_SERIAL_8250_CONSOLE=y、CONFIG_SERIAL_8250_DW=y、CONFIG_PRINTK_TIME=y) kernel-6.1/arch/arm64/boot/dts/rockchip/rk3576.dtsi(uart2 节点)
Purple Pi OH2开发板,是触觉智能RK3576核心板SOM7609系列配套的评估开发板,搭载4核A72+4核A53+M0多核异构处理器,主频2.2GHz,集成6Tops算力 NPU,轻松应对AI推理、边缘计算与轻量级AI端侧学习。配套完善SDK、丰富资料与Demo,有助于项目前期快速开发验证。
触觉智能SOM7609系列核心板尺寸仅40.5×40.5mm,基于RK3576/RK3576J SoC,集成高性能GPU与VPU,支持4K视频编解码与多屏异显;提供PCIe、USB3.2、双路千兆以太网、MIPI-DSI、多路MIP CSI、eDP、CAN、SPI、I2C等丰富接口,灵活扩展。
