Skip to content

Commit 89f1a20

Browse files
committed
bsp: support env shared package paths
1 parent 9ed6154 commit 89f1a20

23 files changed

Lines changed: 533 additions & 62 deletions

File tree

bsp/ESP/ESP32_C3/rtconfig.py

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
if os.getenv('RTT_CC'):
99
CROSS_TOOL = os.getenv('RTT_CC')
1010

11-
if CROSS_TOOL == 'gcc':
11+
if CROSS_TOOL == 'gcc':
1212
PLATFORM = 'gcc'
1313
EXEC_PATH = r'~/.espressif/tools/riscv32-esp-elf/esp-2022r1-11.2.0/riscv32-esp-elf/bin'
1414
else:
@@ -21,6 +21,20 @@
2121

2222
BUILD = 'debug'
2323

24+
def _get_package_path(package_name):
25+
bsp_root = os.path.dirname(os.path.abspath(__file__))
26+
candidates = [
27+
os.path.join(bsp_root, 'libraries', package_name),
28+
os.path.join(os.path.dirname(bsp_root), 'libraries', package_name),
29+
os.path.join(bsp_root, 'packages', package_name),
30+
]
31+
32+
for path in candidates:
33+
if os.path.isdir(path):
34+
return os.path.relpath(path, bsp_root).replace('\\', '/')
35+
36+
return os.path.join('packages', package_name).replace('\\', '/')
37+
2438
if PLATFORM == 'gcc':
2539
# toolchains
2640
PREFIX = 'riscv32-esp-elf-'
@@ -38,8 +52,9 @@
3852
DEVICE = ' -nostartfiles -march=rv32imc --specs=nosys.specs -fasynchronous-unwind-tables '
3953
CFLAGS = DEVICE + '-include ../../components/libc/compilers/common/include/sys/ioctl.h -gdwarf-4 -ggdb -Og '
4054
AFLAGS = ' -c' + DEVICE + ' -x assembler-with-cpp'
41-
LFLAGS = DEVICE + ' -Wl,--cref -Wl,--defsym=IDF_TARGET_ESP32C3=0 -Wl,--gc-sections,-Map=rtthread.map,-cref,-u,_start -T idf_port/ld/memory.ld -T idf_port/ld/sections.ld -T packages/ESP-IDF-latest/components/esp_rom/esp32c3/ld/esp32c3.rom.ld -T packages/ESP-IDF-latest/components/esp_rom/esp32c3/ld/esp32c3.rom.api.ld -T packages/ESP-IDF-latest/components/esp_rom/esp32c3/ld/esp32c3.rom.libgcc.ld -T packages/ESP-IDF-latest/components/esp_rom/esp32c3/ld/esp32c3.rom.newlib.ld -T packages/ESP-IDF-latest/components/esp_rom/esp32c3/ld/esp32c3.rom.version.ld -T packages/ESP-IDF-latest/components/esp_rom/esp32c3/ld/esp32c3.rom.eco3.ld -T packages/ESP-IDF-latest/components/soc/esp32c3/ld/esp32c3.peripherals.ld -Wl,--wrap=_Unwind_SetEnableExceptionFdeSorting -Wl,--wrap=__register_frame_info_bases -Wl,--wrap=__register_frame_info -Wl,--wrap=__register_frame -Wl,--wrap=__register_frame_info_table_bases -Wl,--wrap=__register_frame_info_table -Wl,--wrap=__register_frame_table -Wl,--wrap=__deregister_frame_info_bases -Wl,--wrap=__deregister_frame_info -Wl,--wrap=_Unwind_Find_FDE -Wl,--wrap=_Unwind_GetGR -Wl,--wrap=_Unwind_GetCFA -Wl,--wrap=_Unwind_GetIP -Wl,--wrap=_Unwind_GetIPInfo -Wl,--wrap=_Unwind_GetRegionStart -Wl,--wrap=_Unwind_GetDataRelBase -Wl,--wrap=_Unwind_GetTextRelBase -Wl,--wrap=_Unwind_SetIP -Wl,--wrap=_Unwind_SetGR -Wl,--wrap=_Unwind_GetLanguageSpecificData -Wl,--wrap=_Unwind_FindEnclosingFunction -Wl,--wrap=_Unwind_Resume -Wl,--wrap=_Unwind_RaiseException -Wl,--wrap=_Unwind_DeleteException -Wl,--wrap=_Unwind_ForcedUnwind -Wl,--wrap=_Unwind_Resume_or_Rethrow -Wl,--wrap=_Unwind_Backtrace -Wl,--wrap=__cxa_call_unexpected -Wl,--eh-frame-hdr -Wl,--wrap=__gxx_personality_v0 -Wl,--cref -Wl,--defsym=IDF_TARGET_ESP32C3=0'
42-
CXXFLAGS = CFLAGS
55+
idf_path = _get_package_path('ESP-IDF-latest')
56+
LFLAGS = DEVICE + ' -Wl,--cref -Wl,--defsym=IDF_TARGET_ESP32C3=0 -Wl,--gc-sections,-Map=rtthread.map,-cref,-u,_start -T idf_port/ld/memory.ld -T idf_port/ld/sections.ld -T ' + idf_path + '/components/esp_rom/esp32c3/ld/esp32c3.rom.ld -T ' + idf_path + '/components/esp_rom/esp32c3/ld/esp32c3.rom.api.ld -T ' + idf_path + '/components/esp_rom/esp32c3/ld/esp32c3.rom.libgcc.ld -T ' + idf_path + '/components/esp_rom/esp32c3/ld/esp32c3.rom.newlib.ld -T ' + idf_path + '/components/esp_rom/esp32c3/ld/esp32c3.rom.version.ld -T ' + idf_path + '/components/esp_rom/esp32c3/ld/esp32c3.rom.eco3.ld -T ' + idf_path + '/components/soc/esp32c3/ld/esp32c3.peripherals.ld -Wl,--wrap=_Unwind_SetEnableExceptionFdeSorting -Wl,--wrap=__register_frame_info_bases -Wl,--wrap=__register_frame_info -Wl,--wrap=__register_frame -Wl,--wrap=__register_frame_info_table_bases -Wl,--wrap=__register_frame_info_table -Wl,--wrap=__register_frame_table -Wl,--wrap=__deregister_frame_info_bases -Wl,--wrap=__deregister_frame_info -Wl,--wrap=_Unwind_Find_FDE -Wl,--wrap=_Unwind_GetGR -Wl,--wrap=_Unwind_GetCFA -Wl,--wrap=_Unwind_GetIP -Wl,--wrap=_Unwind_GetIPInfo -Wl,--wrap=_Unwind_GetRegionStart -Wl,--wrap=_Unwind_GetDataRelBase -Wl,--wrap=_Unwind_GetTextRelBase -Wl,--wrap=_Unwind_SetIP -Wl,--wrap=_Unwind_SetGR -Wl,--wrap=_Unwind_GetLanguageSpecificData -Wl,--wrap=_Unwind_FindEnclosingFunction -Wl,--wrap=_Unwind_Resume -Wl,--wrap=_Unwind_RaiseException -Wl,--wrap=_Unwind_DeleteException -Wl,--wrap=_Unwind_ForcedUnwind -Wl,--wrap=_Unwind_Resume_or_Rethrow -Wl,--wrap=_Unwind_Backtrace -Wl,--wrap=__cxa_call_unexpected -Wl,--eh-frame-hdr -Wl,--wrap=__gxx_personality_v0 -Wl,--cref -Wl,--defsym=IDF_TARGET_ESP32C3=0'
57+
CXXFLAGS = CFLAGS
4358

