You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ESP-IDF编译ULP模块报错:工具版本不匹配问题求助

解决ESP32C6 ULP模块编译时系统CC版本不兼容问题

问题根源

构建ULP程序(lp_core_main)时,CMake错误调用了系统默认的/usr/bin/cc,而非ESP-IDF自带的ULP-RISC-V专用工具链,导致版本匹配失败。

解决步骤

1. 确认ESP-IDF环境变量正确初始化

终端中执行ESP-IDF的环境初始化脚本,确保工具链路径被正确设置:

. $IDF_PATH/export.sh

Windows环境执行:

%IDF_PATH%\export.bat

2. 修改组件CMakeLists.txt,强制指定ULP工具链

在你的组件CMakeLists.txt中,添加ULP编译器的明确指定,确保构建ULP程序时使用ESP-IDF自带的工具链:

idf_component_register(SRCS "ulp-experiment.c" INCLUDE_DIRS "." REQUIRES ulp)

# a name for the app that runs on the low power chip
set(ulp_app_name lp_core_main)

# sources for the program that runs on the low power chip
set(ulp_sources "ulp/ulp.c")

# sources that run on the main CPU and need to directly include generated interfaces to low power device
set(ulp_exp_dep_srcs "ulp-experiment.c")

# 强制指定ULP-RISC-V专用工具链路径
set(ulp_cc "${IDF_PATH}/components/ulp/ulp_cc/bin/ulp-riscv32-unknown-elf-gcc")
set(ulp_ld "${IDF_PATH}/components/ulp/ulp_cc/bin/ulp-riscv32-unknown-elf-ld")

# 为ULP目标设置编译器和链接器
set_property(TARGET ${ulp_app_name} PROPERTY CC ${ulp_cc})
set_property(TARGET ${ulp_app_name} PROPERTY LINKER ${ulp_ld})

# embed the low power program into the main program
ulp_embed_binary(${ulp_app_name} "${ulp_sources}" "${ulp_exp_dep_srcs}")

注意:请确认${IDF_PATH}/components/ulp/ulp_cc/bin/路径下存在上述工具链文件,不同ESP-IDF版本的路径可能略有差异。

3. 彻底清理缓存并重新构建

执行以下命令清除旧缓存,重新配置目标并构建:

idf.py fullclean
idf.py set-target esp32c6
idf.py build

4. 检查项目根目录CMakeLists.txt配置

确保项目根目录的CMakeLists.txt正确加载ESP-IDF的工具链配置:

cmake_minimum_required(VERSION 3.16)
include($ENV{IDF_PATH}/tools/cmake/project.cmake)
project(your_project_name)

替换your_project_name为你的实际项目名称。


内容的提问来源于stack exchange,提问作者Alex Flint

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 22:22:37