2. R-Car硬件验证环境搭建

R-Car系统级验证的第一步不是写测试用例,而是把一块能稳定复现问题的硬件环境搭起来。环境不稳,后续所有故障定位都会被噪声干扰。本节围绕开发板选型、供电与时钟、调试通道、串口网络以及版本管理,给出一套可落地的搭建方法。

开发板选型:先看验证目标,再看板卡规格

R-Car系列覆盖从座舱到ADAS的多个型号,选板时先明确验证对象。若验证目标是SoC内部IP(如GPU、VPU、CAN-FD控制器),应优先选择带完整外设引出、支持JTAG/TRACE的评估板,例如R-Car H3/M3的Salvator-X或Starter Kit;若验证目标是整机功能与启动链路,则需关注板载DDR容量、eMMC/UFS、以太网PHY和显示输出是否与目标产品一致。

选型时重点核对四项:一是SoC型号与硅版本(如H3 ES3.0与ES2.0的寄存器差异),二是调试接口是否同时引出JTAG与TRACE(如CoreSight ETM/AXI-AP),三是电源域是否可独立测量与限流,四是启动模式跳线是否可切换(QSPI、eMMC、SCIF下载)。建议在采购前向FAE确认板卡原理图与SoC数据手册的引脚复用表一致,避免后期因引脚冲突返工。

电源与时钟树:先量后接,分域验证

R-Car通常需要多路供电:核心电压(如0.8V/1.0V)、DDR电压(1.1V/1.35V)、IO电压(1.8V/3.3V)以及模拟电源。上电顺序错误可能导致SoC闩锁或启动失败。搭建时先用可编程电源按数据手册规定的顺序逐路上电,例如先1.8V IO,再1.1V DDR,最后0.8V核心,每路之间延时5~10ms,并用示波器观察上电斜率是否满足要求。

时钟树方面,R-Car依赖外部晶振(如16.66MHz或24MHz)经内部PLL倍频出CPU、DDR、外设时钟。验证时应在晶振输出端和PLL锁定指示引脚(如CLKOUT)上测量:晶振起振时间通常小于10ms,PLL锁定后CLKOUT应输出稳定频率。若系统无法启动,先确认晶振是否起振、PLL是否锁定,再排查复位信号释放时序。

R-Car验证环境连接拓扑与信号链 可编程电源(分域) 1.8V IO / 3.3V 1.1V DDR 0.8V Core 上电顺序:IO→DDR→Core 时钟源 外部晶振 16.66MHz 内部PLL倍频 观测:CLKOUT锁定指示 R-Car SoC CPU Cluster / Cortex-A DDR控制器 / eMMC CoreSight 调试子系统 以太网 / SCIF 串口 启动模式跳线 调试主机 JTAG (TCK/TMS/TDI/TDO) TRACE (ETM/AXI-AP) Lauterbach / DStream 串口与网络 SCIF UART 115200-8N1 以太网 1000BASE-T TFTP / NFS 启动 电源分域上电 → 时钟锁定 → SoC启动 → JTAG/TRACE调试 → 串口/网络交互 注:图中电压、频率为典型示例值,实际以对应SoC数据手册为准

调试接口:JTAG与TRACE的分工

JTAG用于边界扫描、寄存器读写和CPU停止/单步,是定位启动卡死、DDR初始化失败的首选手段。连接时需确认TCK频率(通常1~10MHz,长线缆需降频)、TMS/TDI/TDO上拉电阻以及nTRST复位信号。若JTAG无法识别SoC,先检查VTref参考电压是否与IO域一致,再确认SoC是否已退出复位。

TRACE(如ETM指令跟踪、STM系统跟踪)用于观察程序执行流和总线访问,适合分析偶发死锁、中断延迟和性能瓶颈。TRACE需要专用高速接口(如HSSTP或并行Trace Port),布线时注意差分对等长和阻抗匹配。实际搭建中,建议先用JTAG确认SoC可停可跑,再接入TRACE抓取启动阶段的指令流,两者配合能快速区分“没跑起来”和“跑飞了”。

串口与网络:启动日志与文件传输

SCIF串口是R-Car最基础的观测通道。典型配置为115200-8N1,无流控。上电后若串口无输出,先确认SoC启动模式跳线是否正确、串口线TX/RX是否交叉、波特率是否匹配。正常启动时,U-Boot会打印DRAM容量、启动介质和加载地址,这些信息是判断启动链路是否完整的第一手依据。

网络用于TFTP加载内核、NFS挂载根文件系统以及后续自动化测试。配置时确保开发板与主机在同一网段,例如主机192.168.1.100/24,开发板192.168.1.50/24。在U-Boot中设置:

setenv ipaddr 192.168.1.50
setenv serverip 192.168.1.100
setenv gatewayip 192.168.1.1
setenv bootcmd 'tftp 0x48000000 Image; tftp 0x49000000 r8a7795-salvator-x.dtb; booti 0x48000000 - 0x49000000'
saveenv

若TFTP超时,先用ping确认链路,再检查防火墙和tftp服务根目录权限。NFS挂载失败常见原因是版本不匹配,可在内核启动参数中显式指定nfsvers=3。

环境自检与版本管理

环境搭建完成后,按以下顺序自检:电源各路电压与纹波、晶振起振与PLL锁定、JTAG识别IDCODE、串口打印U-Boot版本、网络ping通、TFTP加载成功、内核启动到登录提示符。任一步失败即停止后续步骤,避免误判。

版本管理同样关键。建议记录:SoC型号与硅版本、板卡版本、U-Boot/内核/根文件系统版本、JTAG工具版本、电源与时钟配置参数。可用一张环境记录表固定字段,例如:

项目示例值记录方式
SoC型号/硅版本R-Car H3 ES3.0芯片丝印+寄存器读取
板卡版本Salvator-X Rev.B板卡丝印
U-Boot版本2020.10串口启动日志
内核版本5.10.yuname -a
JTAG工具Lauterbach TRACE32版本号+脚本
电源配置1.8V/1.1V/0.8V电源面板截图
建议将上述配置固化为启动脚本和版本清单,每次更换板卡或升级软件后重新执行自检,确保验证结果可复现、可追溯。