4459
POST_ACTION = OBJCPY + ' -Oihex $TARGET rtthread.hex\n' + SIZE + ' $TARGET \n'
4560

bsp/Infineon/libraries/templates/XMC7200D/SConstruct

Lines changed: 23 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,10 +36,30 @@ Export('rtconfig')
3636

3737
SDK_ROOT = os.path.abspath('./')
3838

39-
if os.path.exists(SDK_ROOT + '/packages'):
40-
libraries_path_prefix = SDK_ROOT + '/packages'
41-
else:
39+
def _contains_infineon_package(path):
40+
if not os.path.isdir(path):
41+
return False
42+
43+
for name in os.listdir(path):
44+
package_path = os.path.join(path, name)
45+
if name.startswith('Infineon_mtb-pdl-cat1') and os.path.isdir(package_path):
46+
return True
47+
48+
return False
49+
50+
libraries_path_prefix = None
51+
for path in [
52+
os.path.join(SDK_ROOT, 'libraries'),
53+
os.path.join(os.path.dirname(SDK_ROOT), 'libraries'),
54+
os.path.join(SDK_ROOT, 'packages')
55+
]:
56+
if _contains_infineon_package(path):
57+
libraries_path_prefix = path
58+
break
59+
60+
if not libraries_path_prefix:
4261
print("Error: Packages for HAL_Driver does not exist, pull it in ENV using `pkg --update`.")
62+
libraries_path_prefix = os.path.join(SDK_ROOT, 'packages')
4363

