21
21
22
22
from SCons .Script import Import
23
23
24
- Import ("env sdk_config project_config idf_variant" )
24
+ Import ("env sdk_config project_config app_includes idf_variant" )
25
25
26
26
ulp_env = env .Clone ()
27
27
platform = ulp_env .PioPlatform ()
@@ -37,20 +37,24 @@ def prepare_ulp_env_vars(env):
37
37
38
38
toolchain_path = platform .get_package_dir (
39
39
"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 ""
40
48
)
41
49
42
50
additional_packages = [
43
51
toolchain_path ,
44
- os .path .join (
45
- platform .get_package_dir ("toolchain-esp32ulp" ),
46
- "bin" ,
47
- ),
52
+ toolchain_path_ulp ,
48
53
platform .get_package_dir ("tool-ninja" ),
49
54
os .path .join (platform .get_package_dir ("tool-cmake" ), "bin" ),
50
55
os .path .dirname (where_is_program ("python" )),
51
56
]
52
57
53
-
54
58
for package in additional_packages :
55
59
ulp_env .PrependENVPath ("PATH" , package )
56
60
@@ -79,6 +83,19 @@ def get_component_includes(target_config):
79
83
def generate_ulp_config (target_config ):
80
84
def _generate_ulp_configuration_action (env , target , source ):
81
85
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
82
99
83
100
cmd = (
84
101
os .path .join (platform .get_package_dir ("tool-cmake" ), "bin" , "cmake" ),
@@ -89,21 +106,18 @@ def _generate_ulp_configuration_action(env, target, source):
89
106
"components" ,
90
107
"ulp" ,
91
108
"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 ,
97
110
),
98
111
"-DULP_S_SOURCES=%s" % ";" .join ([fs .to_unix_path (s .get_abspath ()) for s in source ]),
99
112
"-DULP_APP_NAME=ulp_main" ,
100
113
"-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 ,
102
115
"-DIDF_TARGET=%s" % idf_variant ,
103
116
"-DIDF_PATH=" + fs .to_unix_path (FRAMEWORK_DIR ),
104
117
"-DSDKCONFIG_HEADER=" + os .path .join (BUILD_DIR , "config" , "sdkconfig.h" ),
105
118
"-DPYTHON=" + env .subst ("$PYTHONEXE" ),
106
119
"-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" ),
107
121
"-GNinja" ,
108
122
"-B" ,
109
123
ULP_BUILD_DIR ,
0 commit comments