用途:在 Zephyr RTOS 上集成 ExecuTorch(ET),把 ET 作为 Zephyr 外部模块(通过 zephyr/module.yml 声明),将 ET 的运行时、内核与后端库暴露为 Zephyr CMake 目标供应用链接。适用于搭建含 ET 的 Zephyr 工作区、为新板添加 overlay/conf/链接片段、调试 west 构建失败(链接溢出、段放置、CMake/Python 问题)、为特定模型与板组合调整分配器池大小。
主要能力:提供 hello-executorch、mv2-ethosu 等示例;支持 Ethos-U NPU 板(Corstone-300/320 FVP、Alif Ensemble);通过 pte_to_header.py 将 .pte 转为带命名段(默认 network_model_sec)的 C 头文件;gen_oplist.py 依据 .pte 生成选择性算子构建;运行时需三个内存池:方法分配器(CONFIG_EXECUTORCH_METHOD_ALLOCATOR_POOL_SIZE)、临时分配器(CONFIG_EXECUTORCH_TEMP_ALLOCATOR_POOL_SIZE)与快速暂存(ET_ARM_BAREMETAL_FAST_SCRATCH_TEMP_ALLOCATOR_POOL_SIZE 编译宏),默认值随示例与模型而异。
使用方式:创建 Zephyr 工作区并安装 west、cmake<4.0.0、pyelftools、ninja、jsonschema;west init --manifest-rev v4.4.0;添加 executorch.yaml 子清单并 west update;在 modules/lib/executorch 执行 git submodule update --init --recursive 与 ./install_executorch.sh;west sdk install --version 1.0.1 --gnu-toolchains arm-zephyr-eabi;NPU 板需运行 examples/arm/setup.sh --i-agree-to-the-contained-eula。构建命令:west build -b <board> modules/lib/executorch/zephyr/samples/<sample> -- -DET_PTE_FILE_PATH=<path/to/model.pte>;FVP 运行加 -t run;Python 选错时加 -DPython3_EXECUTABLE=$(which python3)。
限制:NPU 后端要求模型与暂存缓冲位于 DMA 可访问内存,具体区域依板而定;CONFIG_ET_ARM_MODEL_PTE_DMA_ACCESSIBLE 为按示例定义而非全局;池大小需按模型实测确定,资料未给出统一默认值。导出 .pte、裸机 Cortex-M、通用 ET C++ 构建等应使用其他技能。