4464
SDK_LIB = libraries_path_prefix
4565
Export('SDK_LIB')

bsp/Infineon/psoc6-cy8ckit-062-BLE/SConstruct

Lines changed: 22 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,12 +36,30 @@ Export('rtconfig')
3636

3737
SDK_ROOT = os.path.abspath('./')
3838

39-
libraries_path_prefix = SDK_ROOT
39+
def _contains_infineon_package(path):
40+
if not os.path.isdir(path):
41+
return False
4042

41-
if os.path.exists(SDK_ROOT + '/packages'):
42-
libraries_path_prefix = SDK_ROOT + '/packages'
43-
else:
43+
for name in os.listdir(path):
44+
package_path = os.path.join(path, name)
45+
if name.startswith('Infineon_mtb-pdl-cat1') and os.path.isdir(package_path):
46+
return True
47+
48+
return False
49+
50+
libraries_path_prefix = None
51+
for path in [
52+
os.path.join(SDK_ROOT, 'libraries'),
53+
os.path.join(os.path.dirname(SDK_ROOT), 'libraries'),
54+
os.path.join(SDK_ROOT, 'packages')
55+
]:
56+
if _contains_infineon_package(path):
57+
libraries_path_prefix = path
58+
break
59+
60+
if not libraries_path_prefix:
4461
print("Error: Packages for HAL_Driver does not exist, pull it in ENV using `pkg --update`.")
62+
libraries_path_prefix = os.path.join(SDK_ROOT, 'packages')
4563

4664
SDK_LIB = libraries_path_prefix
4765
Export('SDK_LIB')

bsp/Infineon/psoc6-cy8ckit-062-WIFI-BT/SConstruct

Lines changed: 22 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,12 +36,30 @@ Export('rtconfig')
3636

3737
SDK_ROOT = os.path.abspath('./')
3838

39-
libraries_path_prefix = SDK_ROOT
39+
def _contains_infineon_package(path):
40+
if not os.path.isdir(path):
41+
return False
4042

41-
if os.path.exists(SDK_ROOT + '/packages'):
42-
libraries_path_prefix = SDK_ROOT + '/packages'
43-
else:
43+
for name in os.listdir(path):
44+
package_path = os.path.join(path, name)
45+
if name.startswith('Infineon_mtb-pdl-cat1') and os.path.isdir(package_path):
46+
return True
47+
48+
return False
49+
50+
libraries_path_prefix = None
51+
for path in [
52+
os.path.join(SDK_ROOT, 'libraries'),
53+
os.path.join(os.path.dirname(SDK_ROOT), 'libraries'),
54+
os.path.join(SDK_ROOT, 'packages')
55+
]:
56+
if _contains_infineon_package(path):
57+
libraries_path_prefix = path
58+
break
59+
60+
if not libraries_path_prefix:
4461
print("Error: Packages for HAL_Driver does not exist, pull it in ENV using `pkg --update`.")
62+
libraries_path_prefix = os.path.join(SDK_ROOT, 'packages')
4563

4664
SDK_LIB = libraries_path_prefix
4765
Export('SDK_LIB')

bsp/Infineon/psoc6-cy8ckit-062S2-43012/SConstruct

Lines changed: 22 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,12 +36,30 @@ Export('rtconfig')
3636

3737
SDK_ROOT = os.path.abspath('./')
3838

39-
libraries_path_prefix = SDK_ROOT
39+
def _contains_infineon_package(path):
40+
if not os.path.isdir(path):
41+
return False
4042

