Merge branch 'feat/ulp_component_split' into 'master'

refactor(ulp): separate the ULP coprocessor code from the driver

Closes IDF-15957

See merge request espressif/esp-idf!52268
This commit is contained in:
Sudeep Mohanty
2026-09-15 11:49:23 +02:00
116 changed files with 583 additions and 526 deletions
+1 -1
View File
@@ -25,7 +25,7 @@ components/partition_table/test_gen_esp32part_host/check_sizes_test.py
components/partition_table/test_gen_esp32part_host/gen_esp32part_tests.py
components/spiffs/spiffsgen.py
components/spiffs/test_spiffsgen/test_spiffsgen.py
components/ulp/esp32ulp_mapgen.py
components/ulp/subproject/esp32ulp_mapgen.py
docs/check_lang_folder_sync.sh
examples/build_system/cmake/idf_as_lib/build-esp32.sh
examples/build_system/cmake/idf_as_lib/build-esp32c2.sh
@@ -1,6 +1,6 @@
cmake_minimum_required(VERSION 3.22)
include(${IDF_PATH}/components/ulp/cmake/ulp_project.cmake)
include(${IDF_PATH}/components/ulp/subproject/ulp_project.cmake)
project(${IDF_DEFAULT_PROJECT_NAME} ASM)
@@ -1,2 +1 @@
idf_component_register(SRCS "main.S"
REQUIRES ulp)
idf_component_register(SRCS "main.S")
@@ -1,6 +1,6 @@
cmake_minimum_required(VERSION 3.22)
include(${IDF_PATH}/components/ulp/cmake/ulp_project.cmake)
include(${IDF_PATH}/components/ulp/subproject/ulp_project.cmake)
project(${IDF_DEFAULT_PROJECT_NAME} C CXX ASM)
@@ -1,2 +1 @@
idf_component_register(SRCS "main.c"
REQUIRES ulp)
idf_component_register(SRCS "main.c")
@@ -1,6 +1,6 @@
cmake_minimum_required(VERSION 3.22)
include(${IDF_PATH}/components/ulp/cmake/ulp_project.cmake)
include(${IDF_PATH}/components/ulp/subproject/ulp_project.cmake)
project(${IDF_DEFAULT_PROJECT_NAME} ASM)
@@ -1,2 +1 @@
idf_component_register(SRCS "wake_up.S"
REQUIRES ulp)
idf_component_register(SRCS "wake_up.S")
@@ -2,7 +2,7 @@ set(srcs
"counter.S")
idf_component_register(SRCS ${srcs}
REQUIRES ulp ulp_wake
REQUIRES ulp_wake
LDFRAGMENTS "ulp_fsm_sections.lf")
target_compile_definitions(${COMPONENT_LIB} PRIVATE ULP_BUILD_SYSTEM_FSM_EXAMPLE=1)
@@ -1,6 +1,6 @@
cmake_minimum_required(VERSION 3.22)
include(${IDF_PATH}/components/ulp/cmake/ulp_project.cmake)
include(${IDF_PATH}/components/ulp/subproject/ulp_project.cmake)
project(${IDF_DEFAULT_PROJECT_NAME} C CXX ASM)
@@ -1,5 +1,5 @@
idf_component_register(SRCS "main.c"
REQUIRES ulp ulp_sum ulp_math)
REQUIRES ulp_sum ulp_math)
# Linker script template processed by ldgen. The mapping[ulp_math_fast]
# marker is resolved using the .lf fragment from the ulp_math component.
@@ -1,6 +1,6 @@
cmake_minimum_required(VERSION 3.22)
include(${IDF_PATH}/components/ulp/cmake/ulp_project.cmake)
include(${IDF_PATH}/components/ulp/subproject/ulp_project.cmake)
project(${IDF_DEFAULT_PROJECT_NAME} C CXX ASM)
@@ -1,2 +1 @@
idf_component_register(SRCS "main.c"
REQUIRES ulp)
idf_component_register(SRCS "main.c")
@@ -1,2 +1 @@
idf_component_register(SRCS "main.c"
REQUIRES ulp)
idf_component_register(SRCS "main.c")
@@ -1,6 +1,6 @@
cmake_minimum_required(VERSION 3.22)
include(${IDF_PATH}/components/ulp/cmake/ulp_project.cmake)
include(${IDF_PATH}/components/ulp/subproject/ulp_project.cmake)
project(${IDF_DEFAULT_PROJECT_NAME} C CXX ASM)
@@ -1,5 +1,4 @@
idf_component_register(SRCS "main.c"
REQUIRES ulp
LDFRAGMENTS "ulp_riscv_sections.lf")
# Supplementary linker script template processed by ldgen. The mapping marker
+5 -4
View File
@@ -87,7 +87,7 @@ def _sha256(path: Path) -> str:
'entry_point,add_native_executable,expected_available,expected_unavailable',
(
(
'${IDF_PATH}/components/ulp/cmake/ulp_project.cmake',
'${IDF_PATH}/components/ulp/subproject/ulp_project.cmake',
False,
FULL_PROJECT_APIS,
LEGACY_PROJECT_APIS,
@@ -116,7 +116,8 @@ def test_ulp_cmake_api_availability(
build_dir = tmp_path / 'build'
project_dir.mkdir()
_write_api_probe_project(project_dir, entry_point, add_native_executable)
ulp_cmake_dir = idf_path / 'components' / 'ulp' / 'cmake'
ulp_subproject_dir = idf_path / 'components' / 'ulp' / 'subproject'
lp_core_toolchain = ulp_subproject_dir / 'components' / 'lp_core' / 'toolchain-lp-core-riscv.cmake'
cmake_args = (
'cmake',
@@ -126,8 +127,8 @@ def test_ulp_cmake_api_availability(
_cmake_path(project_dir),
'-B',
_cmake_path(build_dir),
f'-DCMAKE_MODULE_PATH={_cmake_path(ulp_cmake_dir)}',
f'-DCMAKE_TOOLCHAIN_FILE={_cmake_path(ulp_cmake_dir / "toolchain-lp-core-riscv.cmake")}',
f'-DCMAKE_MODULE_PATH={_cmake_path(ulp_subproject_dir)}',
f'-DCMAKE_TOOLCHAIN_FILE={_cmake_path(lp_core_toolchain)}',
f'-DIDF_PATH={_cmake_path(idf_path)}',
'-DIDF_TARGET=esp32c6',
f'-DSDKCONFIG_CMAKE={_cmake_path(project_dir / "sdkconfig.cmake")}',