
Zephyr 中的 ESP32-P4X-Function-EV-Board 开发板支持硬件特性、双核配置与烧录调试实战【免费下载链接】zephyrPrimary Git Repository for the Zephyr Project. Zephyr is a new generation, scalable, optimized, secure RTOS for multiple hardware architectures.项目地址: https://gitcode.com/GitHub_Trending/ze/zephyrESP32-P4X-Function-EV-Board 是乐鑫Espressif推出的高性能评估板基于双核 RISC-V 的 ESP32-P4 SoC硅片修订版 v3.1在 Zephyr 中作为正式支持的板卡目标同时提供 HP Core 与 LP Core 两个构建目标并覆盖 USB、MIPI 显示/摄像头、SD 卡、百兆以太网以及经 SDIO 挂载的 ESP32-C6 无线协处理器等完整外设。本文以 boards/espressif/esp32p4x_function_ev_board/doc/index.rst 为核心结合仓库中的设备树、Kconfig 与公共构建脚本系统讲解该板的硬件组成、SoC 特性、无线方案、双核构建方式以及从编译、烧录到 OpenOCD 调试的完整实操路径。板卡定位与 v3.1 硅片差异ESP32-P4X-Function-EV-Board 是围绕 ESP32-P4 SoC 设计的评估板。ESP32-P4 是乐鑫的高性能 MCU采用双核 32 位 RISC-V 高性能HP处理器主频最高 400 MHz并带有一个 32 位低功耗LPRISC-V 协处理器面向人机交互HMI与边缘计算应用集成 L2 缓存、高带宽内存接口和丰富的连接外设。该板与旧版esp32p4_function_ev_board的关键区别在于X 版采用 ESP32-P4 硅片修订版 v3.1v3.x 系列。v3.x 器件新增了 VDD_HP_1 电源轨且与旧版 v1.3 板使用不同的 PCB 布局、不同的 ROM 与寄存器布局因此必须使用面向 v3.x 修订版的构建产物。Zephyr 中的esp32p4x_function_ev_board板配置默认面向修订版 v3.1HP 双核以 400 MHz 运行对应设备树中cpu0/cpu1的clock-frequency DT_FREQ_M(400)见 esp32p4x_function_ev_board_hpcore.dts。若使用旧版 v1.3 板则应改用esp32p4_function_ev_board目标。设备树注释同时提醒v3.1 硅片合法 CPU 频率为 100/200/400 MHz超出该集合的频率虽然能编译通过但会在启动时报 invalid CPU frequency 错误。板载硬件一览ESP32-P4X-Function-EV-Board 出厂自带以下硬件ESP32-P4 SoC硅片修订版 v3.1搭配 16 MB 板载 flash 与 8 MB 外部 PSRAMUSB-C 接口连接到片上 USB Serial/JTAG 控制器MIPI CSI 摄像头连接器与MIPI DSI 显示连接器microSD 卡槽10/100 Mbps 以太网 RJ45 端口由片上 EMAC 搭配 IP101 PHY 经 RMII 驱动板载 ESP32-C6作为 Wi-Fi 与蓝牙射频协处理器经 SDIO 连接Boot 与 Reset 按键扩展排针引出 UART、I2C、SPI 与 GPIO。从 esp32p4x_function_ev_board_hpcore.dts 可以看到这些外设在 Zephyr 中的实际接线与配置控制台chosen节点将zephyr,console与zephyr,shell-uart指向usb_serial即 USB Serial/JTAG 控制器直接作为默认控制台与 shell 输出通道按键Boot 按键定义为gpio-keys接在gpio1第 3 脚上拉、低电平有效并映射为INPUT_KEY_0SD 卡sdhc0SDMMC 控制器 slot 0以 4-bit 总线、40 MHz 最高频率驱动 microSD并挂载zephyr,sdmmc-disk磁盘节点disk-name 为 SD以太网mdio挂载ethernet-phy1IP101eth节点通过phy-handle关联 PHY并配置 RMII 引脚MIPI DSI 显示mipi_dsi挂载 fitipowerek79007面板控制器2 条 data lanes、RGB888、1024x600带复位与背光 GPIO同时定义完整 display-timings如 hsync-len10、hback-porch160 等触摸I2C0 上挂载 Goodixgt911触摸控制器地址 0x5d1024x600支持翻转并作为zephyr,touch默认设备稳压器片上 LDO 配置 4 路输出3.3V/1.8V/2.5V/3.3V均regulator-boot-on且regulator-always-on。ESP32-P4 SoC 核心特性依据 boards/espressif/common/soc-esp32p4-features.rstESP32-P4 SoC 完整特性如下处理器与内存双核 32 位 RISC-V HP 处理器最高 400 MHz32 位 RISC-V LP 处理器最高 40 MHz768 KB 高性能 SRAM、32 KB 低功耗 SRAM、128 KB ROML1 指令/数据缓存 统一 L2 缓存最多 64 MB 外部 PSRAMHEX 或 Octal 模式、最多 16 MB 外部 flash。数字接口55 个可编程 GPIO5 路 UART 1 路 LP UART2 路通用 SPI、2 路 I2C 1 路 LP I2C、3 路 I2S1 个 SDIO 3.0 主机控制器2 个 slot1 个带内置 PHY 的 USB 2.0 OTG 高速HS控制器、1 个 USB Serial/JTAG 控制器1 个 10/100 Mbit 以太网 MACRMII 接口1 个 MIPI-CSI 摄像头接口、1 个 MIPI-DSI 显示接口1 个 JPEG 编解码器、1 个 2D 像素处理加速器PPALED PWM 控制器最多 8 通道、2 路电机控制 PWMMCPWM3 路兼容 ISO 11898-1CAN 2.0的 TWAI 控制器、1 个脉冲计数器、1 个遥控外设覆盖 AHB/AXI 总线的通用 DMA 控制器GDMA、事件任务矩阵ETM。模拟接口1 个 12 位 SAR ADC、1 个温度传感器。定时器1 个 52 位系统定时器、2 个 54 位通用定时器、2 个看门狗定时器。低功耗Active、Modem-sleep、Light-sleep、Deep-sleep 多种功耗模式4 通道可编程片上 LDO带专用 retention DMA 的 PMU。安全安全启动Secure boot、flash 加密、AES-128/256/SHA/RSA/ECC/HMAC/数字签名/ECDSA 硬件加速、真随机数发生器TRNG、密钥管理器。LP Core 低功耗协处理器除双 HP 核外ESP32-P4 还集成一个低功耗 32 位 RISC-V 协处理器LP Core具备超低功耗、独立中断控制器、调试模块以及访问内存和外设的系统总线接口。LP Core 默认处于睡眠状态有两种典型应用场景对功耗不敏感的场景HP 核活跃时LP Core 可协助处理对速度与效率不敏感的控制和计算任务对功耗敏感的场景HP 核下电省电时LP Core 可被唤醒处理外部唤醒事件。LP Core 支持已完整集成进 Zephyr 的 sysbuild。只需在工程配置中加入CONFIG_ESP32_ULP_COPROC_ENABLEDy即可启用 LP Core可参考仓库中lp-core示例代码。对应地本板提供两个构建目标esp32p4x_function_ev_board/esp32p4/hpcore与esp32p4x_function_ev_board/esp32p4/lpcore后者在 esp32p4x_function_ev_board_lpcore.dts 中仅启用 LP UART 作为控制台并通过对 esp32p4x_function_ev_board_lpcore_defconfig 关闭启动横幅、printk 等特性配合CONFIG_SIZE_OPTIMIZATIONSy做极致的体积优化。Wi-Fi 与蓝牙经 SDIO 挂载的 ESP32-C6 协处理器ESP32-P4 本身不带射频无线连接由板载ESP32-C6提供它运行 esp-hosted-mcu 协处理器固件经SDIO与主控通信。从设备树可以看到明确的拓扑ESP32-C6 位于 SDMMC 控制器的slot 1sdhc14-bit 总线、40 MHzmicroSD 卡座位于slot 0sdhc0两个 slot 共享同一个控制器事务在两者之间串行执行ESP32-C6 的复位线由主机 GPIO 驱动reset-gpios gpio1 22 GPIO_ACTIVE_HIGH在sdhc1下挂载espressif,esp-hosted-mcu设备其子节点wifiespressif,esp-hosted-mcu-wifi与bt-hciespressif,esp-hosted-mcu-bt-hci分别将协处理器暴露为标准 Wi-Fi 接口和 HCI 控制器两者复用同一条 SDIO 链路。在 Zephyr 中esp-hosted-mcu 驱动会把协处理器呈现为一个标准 Wi-Fi 网络接口并在启用蓝牙时呈现为 HCI 控制器。需要特别注意的是固件版本匹配由于射频固件运行在独立芯片上ESP32-C6 必须烧录与主机驱动期望的主版本一致的 esp-hosted-mcu 固件当前为 3.x 系列见ESP_HOSTED_MCU_FW_VERSION_*Kconfig 选项。驱动在启动时会查询运行中的固件版本若主版本不一致则打印警告日志。协处理器固件、支持的芯片组与传输方式、协议设计等细节以 ESP-Hosted-MCU 上游项目文档为准。支持的功能特性板卡级能力声明在 esp32p4x_function_ev_board_hpcore.yaml 中HP Core 目标支持以下 Zephyr 子系统counter、display、dma、entropy、gpio、hwinfo、i2c、i2s、input、netif:eth以太网、netif:wifiWi-Fi、ptp_clock、pulse_io、sdhc、spi、uart、watchdog。板级默认配置esp32p4x_function_ev_board_hpcore_defconfig仅开启串口、GPIO 与稳压器基础项其余功能按需通过 Kconfig 启用。此外Kconfig.defconfig 还针对本板做了三处自动配置ETH_DRIVER默认开启板载 RMII 以太网启用DISPLAY_ESP32_DSI时ESP_SPIRAM_HEAP_SIZE默认设为 5242880约 5 MB——1024x600 面板每个帧缓冲需 1.76 MB驱动为无撕裂更新分配两块帧缓冲默认堆放不下故需要放大 SPIRAM 堆INPUT_GT911_INTERRUPT默认开启——触摸控制器有中断线无需轮询。编译与烧录Simple Boot简单启动本板支持不使用二级引导加载程序、直接加载单一二进制镜像这是未加额外配置构建应用时的默认方式。注意Simple Boot 不提供任何安全特性也不支持 OTA 升级。使用 MCUboot 引导加载程序如需使用 MCUboot 引导加载程序引导加载程序本身至少需要构建并烧录一次。有两种构建方式可选sysbuild 或手动构建。在板级默认配置文件中加入以下行即可启用 MCUbootCONFIG_BOOTLOADER_MCUBOOTy本板的 Kconfig.sysbuild 已把 BOOTLOADER 选择默认置为BOOTLOADER_MCUBOOT。方式一Sysbuildsysbuild 可一次性构建并烧录启动 ESP32 SoC 所需的全部镜像。使用 west 构建示例应用west build --sysbuild -b esp32p4x_function_ev_board/esp32p4/hpcore samples/hello_world默认情况下ESP32 的 sysbuild 会生成引导加载程序MCUboot和应用两个镜像也可配置生成其他类型镜像。sysbuild 的构建目录结构与传统 Zephyr 构建不同输出按 domain 子目录组织build/ ├── hello_world │ └── zephyr │ ├── zephyr.elf │ └── zephyr.bin ├── mcuboot │ └── zephyr │ ├── zephyr.elf │ └── zephyr.bin └── domains.yaml注意使用--sysbuild时每次 pristine全新构建都会重新构建并重新烧录引导加载程序。方式二手动构建Manual Build开发周期中追求快速构建与烧录时可用传统方式逐个构建镜像。以下指令对手动构建与 sysbuild 均适用唯一区别是构建目录结构不同。提醒引导加载程序MCUboot至少需要烧录一次。west build -b esp32p4x_function_ev_board/esp32p4/hpcore samples/hello_world随后按常规方式烧录west flash针对本类暴露内置 USB Serial/JTAG 控制器的目标west flash之后芯片可能停留在下载模式而不启动新镜像需断电重新上电。若遇到该情况可改用看门狗复位使芯片自动重启west flash --reset-type watchdog-reset加速烧录技巧跳过已烧录内容--esp-skip-flashed会先在设备端做 MD5 校验若 flash 中的二进制与待烧录镜像一致则跳过写入west flash --esp-skip-flashed差分烧录--esp-diff只写入与上次烧录镜像不同的区域。它对比的是本地缓存副本而非读取设备因此仅当 flash 自上次west flash后未被其他工具、板卡或手动写入修改时才可使用west flash --esp-diff抑制进度输出--esp-no-progress可关闭进度输出让日志更干净适合 CI 场景west flash --esp-no-progress打开串口监视器烧录并自动复位后用以下命令打开串口监视器west espressif monitor正常情况下应看到如下输出***** Booting Zephyr OS vx.x.x-xxx-gxxxxxxxxxxxx ***** Hello World! boardOpenOCD 调试Espressif 芯片需要带 ESP32 专用补丁的定制 OpenOCD 构建下载最新发布版即可Zephyr SDK 自带的 OpenOCD 可能不支持 ESP32需在构建时显式指定路径。Zephyr 线程感知调试OpenOCD 支持 Zephyr RTOS 线程感知可让 GDB 实现用info threads列出所有线程显示线程名称、优先级与状态在线程上下文间切换查看任意线程的回溯backtrace。要求OpenOCD ESP32 v0.12.0-esp32-20251215 或更新版本应用需以CONFIG_DEBUG_THREAD_INFOy构建。示例构建 hello_world 并进入调试west build -b esp32p4x_function_ev_board/esp32p4/hpcore samples/hello_world \ -DCONFIG_DEBUG_THREAD_INFOy \ -DOPENOCDpath/to/bin/openocd \ -DOPENOCD_DEFAULT_PATHpath/to/openocd/share/openocd/scripts west debug使用自定义 OpenOCD若使用 Espressif 提供的 OpenOCD构建时显式指定可执行文件与脚本路径west build -b esp32p4x_function_ev_board/esp32p4/hpcore samples/hello_world \ -DOPENOCD/path/to/openocd \ -DOPENOCD_DEFAULT_PATH/path/to/openocd/scripts west debug板卡目录下的 support/openocd.cfg 即为该板调试会话所用的 OpenOCD 配置文件。小结ESP32-P4X-Function-EV-Board 在 Zephyr 中的支持体现了典型的双核 双目标板卡组织方式HP Core 目标承载完整的多媒体与网络能力MIPI DSI 显示、gt911 触摸、SD 卡、RMII 以太网、SDIO 无线LP Core 目标则以最小体积运行于低功耗协处理器。开发时请牢记三点其一v3.1 硅片决定了必须使用本板目标而非旧版esp32p4_function_ev_board其二无线功能依赖 ESP32-C6 上主版本匹配的 esp-hosted-mcu 固件其三启用 DSI 显示后需依赖 Kconfig.defconfig 中自动放大的 SPIRAM 堆才能容纳双帧缓冲。结合本文给出的 west 构建、差分烧录与 OpenOCD 线程感知调试命令即可快速上手基于该板的应用开发。【免费下载链接】zephyrPrimary Git Repository for the Zephyr Project. Zephyr is a new generation, scalable, optimized, secure RTOS for multiple hardware architectures.项目地址: https://gitcode.com/GitHub_Trending/ze/zephyr创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考