返回所有文章
调试 / TSENGCHEN BLOG

2026-07-23_RK3506G_EVB1_DSMC主从通信调试

02_Debug · 2026-07-23_RK3506G_EVB1_DSMC主从通信调试

02_Debug · 第 2 / 5 篇

保留原笔记正文与技术内容,仅脱敏敏感信息。配图按作者要求保留原样。

RK3506G EVB1 DSMC 主从通信调试结果

RK3506G EVB1 DSMC LocalBus X8 通信已恢复。根因确认为 DSMC IO 电平问题;修复后 CPU 读写和 DMA 往返测试均通过。

已确认配置

  • 主机固件:rk3506g-evb1-v10-dsmc-master。
  • DSMC 主机窗口:0xc0000000,大小 32 MiB。
  • LocalBus:X8。
  • 主机 DSMC 时钟:100 MHz。
  • IO 电源域:主从板均为 1.8 V。
  • DSMC DLL training:cs0 byte0 dll delay line result 0x25。

CPU 通信测试

在主机侧通过 devmem 对 DSMC CS0 窗口执行 32 位写读;未使用内核测试程序,也未使用 DMA。

hadb -t <transport_id> shell '
devmem 0xc0000000 32 0x00000000; devmem 0xc0000000 32
devmem 0xc0000004 32 0xffffffff; devmem 0xc0000004 32
devmem 0xc0000008 32 0x00ff00ff; devmem 0xc0000008 32
devmem 0xc000000c 32 0x5aa5f00f; devmem 0xc000000c 32
'
偏移写入值读回值结果
0x0000000x000000000x00000000通过
0x0000040xffffffff0xffffffff通过
0x0000080x00ff00ff0x00ff00ff通过
0x00000c0x5aa5f00f0x5aa5f00f通过
0x0020000x555555550x55555555通过
0x0100000xaaaaaaaa0xaaaaaaaa通过
0x4ba0f80x3cc3d22d0x3cc3d22d通过
0x1000000xff00ff000xff00ff00通过

DMA 往返测试

在主机执行:

hadb -t <transport_id> shell 'cat /sys/kernel/rk_dsmc_test/plc_test'

测试日志:

phase 1: dma memcopy from host DDR to slave memory
start copy_to cs0, src_phy = 0x1c00000, size = 0x400000
phase2 : dma memcopy from slave memory to host DDR
plc_simple_test test done

结果:4 MiB 数据完成 Host DDR → Slave → Host DDR 的 DMA 往返传输,无超时、无错误、无 panic。

结论

DSMC 主从 CPU 通信和 DMA 通信均已通过。此前的数据错误与 DMA 超时由 IO 电平异常引起,问题已解决。

02_Debug · 文档目录
上一篇2026-07-22_RV1126B_DSMC_CS2启动异常与DMA失败_RK3576验证下一篇2026-07-30_RK3572_RK1828_PCIe驱动匹配客户内核编译