41-
if os.path.exists(SDK_ROOT + '/packages'):
42-
libraries_path_prefix = SDK_ROOT + '/packages'
43-
else:
43+
for name in os.listdir(path):
44+
package_path = os.path.join(path, name)
45+
if name.startswith('Infineon_mtb-pdl-cat1') and os.path.isdir(package_path):
46+
return True
47+
48+
return False
49+
50+
libraries_path_prefix = None
51+
for path in [
52+
os.path.join(SDK_ROOT, 'libraries'),
53+
os.path.join(os.path.dirname(SDK_ROOT), 'libraries'),
54+
os.path.join(SDK_ROOT, 'packages')
55+
]:
56+
if _contains_infineon_package(path):
57+
libraries_path_prefix = path
58+
break
59+
60+
if not libraries_path_prefix:
4461
print("Error: Packages for HAL_Driver does not exist, pull it in ENV using `pkg --update`.")
62+
libraries_path_prefix = os.path.join(SDK_ROOT, 'packages')
4563

4664
SDK_LIB = libraries_path_prefix
4765
Export('SDK_LIB')

bsp/Infineon/psoc6-cy8ckit-062s4/SConstruct

Lines changed: 22 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,12 +36,30 @@ Export('rtconfig')
3636

3737
SDK_ROOT = os.path.abspath('./')
3838

39-
libraries_path_prefix = SDK_ROOT
39+
def _contains_infineon_package(path):
40+
if not os.path.isdir(path):
41+
return False
4042

41-
if os.path.exists(SDK_ROOT + '/packages'):
42-
libraries_path_prefix = SDK_ROOT + '/packages'
43-
else:
43+
for name in os.listdir(path):
44+
package_path = os.path.join(path, name)
45+
if name.startswith('Infineon_mtb-pdl-cat1') and os.path.isdir(package_path):
46+
return True
47+
48+
return False
49+
50+
libraries_path_prefix = None
51+
for path in [
52+
os.path.join(SDK_ROOT, 'libraries'),
53+
os.path.join(os.path.dirname(SDK_ROOT), 'libraries'),
54+
os.path.join(SDK_ROOT, 'packages')
55+
]:
56+
if _contains_infineon_package(path):
57+
libraries_path_prefix = path
58+
break
59+
60+
if not libraries_path_prefix:
4461
print("Error: Packages for HAL_Driver does not exist, pull it in ENV using `pkg --update`.")
62+
libraries_path_prefix = os.path.join(SDK_ROOT, 'packages')
4563

4664
SDK_LIB = libraries_path_prefix
4765
Export('SDK_LIB')

bsp/Infineon/psoc6-cy8cproto-062S3-4343W/SConstruct

Lines changed: 22 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,12 +36,30 @@ Export('rtconfig')
3636

3737
SDK_ROOT = os.path.abspath('./')
3838

39-
libraries_path_prefix = SDK_ROOT
39+
def _contains_infineon_package(path):
40+
if not os.path.isdir(path):
41+
return False
4042

41-
if os.path.exists(SDK_ROOT + '/packages'):
42-
libraries_path_prefix = SDK_ROOT + '/packages'
43-
else:
43+
for name in os.listdir(path):
44+
package_path = os.path.join(path, name)
45+
if name.startswith('Infineon_mtb-pdl-cat1') and os.path.isdir(package_path):
46+
return True
47+
48+
return False
49+
50+
libraries_path_prefix = None
51+
for path in [
52+
os.path.join(SDK_ROOT, 'libraries'),
53+
os.path.join(os.path.dirname(SDK_ROOT), 'libraries'),
54+
os.path.join(SDK_ROOT, 'packages')
55+
]:
56+
if _contains_infineon_package(path):
57+
libraries_path_prefix = path
58+
break
59+
60+
if not libraries_path_prefix:
4461
print("Error: Packages for HAL_Driver does not exist, pull it in ENV using `pkg --update`.")
62+
libraries_path_prefix = os.path.join(SDK_ROOT, 'packages')
4563

4664
SDK_LIB = libraries_path_prefix
4765
Export('SDK_LIB')

bsp/Infineon/psoc6-evaluationkit-062S2/SConstruct

Lines changed: 22 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,12 +36,30 @@ Export('rtconfig')
3636

3737
SDK_ROOT = os.path.abspath('./')
3838

