选择已有板级实现
工作区中已有 pai-touch、sensecap-watcher 与 esp32s31-korvo-1 目录。这表示存在板级接入代码,不等于所有硬件能力已经完成相同程度的验证。以对应 README、原理图和实际硬件修订为准。
board.cmake 在 IDF 发现组件前选择芯片和板级 component;每块板子有独立 sdkconfig.defaults、分区与依赖 manifest。
编译、烧录与监视
先激活适合目标板的 ESP-IDF:
tools/firmware.sh pai-touch build
tools/firmware.sh pai-touch flash --port /dev/ttyACM0 --baud 406800
tools/firmware.sh pai-touch monitor --port /dev/ttyACM0 --baud 115200
工具使用 build/firmware/pai-touch/,其他板子只替换第一个参数。等效的直接构建入口是:
idf.py -C firmware -B build/firmware/pai-touch -DPXA_BOARD=pai-touch build
切换板子使用独立构建目录,避免残留芯片与驱动配置。首次解析生成 firmware/dependencies.lock.<board>,由组件管理器维护,不手工修改。
配置和数据分区
tools/firmware.sh pai-touch menuconfig
PXA 数据分区使用 data/littlefs;分区标签必须与 CONFIG_PXA_STORAGE_PARTITION_LABEL 完全一致,挂载点使用绝对路径。普通固件编译与烧录不负责构建或覆盖应用数据分区。
需要工厂预置时另用 tools/factory.sh image pai-touch 生成镜像。该镜像会替换整个 PXA 数据分区,不适用于需要保留用户 App 的日常升级。首次挂载失败是否格式化由 CONFIG_PXA_STORAGE_FORMAT_IF_MOUNT_FAILED 决定。
安装一个验证应用
关闭 monitor 后执行:
tools/app.sh build hello --board pai-touch --target esp32s3 --source-root deps/pxa-system/apps/pxa
pxadb package install local/app-output/pai-touch/pxa-hello.pxa --port /dev/ttyACM0
pxadb package run pxa-hello --port /dev/ttyACM0
ESP32-S31 用对应板子与 --target esp32s31;其他板子若工具未定义默认 App target,就显式给出其真实芯片支持的 target。
验收结果
确认上电启动、显示方向、触控坐标、包安装、App 启停和重启后的持久状态。再逐项验证网络、音频、亮度和电源;失败时沿板子调试的顺序定位。