2121
2222from SCons .Script import Import
2323
24- Import ("env sdk_config project_config idf_variant" )
24+ Import ("env sdk_config project_config app_includes idf_variant" )
2525
2626ulp_env = env .Clone ()
2727platform = ulp_env .PioPlatform ()
@@ -37,20 +37,24 @@ def prepare_ulp_env_vars(env):
3737
3838 toolchain_path = platform .get_package_dir (
3939 "toolchain-xtensa-%s" % idf_variant
40+ if idf_variant not in ("esp32c6" , "esp32p4" )
41+ else "toolchain-riscv32-esp"
42+ )
43+
44+ toolchain_path_ulp = platform .get_package_dir (
45+ "toolchain-esp32ulp"
46+ if sdk_config .get ("ULP_COPROC_TYPE_FSM" , False )
47+ else ""
4048 )
4149
4250 additional_packages = [
4351 toolchain_path ,
44- os .path .join (
45- platform .get_package_dir ("toolchain-esp32ulp" ),
46- "bin" ,
47- ),
52+ toolchain_path_ulp ,
4853 platform .get_package_dir ("tool-ninja" ),
4954 os .path .join (platform .get_package_dir ("tool-cmake" ), "bin" ),
5055 os .path .dirname (where_is_program ("python" )),
5156 ]
5257
53-
5458 for package in additional_packages :
5559 ulp_env .PrependENVPath ("PATH" , package )
5660
@@ -79,6 +83,19 @@ def get_component_includes(target_config):
7983def generate_ulp_config (target_config ):
8084 def _generate_ulp_configuration_action (env , target , source ):
8185 riscv_ulp_enabled = sdk_config .get ("ULP_COPROC_TYPE_RISCV" , False )
86+ lp_core_ulp_enabled = sdk_config .get ("ULP_COPROC_TYPE_LP_CORE" , False )
87+
88+ if lp_core_ulp_enabled == False :
89+ ulp_toolchain = "toolchain-%sulp%s.cmake" % (
90+ "" if riscv_ulp_enabled else idf_variant + "-" ,
91+ "-riscv" if riscv_ulp_enabled else "" ,
92+ )
93+ else :
94+ ulp_toolchain = "toolchain-lp-core-riscv.cmake"
95+
96+ comp_includes = ";" .join (get_component_includes (target_config ))
97+ plain_includes = ";" .join (app_includes ["plain_includes" ])
98+ comp_includes = comp_includes + plain_includes
8299
83100 cmd = (
84101 os .path .join (platform .get_package_dir ("tool-cmake" ), "bin" , "cmake" ),
@@ -89,21 +106,18 @@ def _generate_ulp_configuration_action(env, target, source):
89106 "components" ,
90107 "ulp" ,
91108 "cmake" ,
92- "toolchain-%sulp%s.cmake"
93- % (
94- "" if riscv_ulp_enabled else idf_variant + "-" ,
95- "-riscv" if riscv_ulp_enabled else "" ,
96- ),
109+ ulp_toolchain ,
97110 ),
98111 "-DULP_S_SOURCES=%s" % ";" .join ([fs .to_unix_path (s .get_abspath ()) for s in source ]),
99112 "-DULP_APP_NAME=ulp_main" ,
100113 "-DCOMPONENT_DIR=" + os .path .join (ulp_env .subst ("$PROJECT_DIR" ), "ulp" ),
101- "-DCOMPONENT_INCLUDES=%s" % ";" . join ( get_component_includes ( target_config )) ,
114+ "-DCOMPONENT_INCLUDES=" + comp_includes ,
102115 "-DIDF_TARGET=%s" % idf_variant ,
103116 "-DIDF_PATH=" + fs .to_unix_path (FRAMEWORK_DIR ),
104117 "-DSDKCONFIG_HEADER=" + os .path .join (BUILD_DIR , "config" , "sdkconfig.h" ),
105118 "-DPYTHON=" + env .subst ("$PYTHONEXE" ),
106119 "-DULP_COCPU_IS_RISCV=%s" % ("ON" if riscv_ulp_enabled else "OFF" ),
120+ "-DULP_COCPU_IS_LP_CORE=%s" % ("ON" if lp_core_ulp_enabled else "OFF" ),
107121 "-GNinja" ,
108122 "-B" ,
109123 ULP_BUILD_DIR ,
0 commit comments