39-
libraries_path_prefix = SDK_ROOT
39+
def _contains_infineon_package(path):
40+
if not os.path.isdir(path):
41+
return False
4042

41-
if os.path.exists(SDK_ROOT + '/packages'):
42-
libraries_path_prefix = SDK_ROOT + '/packages'
43-
else:
43+
for name in os.listdir(path):
44+
package_path = os.path.join(path, name)
45+
if name.startswith('Infineon_mtb-pdl-cat1') and os.path.isdir(package_path):
46+
return True
47+
48+
return False
49+
50+
libraries_path_prefix = None
51+
for path in [
52+
os.path.join(SDK_ROOT, 'libraries'),
53+
os.path.join(os.path.dirname(SDK_ROOT), 'libraries'),
54+
os.path.join(SDK_ROOT, 'packages')
55+
]:
56+
if _contains_infineon_package(path):
57+
libraries_path_prefix = path
58+
break
59+
60+
if not libraries_path_prefix:
4461
print("Error: Packages for HAL_Driver does not exist, pull it in ENV using `pkg --update`.")
62+
libraries_path_prefix = os.path.join(SDK_ROOT, 'packages')
4563

4664
SDK_LIB = libraries_path_prefix
4765
Export('SDK_LIB')

bsp/Infineon/xmc7100d-f144k4160aa/SConstruct

Lines changed: 22 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,12 +36,30 @@ Export('rtconfig')
3636

3737
SDK_ROOT = os.path.abspath('./')
3838

39-
libraries_path_prefix = SDK_ROOT
39+
def _contains_infineon_package(path):
40+
if not os.path.isdir(path):
41+
return False
4042

41-
if os.path.exists(SDK_ROOT + '/packages'):
42-
libraries_path_prefix = SDK_ROOT + '/packages'
43-
else:
43+
for name in os.listdir(path):
44+
package_path = os.path.join(path, name)
45+
if name.startswith('Infineon_mtb-pdl-cat1') and os.path.isdir(package_path):
46+
return True
47+
48+
return False
49+
50+
libraries_path_prefix = None
51+
for path in [
52+
os.path.join(SDK_ROOT, 'libraries'),
53+
os.path.join(os.path.dirname(SDK_ROOT), 'libraries'),
54+
os.path.join(SDK_ROOT, 'packages')
55+
]:
56+
if _contains_infineon_package(path):
57+
libraries_path_prefix = path
58+
break
59+
60+
if not libraries_path_prefix:
4461
print("Error: Packages for HAL_Driver does not exist, pull it in ENV using `pkg --update`.")
62+
libraries_path_prefix = os.path.join(SDK_ROOT, 'packages')
4563

4664
SDK_LIB = libraries_path_prefix
4765
Export('SDK_LIB')

bsp/Infineon/xmc7200-kit_xmc7200_evk/SConstruct

Lines changed: 22 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,12 +36,30 @@ Export('rtconfig')
3636

3737
SDK_ROOT = os.path.abspath('./')
3838

39-
libraries_path_prefix = SDK_ROOT
39+
def _contains_infineon_package(path):
40+
if not os.path.isdir(path):
41+
return False
4042

41-
if os.path.exists(SDK_ROOT + '/packages'):
42-
libraries_path_prefix = SDK_ROOT + '/packages'
43-
else:
43+
for name in os.listdir(path):
44+
package_path = os.path.join(path, name)
45+
if name.startswith('Infineon_mtb-pdl-cat1') and os.path.isdir(package_path):
46+
return True
47+
48+
return False
49+
50+
libraries_path_prefix = None
51+
for path in [
52+
os.path.join(SDK_ROOT, 'libraries'),
53+
os.path.join(os.path.dirname(SDK_ROOT), 'libraries'),
54+
os.path.join(SDK_ROOT, 'packages')
55+
]:
56+
if _contains_infineon_package(path):
57+
libraries_path_prefix = path
58+
break
59+
60+
if not libraries_path_prefix:
4461
print("Error: Packages for HAL_Driver does not exist, pull it in ENV using `pkg --update`.")
62+
libraries_path_prefix = os.path.join(SDK_ROOT, 'packages')
4563

4664
SDK_LIB = libraries_path_prefix
4765
Export('SDK_LIB')

0 commit comments

Comments
 (0)