先记录现场
保存板型、硬件修订、两个仓库提交号、ESP-IDF 版本、App 版本与 release sequence、供电条件和复现步骤。保留启动日志,不要一开始就擦除 Flash 或重建出厂数据分区。
启动与串口
tools/firmware.sh pai-touch monitor --port /dev/ttyACM0 --baud 115200
检查目标芯片、分区、PSRAM 初始化、显示驱动和 PXA 启动日志。出现重启时记录 reset reason、panic 与回溯,保留同次构建的 ELF 供 IDF 解析。
退出 monitor 后再运行 PXADB。烧录波特率、monitor 波特率和设备调试传输配置是不同设置,不要互相替代。
显示故障
| 症状 | 先验证什么 |
|---|---|
| 全黑 | 供电、复位、背光、LCD 初始化、display 返回值 |
| 花屏 / 色彩异常 | 像素格式、字节序、stride、传输长度 |
| 撕裂 / 随机损坏 | DMA 完成通知、缓存一致性、缓冲所有权 |
| 边缘裁切 | 逻辑尺寸、旋转、圆屏安全区、显示窗口 |
| 截图正常而屏幕异常 | 板级 presenter、DMA、面板时序 |
先用固定色块排除 UI,再用 Hello 验证系统渲染。截图应对应最终可见帧;若板级截图路径未实现,不应据此认定应用没有输出。
输入故障
核对原始触控坐标,再核对旋转、缩放与逻辑坐标。测试四角与拖动释放;如果只收到 DOWN 没有 UP,检查中断、输入路由与事件合并。
pxadb input tap 148 120 --port /dev/ttyACM0
pxadb screenshot debug.png --port /dev/ttyACM0
远程点击正常、物理触控异常,优先检查触控驱动和变换。两者都异常时再检查窗口焦点与应用事件处理。
包与运行时
安装失败检查签名、空间与清单;启动失败检查芯片 target、WAMR ABI、Service 版本和权限;运行一段时间后失败检查泄漏、任务栈和线性内存峰值。
pxadb package list --port /dev/ttyACM0
pxadb logcat --port /dev/ttyACM0
网络、音频与性能
网络先验证 provider 与权限,再验证 DNS、连接、响应大小与超时。音频先验证硬件播放链路,再验证 Guest 服务。性能记录包括实际呈现帧率、堆与 PSRAM、最大连续块、CPU 和 DMA 占用;PXADB 预览 FPS 不能代替屏幕 FPS。
回归与恢复
重复 App 启停、安装更新、冷启动、断网、低内存和异常停止。安装中断测试使用专门测试设备并备份数据。首次挂载失败可能触发格式化,测试前检查相应 Kconfig。修复后用相同日志和截图步骤复测,避免只验证一次成功启动。