3. 开发与调试环境搭建

座舱性能优化与系统调试的第一步,不是打开工具看曲线,而是把“可复现的硬件与软件底座”搭起来。高通QRB(Qualcomm Robotics Board)与ADP(Automotive Development Platform)开发板是承载骁龙座舱平台的典型硬件,前者偏向通用开发与验证,后者更贴近车规级座舱域控形态。两者通常都包含SoC核心板、电源管理芯片(PMIC)、存储(UFS/eMMC)、显示接口(DP/DSI)、音频编解码、CAN/以太网等外设。环境搭建的目标是:让同一块板子能够稳定进入QNX、Android、Linux三种系统,并具备ADB、SSH、串口三条独立调试通道,同时安装QCAP与QACT工具链,形成“可烧录、可登录、可抓取、可分析”的闭环。

3.1 硬件连接与启动模式确认

在烧录前,先确认开发板的供电、调试串口和启动模式。典型连接如下:电源适配器接入12V DC接口;USB Type-C或Micro-USB接入主机,用于ADB与fastboot;板载UART(通常为3.3V TTL)通过USB转串口模块接入主机,波特率常见为115200 8N1。启动模式由拨码开关或按键组合决定,常见有EMMC/UFS启动、EDL(Emergency Download)模式、Fastboot模式。以QRB为例,进入EDL通常需要按住“Force USB Boot”或短接特定测试点后再上电,主机端用lsusb应能看到Qualcomm HS-USB QDLoader 9008设备。若看不到,优先检查驱动是否安装、USB线是否支持数据、拨码是否处于正确位置。

3.2 QNX/Android/Linux镜像烧录

三种系统的烧录方式不同,但都依赖高通提供的刷机包与工具。Android与Linux通常使用fastboot或高通QPST/QFIL;QNX则多通过QNX Momentics或厂商提供的qnxflash脚本写入。以Android为例,典型流程是:解压刷机包,进入目录,执行flash_all.sh或手动依次刷入boot.img、system.img、vendor.img、userdata.img。若使用QFIL,则选择prog_firehose_ddr.elf与rawprogram.xml、patch.xml,进入EDL后点击Download。QNX镜像通常包含ifs.bin、qnx-ifs与启动脚本,烧录后需确认分区表与启动参数一致。Linux镜像则常见boot.img、rootfs.img、dtb,通过fastboot flash写入。烧录完成后,串口应能看到启动日志;若卡在“Waiting for device”或“Sahara”阶段,多为驱动、USB口或镜像不匹配。

QRB/ADP 座舱开发板调试环境拓扑 QRB / ADP 开发板 SoC + PMIC + UFS/eMMC 骁龙座舱平台核心 QNX 分区 Android 分区 Linux 分区 EDL/Fastboot 显示 / 音频 / CAN / 以太网外设 UART 调试串口 · 115200 8N1 主机开发环境 ADB / Fastboot SSH / Telnet 串口终端 (minicom) QCAP / QACT 分析与调优工具 QCAP 抓取 QACT 调优 CPU/GPU/DDR 曲线 音频/显示参数 USB 网口 UART 数据 配置 调试通道优先级:串口看启动日志 → ADB/SSH 登录系统 → QCAP 抓取性能数据 → QACT 调优参数回写 烧录异常排查:EDL 9008 是否识别 → 驱动/QFIL 版本 → 镜像与分区表匹配 → 串口日志定位卡点

3.3 ADB、SSH与串口调试通道

三条通道各有分工。串口是最底层的“生命线”,系统未起来、网络未通时,它仍能输出启动日志、内核panic、QNX启动脚本信息。主机端可用minicom -D /dev/ttyUSB0 -b 115200或screen /dev/ttyUSB0 115200连接。ADB用于Android与部分Linux系统,常见命令包括adb devices、adb shell、adb logcat、adb push/pull。若adb devices显示unauthorized,需在板端确认USB调试授权;若显示offline,可尝试adb kill-server后重连。SSH用于QNX与Linux,前提是网络已通。先通过串口执行ifconfig查看IP,再在主机执行ssh root@192.168.1.100。QNX默认可能未开启SSH,需要确认sshd是否运行,或使用telnet作为替代。实际调试中,建议三条通道同时保持:串口看底层,ADB/SSH做交互,QCAP/QACT做数据采集。

3.4 QCAP与QACT工具链安装

QCAP(Qualcomm Component Analysis Profiler)用于采集CPU、GPU、DDR、总线等性能计数器,QACT(Qualcomm Audio Calibration Tool)用于音频通路与参数调优。两者通常随高通SDK或ADP软件包提供。安装时先确认主机系统版本(Ubuntu 20.04/22.04较常见),安装依赖如libusb-1.0-0、libncurses5、python3、adb、fastboot。QCAP安装后需配置目标设备连接方式,通常通过ADB或网络与板端agent通信;QACT则需加载对应的ACDB配置文件与音频拓扑。安装完成后,用qcap --version或启动GUI确认版本,再执行一次短时采集(例如10秒)验证数据能否正常回传。若QCAP无法连接,优先检查板端qcap_agent是否运行、端口是否被占用、ADB是否稳定。

建议在环境搭建完成后,立即做一次“基线采集”:空载状态下用QCAP记录30秒CPU/GPU/DDR曲线,保存为基线文件。后续任何优化前后都与此基线对比,避免把环境差异误判为优化效果。

3.5 环境验证与常见问题

环境是否搭好,可以用一张检查表快速判断:串口能否看到完整启动日志;adb devices是否稳定显示设备;SSH能否登录并执行uname -a;QCAP能否采集到至少一路性能计数器;QACT能否读取音频ACDB。常见问题包括:EDL设备识别为未知设备(装QPST驱动)、fastboot卡住(换USB口或线)、SSH拒绝连接(板端sshd未启动或防火墙)、QCAP无数据(agent未运行或权限不足)。排查时遵循“先物理后软件、先底层后上层”的顺序:先看供电与串口,再看启动模式与镜像,最后看工具链与网络配置。

完成本章环境搭建后,你应拥有一块可反复烧录QNX/Android/Linux的QRB或ADP开发板,三条独立调试通道,以及可用的QCAP与QACT工具链。这是后续座舱性能采集、瓶颈定位与参数调优的前提。建议把烧录命令、串口参数、IP配置、工具版本记录成一份环境档案,便于团队复现与问题回溯。