From 996e561145861af5f74f6dc6d91c1a8d1b70da30 Mon Sep 17 00:00:00 2001 From: CYFS <2805686936@qq.com> Date: Thu, 28 May 2026 14:44:47 +0800 Subject: [PATCH 1/2] [feat][ci]: verify bsp dist build --- .github/workflows/bsp_buildings.yml | 3 +- tools/ci/bsp_buildings.py | 57 +++++++++++++++++++++++++++++ 2 files changed, 59 insertions(+), 1 deletion(-) diff --git a/.github/workflows/bsp_buildings.yml b/.github/workflows/bsp_buildings.yml index 4cfd33eb385..1dc23d789d3 100644 --- a/.github/workflows/bsp_buildings.yml +++ b/.github/workflows/bsp_buildings.yml @@ -257,6 +257,7 @@ jobs: RTT_BSP: ${{ matrix.legs.RTT_BSP }} RTT_TOOL_CHAIN: ${{ matrix.legs.RTT_TOOL_CHAIN }} SRTT_BSP: ${{ join(matrix.legs.SUB_RTT_BSP, ',') }} + RTT_CI_BUILD_DIST: "1" run: | source ~/.env/env.sh python tools/ci/bsp_buildings.py @@ -306,4 +307,4 @@ jobs: # pr_number: ${{ github.event.pull_request.number }} # permissions: # pull-requests: write - # issues: write \ No newline at end of file + # issues: write diff --git a/tools/ci/bsp_buildings.py b/tools/ci/bsp_buildings.py index 6678b5cef58..eb0de0434d1 100644 --- a/tools/ci/bsp_buildings.py +++ b/tools/ci/bsp_buildings.py @@ -49,6 +49,54 @@ def run_cmd(cmd, output_info=True): return output_str_list, res +def is_env_enabled(name, default=False): + value = os.getenv(name) + if value is None: + return default + + return value.lower() not in ('', '0', 'false', 'no', 'off') + +def run_dist_build_check(bsp, scons_args=''): + """ + build BSP distribution and verify that the generated project can compile. + """ + os.chdir(rtt_root) + dist_root = os.path.join(rtt_root, 'bsp', bsp, 'dist') + dist_project = os.path.join(dist_root, 'project') + if os.path.exists(dist_root): + shutil.rmtree(dist_root) + + old_rtt_root = None + try: + _, res = run_cmd(f'scons --dist -C bsp/{bsp} {scons_args}', output_info=True) + if res != 0: + print(f"::error::scons --dist failed for {bsp}") + return False + + if not os.path.exists(dist_project): + print(f"::error::dist project not found: {dist_project}") + return False + + old_rtt_root = os.environ.pop('RTT_ROOT', None) + _, res = run_cmd(f'scons --pyconfig-silent -C {dist_project}', output_info=True) + if res != 0: + print(f"::error::dist project pyconfig failed for {bsp}") + return False + + nproc = multiprocessing.cpu_count() + _, res = run_cmd(f'scons -C {dist_project} -j{nproc}', output_info=True) + if res != 0: + print(f"::error::dist project build failed for {bsp}") + return False + finally: + if old_rtt_root is not None: + os.environ['RTT_ROOT'] = old_rtt_root + os.chdir(rtt_root) + if os.path.exists(dist_root): + shutil.rmtree(dist_root) + + return True + def build_bsp(bsp, scons_args='',name='default', pre_build_commands=None, post_build_command=None,build_check_result = None,bsp_build_env=None): """ @@ -115,6 +163,15 @@ def build_bsp(bsp, scons_args='',name='default', pre_build_commands=None, post_b files = glob.glob(f'{rtt_root}/bsp/{bsp}/{file_type}') for file in files: shutil.copy(file, f'{rtt_root}/output/bsp/{bsp}/{name.replace("/", "_")}.{file_type[2:]}') + if is_env_enabled('RTT_CI_BUILD_DIST'): + print(f"::group::\tChecking dist project: {bsp} {name}") + dist_res = run_dist_build_check(bsp, scons_args) + print("::endgroup::") + if not dist_res: + add_summary(f'\t- ❌ dist build {bsp} {name} failed.') + success = False + else: + add_summary(f'\t- ✅ dist build {bsp} {name} success.') os.chdir(f'{rtt_root}/bsp/{bsp}') if post_build_command is not None: From 17aa324ebad41a758bb6ea8e39596e20a1642fa5 Mon Sep 17 00:00:00 2001 From: CYFS <2805686936@qq.com> Date: Thu, 28 May 2026 14:45:23 +0800 Subject: [PATCH 2/2] Fix BSP dist packaging --- bsp/ESP/ESP32_C3/rtconfig.py | 6 ++ bsp/ESP/tools/sdk_dist.py | 7 ++- bsp/Infineon/tools/sdk_dist.py | 10 +++- bsp/allwinner/d1s/rtconfig.py | 6 ++ bsp/allwinner/tools/sdk_dist.py | 26 ++++++++ bsp/at32/at32f421-start/board/Kconfig | 1 + bsp/at32/at32m412-start/board/Kconfig | 1 + bsp/at32/at32m416-start/board/Kconfig | 1 + bsp/essemi/es32f365x/rtconfig.py | 6 ++ bsp/essemi/tools/sdk_dist.py | 11 ++++ bsp/fm33lc026/rtconfig.py | 2 +- bsp/fm33lc026/tools/sdk_dist.py | 2 + bsp/ft32/tools/sdk_dist.py | 25 +++++++- bsp/hc32/tools/sdk_dist.py | 22 ++++++- bsp/hk32/tools/sdk_dist.py | 11 ++++ bsp/hpmicro/tools/sdk_dist.py | 32 ++++++++++ .../libraries/HT32_STD_1xxxx_FWLib/SConscript | 7 ++- .../libraries/HT32_STD_5xxxx_FWLib/SConscript | 7 ++- bsp/ht32/tools/sdk_dist.py | 5 +- bsp/microchip/samc21/rtconfig.py | 6 ++ bsp/microchip/same54/rtconfig.py | 6 ++ bsp/microchip/same70/rtconfig.py | 6 ++ bsp/microchip/tools/sdk_dist.py | 11 ++++ bsp/mm32/mm32f327x/.config | 57 +++++++++++++++--- bsp/mm32/mm32f327x/SConstruct | 9 +++ bsp/mm32/mm32f327x/rtconfig.h | 30 ++++++++-- bsp/mm32/mm32f327x/rtconfig.py | 6 ++ bsp/mm32/mm32f526x/.config | 59 +++++++++++++++---- bsp/mm32/mm32f526x/SConstruct | 9 +++ bsp/mm32/mm32f526x/rtconfig.h | 32 +++++++--- bsp/mm32/mm32f526x/rtconfig.py | 6 ++ bsp/mm32/mm32l07x/.config | 52 +++++++++++++--- bsp/mm32/mm32l07x/SConstruct | 10 ++++ bsp/mm32/mm32l07x/rtconfig.h | 26 ++++++-- bsp/mm32/mm32l07x/rtconfig.py | 6 ++ bsp/mm32/tools/sdk_dist.py | 6 +- bsp/n32/n32gxx_lxx/tools/sdk_dist.py | 5 +- bsp/novosns/ns800/tools/sdk_dist.py | 16 +++++ bsp/nuvoton/tools/sdk_dist.py | 25 +++++++- .../imxrt/imxrt1180-nxp-evk/cm33/rtconfig.py | 4 +- .../imxrt/imxrt1180-nxp-evk/cm7/rtconfig.py | 4 +- bsp/nxp/imx/imxrt/tools/sdk_dist.py | 34 +++++++++++ bsp/nxp/lpc/lpc55sxx/tools/sdk_dist.py | 3 +- bsp/raspberry-pico/RP2040/rtconfig.py | 6 ++ bsp/raspberry-pico/RP2350/rtconfig.py | 6 ++ bsp/raspberry-pico/tools/sdk_dist.py | 11 ++++ bsp/stm32/stm32f411-atk-nano/rtconfig.py | 6 ++ bsp/stm32/stm32f413-st-nucleo/rtconfig.py | 6 ++ bsp/stm32/stm32l433-st-nucleo/rtconfig.py | 6 ++ bsp/synwit/swm320-mini/rtconfig.py | 6 ++ bsp/synwit/swm341-mini/rtconfig.py | 6 ++ bsp/synwit/tools/sdk_dist.py | 11 ++++ bsp/ultrarisc/tools/sdk_dist.py | 13 ++++ bsp/ultrarisc/ur_dp1000_evb/rtconfig.py | 8 ++- bsp/wch/arm/ch32f103c8-core/Kconfig | 2 +- bsp/wch/arm/ch32f203r-evt/Kconfig | 2 +- bsp/wch/arm/tools/sdk_dist.py | 12 ++-- bsp/wch/risc-v/tools/sdk_dist.py | 10 ++-- bsp/xplorer4330/M4/rtconfig.py | 6 ++ bsp/xplorer4330/tools/sdk_dist.py | 29 +++++++++ bsp/yichip/tools/sdk_dist.py | 2 + 61 files changed, 681 insertions(+), 83 deletions(-) create mode 100644 bsp/essemi/tools/sdk_dist.py create mode 100644 bsp/fm33lc026/tools/sdk_dist.py create mode 100644 bsp/hk32/tools/sdk_dist.py create mode 100644 bsp/microchip/tools/sdk_dist.py create mode 100644 bsp/raspberry-pico/tools/sdk_dist.py create mode 100644 bsp/synwit/tools/sdk_dist.py create mode 100644 bsp/ultrarisc/tools/sdk_dist.py create mode 100644 bsp/xplorer4330/tools/sdk_dist.py create mode 100644 bsp/yichip/tools/sdk_dist.py diff --git a/bsp/ESP/ESP32_C3/rtconfig.py b/bsp/ESP/ESP32_C3/rtconfig.py index c1c04fc739d..6ed986349dc 100644 --- a/bsp/ESP/ESP32_C3/rtconfig.py +++ b/bsp/ESP/ESP32_C3/rtconfig.py @@ -42,3 +42,9 @@ CXXFLAGS = CFLAGS POST_ACTION = OBJCPY + ' -Oihex $TARGET rtthread.hex\n' + SIZE + ' $TARGET \n' + +def dist_handle(BSP_ROOT, dist_dir): + import sys + sys.path.append(os.path.join(os.path.dirname(BSP_ROOT), 'tools')) + from sdk_dist import dist_do_building + dist_do_building(BSP_ROOT, dist_dir) diff --git a/bsp/ESP/tools/sdk_dist.py b/bsp/ESP/tools/sdk_dist.py index 11a39a60de7..e0aaac74f1f 100644 --- a/bsp/ESP/tools/sdk_dist.py +++ b/bsp/ESP/tools/sdk_dist.py @@ -9,9 +9,12 @@ # BSP dist function def dist_do_building(BSP_ROOT, dist_dir): from mkdist import bsp_copy_files - import rtconfig + library_dir = os.path.join(dist_dir, 'libraries') + library_path = os.path.join(os.path.dirname(BSP_ROOT), 'libraries') print("=> copy bsp drivers") bsp_copy_files(os.path.join(library_path, 'drivers'), os.path.join(library_dir, 'drivers')) - shutil.copyfile(os.path.join(library_path, 'Kconfig'), os.path.join(library_dir, 'Kconfig')) + kconfig = os.path.join(library_path, 'Kconfig') + if os.path.exists(kconfig): + shutil.copyfile(kconfig, os.path.join(library_dir, 'Kconfig')) diff --git a/bsp/Infineon/tools/sdk_dist.py b/bsp/Infineon/tools/sdk_dist.py index 5c14af7adb2..237addf0bd8 100644 --- a/bsp/Infineon/tools/sdk_dist.py +++ b/bsp/Infineon/tools/sdk_dist.py @@ -13,10 +13,16 @@ def dist_do_building(BSP_ROOT, dist_dir): print("=> copy ifx bsp library") library_dir = os.path.join(dist_dir, 'libraries') + sibling_library_dir = os.path.join(os.path.dirname(dist_dir), 'libraries') library_path = os.path.join(os.path.dirname(BSP_ROOT), 'libraries') - bsp_copy_files(os.path.join(library_path, rtconfig.BSP_LIBRARY_TYPE), - os.path.join(library_dir, rtconfig.BSP_LIBRARY_TYPE)) + if rtconfig.BSP_LIBRARY_TYPE is not None: + bsp_copy_files(os.path.join(library_path, rtconfig.BSP_LIBRARY_TYPE), + os.path.join(library_dir, rtconfig.BSP_LIBRARY_TYPE)) print("=> copy bsp drivers") bsp_copy_files(os.path.join(library_path, 'HAL_Drivers'), os.path.join(library_dir, 'HAL_Drivers')) shutil.copyfile(os.path.join(library_path, 'Kconfig'), os.path.join(library_dir, 'Kconfig')) + + print("=> copy sibling bsp drivers") + bsp_copy_files(os.path.join(library_path, 'HAL_Drivers'), os.path.join(sibling_library_dir, 'HAL_Drivers')) + shutil.copyfile(os.path.join(library_path, 'Kconfig'), os.path.join(sibling_library_dir, 'Kconfig')) diff --git a/bsp/allwinner/d1s/rtconfig.py b/bsp/allwinner/d1s/rtconfig.py index 97da6eeed28..dfee73d43f8 100644 --- a/bsp/allwinner/d1s/rtconfig.py +++ b/bsp/allwinner/d1s/rtconfig.py @@ -54,3 +54,9 @@ DUMP_ACTION = OBJDUMP + ' -D -S $TARGET > rtthread.asm\n' POST_ACTION = OBJCPY + ' -O binary $TARGET rtthread.bin\n' + SIZE + ' $TARGET \n' + './mksdimg.sh\n' + +def dist_handle(BSP_ROOT, dist_dir): + import sys + sys.path.append(os.path.join(os.path.dirname(BSP_ROOT), 'tools')) + from sdk_dist import dist_do_building + dist_do_building(BSP_ROOT, dist_dir) diff --git a/bsp/allwinner/tools/sdk_dist.py b/bsp/allwinner/tools/sdk_dist.py index a2a96efaf09..f856155b0de 100644 --- a/bsp/allwinner/tools/sdk_dist.py +++ b/bsp/allwinner/tools/sdk_dist.py @@ -6,6 +6,27 @@ sys.path.append(os.path.join(os.path.dirname(cwd_path), 'rt-thread', 'tools')) +def update_kconfig_library_path(dist_dir): + library_dir = os.path.join(dist_dir, 'libraries') + if not os.path.isdir(library_dir): + return + + for root, dirs, files in os.walk(library_dir): + if 'Kconfig' not in files: + continue + + kconfig_path = os.path.join(root, 'Kconfig') + with open(kconfig_path, 'r') as f: + data = f.read() + + data = data.replace('$(BSP_DIR)/../libraries', 'libraries') + data = data.replace('$BSP_DIR/../libraries', 'libraries') + data = data.replace('../libraries', 'libraries') + + with open(kconfig_path, 'w') as f: + f.write(data) + + # BSP dist function def dist_do_building(BSP_ROOT, dist_dir): from mkdist import bsp_copy_files @@ -19,4 +40,9 @@ def dist_do_building(BSP_ROOT, dist_dir): print("=> copy bsp drivers") bsp_copy_files(os.path.join(library_path, 'drivers'), os.path.join(library_dir, 'drivers')) + + print("=> copy bsp libos") + bsp_copy_files(os.path.join(library_path, 'libos'), os.path.join(library_dir, 'libos')) + shutil.copyfile(os.path.join(library_path, 'Kconfig'), os.path.join(library_dir, 'Kconfig')) + update_kconfig_library_path(dist_dir) diff --git a/bsp/at32/at32f421-start/board/Kconfig b/bsp/at32/at32f421-start/board/Kconfig index a3e4f931c21..e037d8d4993 100644 --- a/bsp/at32/at32f421-start/board/Kconfig +++ b/bsp/at32/at32f421-start/board/Kconfig @@ -115,6 +115,7 @@ menu "On-chip Peripheral Drivers" depends on RT_USING_SERIAL_V2 && BSP_UART2_RX_USING_DMA default 64 endif + endif menuconfig BSP_USING_PWM bool "Enable PWM" diff --git a/bsp/at32/at32m412-start/board/Kconfig b/bsp/at32/at32m412-start/board/Kconfig index dd541b01458..02d3b0c5b4c 100644 --- a/bsp/at32/at32m412-start/board/Kconfig +++ b/bsp/at32/at32m412-start/board/Kconfig @@ -115,6 +115,7 @@ menu "On-chip Peripheral Drivers" depends on RT_USING_SERIAL_V2 && BSP_UART2_RX_USING_DMA default 64 endif + endif menuconfig BSP_USING_PWM bool "Enable PWM" diff --git a/bsp/at32/at32m416-start/board/Kconfig b/bsp/at32/at32m416-start/board/Kconfig index 8414740adf6..92791fd229f 100644 --- a/bsp/at32/at32m416-start/board/Kconfig +++ b/bsp/at32/at32m416-start/board/Kconfig @@ -115,6 +115,7 @@ menu "On-chip Peripheral Drivers" depends on RT_USING_SERIAL_V2 && BSP_UART2_RX_USING_DMA default 64 endif + endif menuconfig BSP_USING_PWM bool "Enable PWM" diff --git a/bsp/essemi/es32f365x/rtconfig.py b/bsp/essemi/es32f365x/rtconfig.py index 412f6753842..559d3ff1b0c 100644 --- a/bsp/essemi/es32f365x/rtconfig.py +++ b/bsp/essemi/es32f365x/rtconfig.py @@ -133,3 +133,9 @@ LFLAGS += ' --entry __iar_program_start' EXEC_PATH = EXEC_PATH + '/arm/bin/' POST_ACTION = '' + +def dist_handle(BSP_ROOT, dist_dir): + import sys + sys.path.append(os.path.join(os.path.dirname(BSP_ROOT), 'tools')) + from sdk_dist import dist_do_building + dist_do_building(BSP_ROOT, dist_dir) diff --git a/bsp/essemi/tools/sdk_dist.py b/bsp/essemi/tools/sdk_dist.py new file mode 100644 index 00000000000..93b108d58da --- /dev/null +++ b/bsp/essemi/tools/sdk_dist.py @@ -0,0 +1,11 @@ +import os + + +def dist_do_building(BSP_ROOT, dist_dir): + from mkdist import bsp_copy_files + + print("=> copy es32f369x libraries") + bsp_copy_files( + os.path.join(os.path.dirname(BSP_ROOT), 'es32f369x'), + os.path.join(os.path.dirname(dist_dir), 'es32f369x'), + ) diff --git a/bsp/fm33lc026/rtconfig.py b/bsp/fm33lc026/rtconfig.py index aa5a02af424..79ff23f0d2f 100644 --- a/bsp/fm33lc026/rtconfig.py +++ b/bsp/fm33lc026/rtconfig.py @@ -145,7 +145,7 @@ def dist_handle(BSP_ROOT, dist_dir): import sys cwd_path = os.getcwd() - sys.path.append(os.path.join(os.path.dirname(BSP_ROOT), 'tools')) + sys.path.append(os.path.join(BSP_ROOT, 'tools')) from sdk_dist import dist_do_building dist_do_building(BSP_ROOT, dist_dir) diff --git a/bsp/fm33lc026/tools/sdk_dist.py b/bsp/fm33lc026/tools/sdk_dist.py new file mode 100644 index 00000000000..84f439cd981 --- /dev/null +++ b/bsp/fm33lc026/tools/sdk_dist.py @@ -0,0 +1,2 @@ +def dist_do_building(BSP_ROOT, dist_dir): + pass diff --git a/bsp/ft32/tools/sdk_dist.py b/bsp/ft32/tools/sdk_dist.py index 13040bafae4..f022f34d24d 100644 --- a/bsp/ft32/tools/sdk_dist.py +++ b/bsp/ft32/tools/sdk_dist.py @@ -6,6 +6,25 @@ sys.path.append(os.path.join(os.path.dirname(cwd_path), 'rt-thread', 'tools')) +def update_dist_project_paths(dist_dir): + sconstruct_path = os.path.join(dist_dir, 'SConstruct') + if not os.path.isfile(sconstruct_path): + return + + with open(sconstruct_path, 'r') as f: + data = f.read() + + data = data.replace("os.path.join(libraries_path_prefix, 'STD_Drivers', 'SConscript')", + "os.path.join(libraries_path_prefix, 'Drivers', 'SConscript')") + data = data.replace("variant_dir='../libraries/Drivers'", + "variant_dir='build/libraries/Drivers'") + data = data.replace('variant_dir="../libraries/Drivers"', + 'variant_dir="build/libraries/Drivers"') + + with open(sconstruct_path, 'w') as f: + f.write(data) + + # BSP dist function def dist_do_building(BSP_ROOT, dist_dir): from mkdist import bsp_copy_files @@ -14,9 +33,11 @@ def dist_do_building(BSP_ROOT, dist_dir): print("=> copy ft32 bsp library") library_dir = os.path.join(dist_dir, 'libraries') library_path = os.path.join(os.path.dirname(BSP_ROOT), 'libraries') - bsp_copy_files(os.path.join(library_path, rtconfig.BSP_LIBRARY_TYPE), - os.path.join(library_dir, rtconfig.BSP_LIBRARY_TYPE)) + if rtconfig.BSP_LIBRARY_TYPE is not None: + bsp_copy_files(os.path.join(library_path, rtconfig.BSP_LIBRARY_TYPE), + os.path.join(library_dir, rtconfig.BSP_LIBRARY_TYPE)) print("=> copy bsp drivers") bsp_copy_files(os.path.join(library_path, 'Drivers'), os.path.join(library_dir, 'Drivers')) shutil.copyfile(os.path.join(library_path, 'Kconfig'), os.path.join(library_dir, 'Kconfig')) + update_dist_project_paths(dist_dir) diff --git a/bsp/hc32/tools/sdk_dist.py b/bsp/hc32/tools/sdk_dist.py index 300e66ab528..1d39612e886 100644 --- a/bsp/hc32/tools/sdk_dist.py +++ b/bsp/hc32/tools/sdk_dist.py @@ -4,7 +4,20 @@ cwd_path = os.getcwd() sys.path.append(os.path.join(os.path.dirname(cwd_path), 'rt-thread', 'tools')) - + + +def update_dist_project_paths(dist_dir): + tests_sconscript = os.path.join(os.path.dirname(dist_dir), 'tests', 'SConscript') + if os.path.isfile(tests_sconscript): + with open(tests_sconscript, 'r') as f: + data = f.read() + + data = data.replace('../../../components', '../project/rt-thread/components') + + with open(tests_sconscript, 'w') as f: + f.write(data) + + # BSP dist function def dist_do_building(BSP_ROOT, dist_dir): from mkdist import bsp_copy_files @@ -20,3 +33,10 @@ def dist_do_building(BSP_ROOT, dist_dir): print("=> copy bsp drivers") bsp_copy_files(os.path.join(library_path, 'hc32_drivers'), os.path.join(library_dir, 'hc32_drivers')) shutil.copyfile(os.path.join(library_path, 'Kconfig'), os.path.join(library_dir, 'Kconfig')) + + print("=> copy hc32 platform") + bsp_copy_files(os.path.join(os.path.dirname(BSP_ROOT), 'platform'), os.path.join(os.path.dirname(dist_dir), 'platform')) + + print("=> copy hc32 tests") + bsp_copy_files(os.path.join(os.path.dirname(BSP_ROOT), 'tests'), os.path.join(os.path.dirname(dist_dir), 'tests')) + update_dist_project_paths(dist_dir) diff --git a/bsp/hk32/tools/sdk_dist.py b/bsp/hk32/tools/sdk_dist.py new file mode 100644 index 00000000000..26d4fbffca6 --- /dev/null +++ b/bsp/hk32/tools/sdk_dist.py @@ -0,0 +1,11 @@ +import os + + +def dist_do_building(BSP_ROOT, dist_dir): + from mkdist import bsp_copy_files + + print("=> copy hk32 libraries") + bsp_copy_files( + os.path.join(os.path.dirname(BSP_ROOT), 'libraries'), + os.path.join(dist_dir, 'libraries'), + ) diff --git a/bsp/hpmicro/tools/sdk_dist.py b/bsp/hpmicro/tools/sdk_dist.py index 38da0b7230c..3d7fd1aba43 100644 --- a/bsp/hpmicro/tools/sdk_dist.py +++ b/bsp/hpmicro/tools/sdk_dist.py @@ -4,6 +4,37 @@ cwd_path = os.getcwd() sys.path.append(os.path.join(os.path.dirname(cwd_path), 'rt-thread', 'tools')) +def update_rtt_root_path(path): + if not os.path.isfile(path): + return + + with open(path, 'r') as f: + data = f.read() + + data = data.replace("RTT_ROOT = os.path.normpath(os.getcwd() + '/../../..')", + "RTT_ROOT = os.path.join(os.getcwd(), 'rt-thread')") + data = data.replace('RTT_ROOT = os.path.normpath(os.getcwd() + "/../../..")', + "RTT_ROOT = os.path.join(os.getcwd(), 'rt-thread')") + + with open(path, 'w') as f: + f.write(data) + + +def update_dist_project_paths(dist_dir): + update_rtt_root_path(os.path.join(dist_dir, 'SConstruct')) + update_rtt_root_path(os.path.join(dist_dir, 'rtconfig.py')) + + kconfig_path = os.path.join(dist_dir, 'Kconfig') + if os.path.isfile(kconfig_path): + with open(kconfig_path, 'r') as f: + data = f.read() + + data = data.replace('rsource "../libraries/Kconfig"', + 'rsource "libraries/Kconfig"') + + with open(kconfig_path, 'w') as f: + f.write(data) + # BSP dist function def dist_do_building(BSP_ROOT, dist_dir): from mkdist import bsp_copy_files @@ -15,3 +46,4 @@ def dist_do_building(BSP_ROOT, dist_dir): library_path = os.path.join(os.path.dirname(BSP_ROOT), 'libraries') bsp_copy_files(library_path, library_dir) + update_dist_project_paths(dist_dir) diff --git a/bsp/ht32/libraries/HT32_STD_1xxxx_FWLib/SConscript b/bsp/ht32/libraries/HT32_STD_1xxxx_FWLib/SConscript index 7e3699bd214..1aba501a891 100644 --- a/bsp/ht32/libraries/HT32_STD_1xxxx_FWLib/SConscript +++ b/bsp/ht32/libraries/HT32_STD_1xxxx_FWLib/SConscript @@ -4,8 +4,11 @@ import rtconfig from building import * Import('rtconfig') -tools_path = os.path.normpath(os.getcwd() + '../../..' + '/tools') -sys.path.append(tools_path) +tools_paths = [ + os.path.normpath(os.path.join(GetCurrentDir(), '..', '..', 'tools')), + os.path.normpath(os.path.join(GetCurrentDir(), '..', '..')), +] +sys.path.extend(tools_paths) from sdk_dist import get_source source_file_path = os.path.join(os.getcwd(), 'Source_file') diff --git a/bsp/ht32/libraries/HT32_STD_5xxxx_FWLib/SConscript b/bsp/ht32/libraries/HT32_STD_5xxxx_FWLib/SConscript index 2411aa028fe..1c04c1f5c65 100644 --- a/bsp/ht32/libraries/HT32_STD_5xxxx_FWLib/SConscript +++ b/bsp/ht32/libraries/HT32_STD_5xxxx_FWLib/SConscript @@ -4,8 +4,11 @@ import rtconfig from building import * Import('rtconfig') -tools_path = os.path.normpath(os.getcwd() + '../../..' + '/tools') -sys.path.append(tools_path) +tools_paths = [ + os.path.normpath(os.path.join(GetCurrentDir(), '..', '..', 'tools')), + os.path.normpath(os.path.join(GetCurrentDir(), '..', '..')), +] +sys.path.extend(tools_paths) from sdk_dist import get_source source_file_path = os.path.join(os.getcwd(), 'Source_file') diff --git a/bsp/ht32/tools/sdk_dist.py b/bsp/ht32/tools/sdk_dist.py index 01540d7ec62..83ac6d614f1 100644 --- a/bsp/ht32/tools/sdk_dist.py +++ b/bsp/ht32/tools/sdk_dist.py @@ -29,11 +29,14 @@ def dist_do_building(BSP_ROOT, dist_dir): print("=> copy ht32 bsp library") library_dir = os.path.join(dist_dir, 'libraries') library_path = os.path.join(os.path.dirname(BSP_ROOT), 'libraries') - bsp_copy_files(os.path.join(library_path, rtconfig.BSP_LIBRARY_TYPE), os.path.join(library_dir, rtconfig.BSP_LIBRARY_TYPE)) + if rtconfig.BSP_LIBRARY_TYPE is not None: + bsp_copy_files(os.path.join(library_path, rtconfig.BSP_LIBRARY_TYPE), os.path.join(library_dir, rtconfig.BSP_LIBRARY_TYPE)) print("=> copy bsp drivers") bsp_copy_files(os.path.join(library_path, 'ht32_drivers'), os.path.join(library_dir, 'ht32_drivers')) + bsp_copy_files(os.path.join(library_path, 'usbd_library'), os.path.join(library_dir, 'usbd_library')) shutil.copyfile(os.path.join(library_path, 'Kconfig'), os.path.join(library_dir, 'Kconfig')) + shutil.copyfile(os.path.join(os.path.dirname(BSP_ROOT), 'tools', 'sdk_dist.py'), os.path.join(dist_dir, 'sdk_dist.py')) bsp_update_kconfig_library(dist_dir) diff --git a/bsp/microchip/samc21/rtconfig.py b/bsp/microchip/samc21/rtconfig.py index 74e0d5a3bd5..7f7031f2f5c 100644 --- a/bsp/microchip/samc21/rtconfig.py +++ b/bsp/microchip/samc21/rtconfig.py @@ -65,3 +65,9 @@ POST_ACTION = OBJCPY + ' -O binary $TARGET rt-thread-' + DEVICE_PART + '.bin\n' + SIZE + ' $TARGET \n' +def dist_handle(BSP_ROOT, dist_dir): + import sys + sys.path.append(os.path.join(os.path.dirname(BSP_ROOT), 'tools')) + from sdk_dist import dist_do_building + dist_do_building(BSP_ROOT, dist_dir) + diff --git a/bsp/microchip/same54/rtconfig.py b/bsp/microchip/same54/rtconfig.py index a1076592e48..ff9c67a5675 100644 --- a/bsp/microchip/same54/rtconfig.py +++ b/bsp/microchip/same54/rtconfig.py @@ -67,3 +67,9 @@ POST_ACTION = OBJCPY + ' -O binary $TARGET rt-thread-' + DEVICE_PART + '.bin\n' + SIZE + ' $TARGET \n' +def dist_handle(BSP_ROOT, dist_dir): + import sys + sys.path.append(os.path.join(os.path.dirname(BSP_ROOT), 'tools')) + from sdk_dist import dist_do_building + dist_do_building(BSP_ROOT, dist_dir) + diff --git a/bsp/microchip/same70/rtconfig.py b/bsp/microchip/same70/rtconfig.py index 8f54bc28fd0..94eb73769cf 100644 --- a/bsp/microchip/same70/rtconfig.py +++ b/bsp/microchip/same70/rtconfig.py @@ -67,3 +67,9 @@ POST_ACTION = OBJCPY + ' -O binary $TARGET rt-thread-' + DEVICE_PART + '.bin\n' + SIZE + ' $TARGET \n' +def dist_handle(BSP_ROOT, dist_dir): + import sys + sys.path.append(os.path.join(os.path.dirname(BSP_ROOT), 'tools')) + from sdk_dist import dist_do_building + dist_do_building(BSP_ROOT, dist_dir) + diff --git a/bsp/microchip/tools/sdk_dist.py b/bsp/microchip/tools/sdk_dist.py new file mode 100644 index 00000000000..637b0c27243 --- /dev/null +++ b/bsp/microchip/tools/sdk_dist.py @@ -0,0 +1,11 @@ +import os + + +def dist_do_building(BSP_ROOT, dist_dir): + from mkdist import bsp_copy_files + + print("=> copy microchip common") + bsp_copy_files( + os.path.join(os.path.dirname(BSP_ROOT), 'common'), + os.path.join(os.path.dirname(dist_dir), 'common'), + ) diff --git a/bsp/mm32/mm32f327x/.config b/bsp/mm32/mm32f327x/.config index c4dee0a88a1..30ac9153993 100644 --- a/bsp/mm32/mm32f327x/.config +++ b/bsp/mm32/mm32f327x/.config @@ -1,3 +1,4 @@ +CONFIG_SOC_MM32F3277=y # # RT-Thread Kernel @@ -109,6 +110,7 @@ CONFIG_RT_NAME_MAX=12 # CONFIG_RT_USING_ARCH_DATA_TYPE is not set # CONFIG_RT_USING_NANO is not set +# CONFIG_RT_USING_SMART is not set # CONFIG_RT_USING_AMP is not set # CONFIG_RT_USING_SMP is not set CONFIG_RT_CPUS_NR=1 @@ -185,6 +187,14 @@ CONFIG_RT_VER_NUM=0x50300 CONFIG_RT_BACKTRACE_LEVEL_MAX_NR=32 # end of RT-Thread Kernel +CONFIG_RT_USING_HW_ATOMIC=y +CONFIG_ARCH_USING_HW_ATOMIC_8=y +CONFIG_ARCH_USING_HW_ATOMIC_16=y +CONFIG_RT_USING_CPU_FFS=y +CONFIG_ARCH_ARM=y +CONFIG_ARCH_ARM_CORTEX_M=y +CONFIG_ARCH_ARM_CORTEX_M3=y + # # RT-Thread Components # @@ -260,6 +270,7 @@ CONFIG_RT_SERIAL_RB_BUFSZ=64 # CONFIG_RT_USING_LCD is not set # CONFIG_RT_USING_HWCRYPTO is not set # CONFIG_RT_USING_WIFI is not set +# CONFIG_RT_USING_RPMSG is not set # CONFIG_RT_USING_BLK is not set # CONFIG_RT_USING_REGULATOR is not set # CONFIG_RT_USING_POWER_SUPPLY is not set @@ -623,6 +634,7 @@ CONFIG_RT_LIBC_TZ_DEFAULT_SEC=0 # CONFIG_PKG_USING_HASH_MATCH is not set # CONFIG_PKG_USING_ARMV7M_DWT_TOOL is not set # CONFIG_PKG_USING_VOFA_PLUS is not set +# CONFIG_PKG_USING_RT_TRACE is not set # CONFIG_PKG_USING_ZDEBUG is not set # CONFIG_PKG_USING_RVBACKTRACE is not set # CONFIG_PKG_USING_HPATCHLITE is not set @@ -657,7 +669,10 @@ CONFIG_RT_LIBC_TZ_DEFAULT_SEC=0 # CMSIS: ARM Cortex-M Microcontroller Software Interface Standard # # CONFIG_PKG_USING_CMSIS_5 is not set -# CONFIG_PKG_USING_CMSIS_CORE is not set +CONFIG_PKG_USING_CMSIS_CORE=y +CONFIG_PKG_CMSIS_CORE_PATH="/packages/system/CMSIS/CMSIS-Core" +CONFIG_PKG_USING_CMSIS_CORE_LATEST_VERSION=y +CONFIG_PKG_CMSIS_CORE_VER="latest" # CONFIG_PKG_USING_CMSIS_NN is not set # CONFIG_PKG_USING_CMSIS_RTOS1 is not set # CONFIG_PKG_USING_CMSIS_RTOS2 is not set @@ -810,7 +825,27 @@ CONFIG_RT_LIBC_TZ_DEFAULT_SEC=0 # CONFIG_PKG_USING_NRFX is not set # CONFIG_PKG_USING_RASPBERRYPI_PICO_RP2350_SDK is not set # CONFIG_PKG_USING_RASPBERRYPI_PICO_SDK is not set -# CONFIG_PKG_USING_MM32 is not set + +# +# MM32 HAL & SDK Drivers +# +# CONFIG_PKG_USING_MM32F103XX_CMSIS is not set +CONFIG_PKG_USING_MM32F3270X_CMSIS=y +CONFIG_PKG_MM32F3270X_CMSIS_PATH="/packages/peripherals/hal-sdk/mm32/mm32f3270x-cmsis" +CONFIG_PKG_USING_MM32F3270X_CMSIS_LATEST_VERSION=y +CONFIG_PKG_MM32F3270X_CMSIS_VER="latest" +# CONFIG_PKG_USING_MM32F5260X_CMSIS is not set +# CONFIG_PKG_USING_MM32L0XX_CMSIS is not set +# CONFIG_PKG_USING_MM32L3XX_CMSIS is not set +# CONFIG_PKG_USING_MM32F103XX_HAL_DRIVER is not set +CONFIG_PKG_USING_MM32F3270X_HAL_DRIVER=y +CONFIG_PKG_MM32F3270X_HAL_DRIVER_PATH="/packages/peripherals/hal-sdk/mm32/mm32f3270x-hal-driver" +CONFIG_PKG_USING_MM32F3270X_HAL_DRIVER_LATEST_VERSION=y +CONFIG_PKG_MM32F3270X_HAL_DRIVER_VER="latest" +# CONFIG_PKG_USING_MM32F5260X_HAL_DRIVER is not set +# CONFIG_PKG_USING_MM32L0XX_HAL_DRIVER is not set +# CONFIG_PKG_USING_MM32L3XX_HAL_DRIVER is not set +# end of MM32 HAL & SDK Drivers # # WCH HAL & SDK Drivers @@ -898,6 +933,12 @@ CONFIG_RT_LIBC_TZ_DEFAULT_SEC=0 # CONFIG_PKG_USING_FT32F4_STD_DRIVER is not set # CONFIG_PKG_USING_FT32F4_CMSIS_DRIVER is not set # end of FT32 HAL & SDK Drivers + +# +# NOVOSNS Drivers +# +# CONFIG_PKG_USING_NOVOSNS_SERIES_DRIVER is not set +# end of NOVOSNS Drivers # end of HAL & SDK Drivers # @@ -1003,6 +1044,7 @@ CONFIG_RT_LIBC_TZ_DEFAULT_SEC=0 # CONFIG_PKG_USING_LEDBLINK is not set # CONFIG_PKG_USING_LITTLED is not set # CONFIG_PKG_USING_LKDGUI is not set +# CONFIG_PKG_USING_WM_LIBRARIES is not set # CONFIG_PKG_USING_INFRARED is not set # CONFIG_PKG_USING_MULTI_INFRARED is not set # CONFIG_PKG_USING_AGILE_BUTTON is not set @@ -1109,6 +1151,7 @@ CONFIG_RT_LIBC_TZ_DEFAULT_SEC=0 # CONFIG_PKG_USING_UKAL is not set # CONFIG_PKG_USING_DIGITALCTRL is not set # CONFIG_PKG_USING_KISSFFT is not set +# CONFIG_PKG_USING_CMSIS_DSP is not set # end of Signal Processing and Control Algorithm Packages # @@ -1143,6 +1186,7 @@ CONFIG_RT_LIBC_TZ_DEFAULT_SEC=0 # CONFIG_PKG_USING_DONUT is not set # CONFIG_PKG_USING_COWSAY is not set # CONFIG_PKG_USING_MORSE is not set +# CONFIG_PKG_USING_TINYSQUARE is not set # end of entertainment: terminal games and other interesting software packages # CONFIG_PKG_USING_LIBCSV is not set @@ -1419,6 +1463,9 @@ CONFIG_RT_LIBC_TZ_DEFAULT_SEC=0 # end of Arduino libraries # end of RT-Thread online packages +CONFIG_SOC_FAMILY_MM32=y +CONFIG_SOC_SERIES_MM32F3277=y + # # Hardware Drivers Config # @@ -1449,9 +1496,3 @@ CONFIG_BSP_USING_UART2=y # end of Flash Drivers # end of On-chip Peripheral Drivers # end of Hardware Drivers Config - -CONFIG_SOC_FAMILY_MM32=y -CONFIG_PKG_USING_MM32F3270X_CMSIS=y -CONFIG_PKG_USING_MM32F3270X_HAL_DRIVER=y -CONFIG_SOC_SERIES_MM32F3277=y -CONFIG_SOC_MM32F3277=y diff --git a/bsp/mm32/mm32f327x/SConstruct b/bsp/mm32/mm32f327x/SConstruct index b2ebc5187e5..6c8d83105f8 100644 --- a/bsp/mm32/mm32f327x/SConstruct +++ b/bsp/mm32/mm32f327x/SConstruct @@ -36,6 +36,15 @@ Export('rtconfig') SDK_ROOT = os.path.abspath('./') libraries_path_prefix = os.path.join(os.path.dirname(SDK_ROOT), 'libraries') +f327x_cmsis_path = os.path.join(SDK_ROOT, 'packages', 'mm32f3270x-cmsis-latest', 'CMSIS') +f327x_hal_path = os.path.join(SDK_ROOT, 'packages', 'mm32f3270x-hal-driver-latest') +if os.path.isdir(f327x_hal_path): + env.AppendUnique(CPPPATH=[ + os.path.join(f327x_cmsis_path, 'Include'), + os.path.join(f327x_cmsis_path, 'Device', 'MM32', 'MM32F3277', 'Include'), + os.path.join(f327x_hal_path, 'Inc'), + ]) + # prepare building environment objs = PrepareBuilding(env, RTT_ROOT, has_libcpu=False) diff --git a/bsp/mm32/mm32f327x/rtconfig.h b/bsp/mm32/mm32f327x/rtconfig.h index 99e8246cef9..7b262fc1add 100644 --- a/bsp/mm32/mm32f327x/rtconfig.h +++ b/bsp/mm32/mm32f327x/rtconfig.h @@ -1,6 +1,8 @@ #ifndef RT_CONFIG_H__ #define RT_CONFIG_H__ +#define SOC_MM32F3277 + /* RT-Thread Kernel */ /* klibc options */ @@ -108,6 +110,13 @@ #define RT_VER_NUM 0x50300 #define RT_BACKTRACE_LEVEL_MAX_NR 32 /* end of RT-Thread Kernel */ +#define RT_USING_HW_ATOMIC +#define ARCH_USING_HW_ATOMIC_8 +#define ARCH_USING_HW_ATOMIC_16 +#define RT_USING_CPU_FFS +#define ARCH_ARM +#define ARCH_ARM_CORTEX_M +#define ARCH_ARM_CORTEX_M3 /* RT-Thread Components */ @@ -265,6 +274,8 @@ /* CMSIS: ARM Cortex-M Microcontroller Software Interface Standard */ +#define PKG_USING_CMSIS_CORE +#define PKG_USING_CMSIS_CORE_LATEST_VERSION /* end of CMSIS: ARM Cortex-M Microcontroller Software Interface Standard */ /* Micrium: Micrium software products porting for RT-Thread */ @@ -288,6 +299,14 @@ /* end of Kendryte SDK */ +/* MM32 HAL & SDK Drivers */ + +#define PKG_USING_MM32F3270X_CMSIS +#define PKG_USING_MM32F3270X_CMSIS_LATEST_VERSION +#define PKG_USING_MM32F3270X_HAL_DRIVER +#define PKG_USING_MM32F3270X_HAL_DRIVER_LATEST_VERSION +/* end of MM32 HAL & SDK Drivers */ + /* WCH HAL & SDK Drivers */ /* end of WCH HAL & SDK Drivers */ @@ -319,6 +338,10 @@ /* FT32 HAL & SDK Drivers */ /* end of FT32 HAL & SDK Drivers */ + +/* NOVOSNS Drivers */ + +/* end of NOVOSNS Drivers */ /* end of HAL & SDK Drivers */ /* sensors drivers */ @@ -398,6 +421,8 @@ /* end of Arduino libraries */ /* end of RT-Thread online packages */ +#define SOC_FAMILY_MM32 +#define SOC_SERIES_MM32F3277 /* Hardware Drivers Config */ @@ -419,10 +444,5 @@ /* end of Flash Drivers */ /* end of On-chip Peripheral Drivers */ /* end of Hardware Drivers Config */ -#define SOC_FAMILY_MM32 -#define PKG_USING_MM32F3270X_CMSIS -#define PKG_USING_MM32F3270X_HAL_DRIVER -#define SOC_SERIES_MM32F3277 -#define SOC_MM32F3277 #endif diff --git a/bsp/mm32/mm32f327x/rtconfig.py b/bsp/mm32/mm32f327x/rtconfig.py index 16ca92fcedf..7c25bd32d37 100644 --- a/bsp/mm32/mm32f327x/rtconfig.py +++ b/bsp/mm32/mm32f327x/rtconfig.py @@ -133,3 +133,9 @@ EXEC_PATH = EXEC_PATH + '/arm/bin/' POST_ACTION = '' + +def dist_handle(BSP_ROOT, dist_dir): + import sys + sys.path.append(os.path.join(os.path.dirname(BSP_ROOT), 'tools')) + from sdk_dist import dist_do_building + dist_do_building(BSP_ROOT, dist_dir) diff --git a/bsp/mm32/mm32f526x/.config b/bsp/mm32/mm32f526x/.config index 067f5e76561..9e6fe7c627f 100644 --- a/bsp/mm32/mm32f526x/.config +++ b/bsp/mm32/mm32f526x/.config @@ -1,3 +1,4 @@ +CONFIG_SOC_MM32F526x=y # # RT-Thread Kernel @@ -109,6 +110,7 @@ CONFIG_RT_NAME_MAX=12 # CONFIG_RT_USING_ARCH_DATA_TYPE is not set # CONFIG_RT_USING_NANO is not set +# CONFIG_RT_USING_SMART is not set # CONFIG_RT_USING_AMP is not set # CONFIG_RT_USING_SMP is not set CONFIG_RT_CPUS_NR=1 @@ -186,6 +188,14 @@ CONFIG_RT_VER_NUM=0x50300 CONFIG_RT_BACKTRACE_LEVEL_MAX_NR=32 # end of RT-Thread Kernel +CONFIG_RT_USING_HW_ATOMIC=y +CONFIG_ARCH_USING_HW_ATOMIC_8=y +CONFIG_ARCH_USING_HW_ATOMIC_16=y +CONFIG_RT_USING_CPU_FFS=y +CONFIG_ARCH_ARM=y +CONFIG_ARCH_ARM_CORTEX_M=y +CONFIG_ARCH_ARM_CORTEX_M33=y + # # RT-Thread Components # @@ -284,6 +294,7 @@ CONFIG_RT_USING_ADC=y # CONFIG_RT_USING_LCD is not set # CONFIG_RT_USING_HWCRYPTO is not set # CONFIG_RT_USING_WIFI is not set +# CONFIG_RT_USING_RPMSG is not set # CONFIG_RT_USING_BLK is not set # CONFIG_RT_USING_REGULATOR is not set # CONFIG_RT_USING_POWER_SUPPLY is not set @@ -681,7 +692,10 @@ CONFIG_RT_LIBC_TZ_DEFAULT_SEC=0 # CMSIS: ARM Cortex-M Microcontroller Software Interface Standard # # CONFIG_PKG_USING_CMSIS_5 is not set -# CONFIG_PKG_USING_CMSIS_CORE is not set +CONFIG_PKG_USING_CMSIS_CORE=y +CONFIG_PKG_CMSIS_CORE_PATH="/packages/system/CMSIS/CMSIS-Core" +CONFIG_PKG_USING_CMSIS_CORE_LATEST_VERSION=y +CONFIG_PKG_CMSIS_CORE_VER="latest" # CONFIG_PKG_USING_CMSIS_NN is not set # CONFIG_PKG_USING_CMSIS_RTOS1 is not set # CONFIG_PKG_USING_CMSIS_RTOS2 is not set @@ -834,11 +848,27 @@ CONFIG_RT_LIBC_TZ_DEFAULT_SEC=0 # CONFIG_PKG_USING_NRFX is not set # CONFIG_PKG_USING_RASPBERRYPI_PICO_RP2350_SDK is not set # CONFIG_PKG_USING_RASPBERRYPI_PICO_SDK is not set -CONFIG_PKG_USING_MM32=y -CONFIG_PKG_MM32_PATH="/packages/peripherals/mm32" -# CONFIG_PKG_USING_MM32_V100 is not set -CONFIG_PKG_USING_MM32_LATEST_VERSION=y -CONFIG_PKG_MM32_VER="latest" + +# +# MM32 HAL & SDK Drivers +# +# CONFIG_PKG_USING_MM32F103XX_CMSIS is not set +# CONFIG_PKG_USING_MM32F3270X_CMSIS is not set +CONFIG_PKG_USING_MM32F5260X_CMSIS=y +CONFIG_PKG_MM32F5260X_CMSIS_PATH="/packages/peripherals/hal-sdk/mm32/mm32f5260x-cmsis" +CONFIG_PKG_USING_MM32F5260X_CMSIS_LATEST_VERSION=y +CONFIG_PKG_MM32F5260X_CMSIS_VER="latest" +# CONFIG_PKG_USING_MM32L0XX_CMSIS is not set +# CONFIG_PKG_USING_MM32L3XX_CMSIS is not set +# CONFIG_PKG_USING_MM32F103XX_HAL_DRIVER is not set +# CONFIG_PKG_USING_MM32F3270X_HAL_DRIVER is not set +CONFIG_PKG_USING_MM32F5260X_HAL_DRIVER=y +CONFIG_PKG_MM32F5260X_HAL_DRIVER_PATH="/packages/peripherals/hal-sdk/mm32/mm32f5260x-hal-driver" +CONFIG_PKG_USING_MM32F5260X_HAL_DRIVER_LATEST_VERSION=y +CONFIG_PKG_MM32F5260X_HAL_DRIVER_VER="latest" +# CONFIG_PKG_USING_MM32L0XX_HAL_DRIVER is not set +# CONFIG_PKG_USING_MM32L3XX_HAL_DRIVER is not set +# end of MM32 HAL & SDK Drivers # # WCH HAL & SDK Drivers @@ -926,6 +956,12 @@ CONFIG_PKG_MM32_VER="latest" # CONFIG_PKG_USING_FT32F4_STD_DRIVER is not set # CONFIG_PKG_USING_FT32F4_CMSIS_DRIVER is not set # end of FT32 HAL & SDK Drivers + +# +# NOVOSNS Drivers +# +# CONFIG_PKG_USING_NOVOSNS_SERIES_DRIVER is not set +# end of NOVOSNS Drivers # end of HAL & SDK Drivers # @@ -1158,6 +1194,7 @@ CONFIG_PKG_AT24CXX_VER="latest" # CONFIG_PKG_USING_UKAL is not set # CONFIG_PKG_USING_DIGITALCTRL is not set # CONFIG_PKG_USING_KISSFFT is not set +# CONFIG_PKG_USING_CMSIS_DSP is not set # end of Signal Processing and Control Algorithm Packages # @@ -1192,6 +1229,7 @@ CONFIG_PKG_AT24CXX_VER="latest" # CONFIG_PKG_USING_DONUT is not set # CONFIG_PKG_USING_COWSAY is not set # CONFIG_PKG_USING_MORSE is not set +# CONFIG_PKG_USING_TINYSQUARE is not set # end of entertainment: terminal games and other interesting software packages # CONFIG_PKG_USING_LIBCSV is not set @@ -1468,6 +1506,9 @@ CONFIG_PKG_AT24CXX_VER="latest" # end of Arduino libraries # end of RT-Thread online packages +CONFIG_SOC_FAMILY_MM32=y +CONFIG_SOC_SERIES_MM32F526=y + # # Hardware Drivers Config # @@ -1501,9 +1542,3 @@ CONFIG_BSP_USING_ADC1=y # end of Flash Drivers # end of On-chip Peripheral Drivers # end of Hardware Drivers Config - -CONFIG_SOC_FAMILY_MM32=y -CONFIG_PKG_USING_MM32F5260X_CMSIS=y -CONFIG_PKG_USING_MM32F5260X_HAL_DRIVER=y -CONFIG_SOC_SERIES_MM32F526=y -CONFIG_SOC_MM32F526x=y diff --git a/bsp/mm32/mm32f526x/SConstruct b/bsp/mm32/mm32f526x/SConstruct index b2ebc5187e5..789705ca001 100644 --- a/bsp/mm32/mm32f526x/SConstruct +++ b/bsp/mm32/mm32f526x/SConstruct @@ -36,6 +36,15 @@ Export('rtconfig') SDK_ROOT = os.path.abspath('./') libraries_path_prefix = os.path.join(os.path.dirname(SDK_ROOT), 'libraries') +f526_hal_path = os.path.join(SDK_ROOT, 'packages', 'mm32f5260x-hal-driver-latest') +if os.path.isdir(f526_hal_path): + env.AppendUnique(CPPPATH=[ + os.path.join(SDK_ROOT, 'packages', 'mm32f5260x-cmsis-latest', 'CMSIS', 'Core'), + os.path.join(f526_hal_path, 'Soc', 'mm32f5260'), + os.path.join(f526_hal_path, 'Include'), + os.path.join(f526_hal_path, 'HAL_Lib', 'Inc'), + ]) + # prepare building environment objs = PrepareBuilding(env, RTT_ROOT, has_libcpu=False) diff --git a/bsp/mm32/mm32f526x/rtconfig.h b/bsp/mm32/mm32f526x/rtconfig.h index b9e6e71c87a..9713e217350 100644 --- a/bsp/mm32/mm32f526x/rtconfig.h +++ b/bsp/mm32/mm32f526x/rtconfig.h @@ -1,6 +1,8 @@ #ifndef RT_CONFIG_H__ #define RT_CONFIG_H__ +#define SOC_MM32F526x + /* RT-Thread Kernel */ /* klibc options */ @@ -109,6 +111,13 @@ #define RT_VER_NUM 0x50300 #define RT_BACKTRACE_LEVEL_MAX_NR 32 /* end of RT-Thread Kernel */ +#define RT_USING_HW_ATOMIC +#define ARCH_USING_HW_ATOMIC_8 +#define ARCH_USING_HW_ATOMIC_16 +#define RT_USING_CPU_FFS +#define ARCH_ARM +#define ARCH_ARM_CORTEX_M +#define ARCH_ARM_CORTEX_M33 /* RT-Thread Components */ @@ -283,6 +292,8 @@ /* CMSIS: ARM Cortex-M Microcontroller Software Interface Standard */ +#define PKG_USING_CMSIS_CORE +#define PKG_USING_CMSIS_CORE_LATEST_VERSION /* end of CMSIS: ARM Cortex-M Microcontroller Software Interface Standard */ /* Micrium: Micrium software products porting for RT-Thread */ @@ -305,8 +316,14 @@ /* Kendryte SDK */ /* end of Kendryte SDK */ -#define PKG_USING_MM32 -#define PKG_USING_MM32_LATEST_VERSION + +/* MM32 HAL & SDK Drivers */ + +#define PKG_USING_MM32F5260X_CMSIS +#define PKG_USING_MM32F5260X_CMSIS_LATEST_VERSION +#define PKG_USING_MM32F5260X_HAL_DRIVER +#define PKG_USING_MM32F5260X_HAL_DRIVER_LATEST_VERSION +/* end of MM32 HAL & SDK Drivers */ /* WCH HAL & SDK Drivers */ @@ -339,6 +356,10 @@ /* FT32 HAL & SDK Drivers */ /* end of FT32 HAL & SDK Drivers */ + +/* NOVOSNS Drivers */ + +/* end of NOVOSNS Drivers */ /* end of HAL & SDK Drivers */ /* sensors drivers */ @@ -426,6 +447,8 @@ /* end of Arduino libraries */ /* end of RT-Thread online packages */ +#define SOC_FAMILY_MM32 +#define SOC_SERIES_MM32F526 /* Hardware Drivers Config */ @@ -448,10 +471,5 @@ /* end of Flash Drivers */ /* end of On-chip Peripheral Drivers */ /* end of Hardware Drivers Config */ -#define SOC_FAMILY_MM32 -#define PKG_USING_MM32F5260X_CMSIS -#define PKG_USING_MM32F5260X_HAL_DRIVER -#define SOC_SERIES_MM32F526 -#define SOC_MM32F526x #endif diff --git a/bsp/mm32/mm32f526x/rtconfig.py b/bsp/mm32/mm32f526x/rtconfig.py index 8a01efb8d5e..f16969d695c 100644 --- a/bsp/mm32/mm32f526x/rtconfig.py +++ b/bsp/mm32/mm32f526x/rtconfig.py @@ -142,3 +142,9 @@ EXEC_PATH = EXEC_PATH + '/arm/bin/' POST_ACTION = '' + +def dist_handle(BSP_ROOT, dist_dir): + import sys + sys.path.append(os.path.join(os.path.dirname(BSP_ROOT), 'tools')) + from sdk_dist import dist_do_building + dist_do_building(BSP_ROOT, dist_dir) diff --git a/bsp/mm32/mm32l07x/.config b/bsp/mm32/mm32l07x/.config index b29b8e81783..5cb4316c7ef 100644 --- a/bsp/mm32/mm32l07x/.config +++ b/bsp/mm32/mm32l07x/.config @@ -1,3 +1,4 @@ +CONFIG_SOC_MM32L073=y # # RT-Thread Kernel @@ -109,6 +110,7 @@ CONFIG_RT_NAME_MAX=12 # CONFIG_RT_USING_ARCH_DATA_TYPE is not set # CONFIG_RT_USING_NANO is not set +# CONFIG_RT_USING_SMART is not set # CONFIG_RT_USING_AMP is not set # CONFIG_RT_USING_SMP is not set CONFIG_RT_CPUS_NR=1 @@ -185,6 +187,10 @@ CONFIG_RT_VER_NUM=0x50300 CONFIG_RT_BACKTRACE_LEVEL_MAX_NR=32 # end of RT-Thread Kernel +CONFIG_ARCH_ARM=y +CONFIG_ARCH_ARM_CORTEX_M=y +CONFIG_ARCH_ARM_CORTEX_M0=y + # # RT-Thread Components # @@ -260,6 +266,7 @@ CONFIG_RT_SERIAL_RB_BUFSZ=64 # CONFIG_RT_USING_LCD is not set # CONFIG_RT_USING_HWCRYPTO is not set # CONFIG_RT_USING_WIFI is not set +# CONFIG_RT_USING_RPMSG is not set # CONFIG_RT_USING_BLK is not set # CONFIG_RT_USING_REGULATOR is not set # CONFIG_RT_USING_POWER_SUPPLY is not set @@ -623,6 +630,7 @@ CONFIG_RT_LIBC_TZ_DEFAULT_SEC=0 # CONFIG_PKG_USING_HASH_MATCH is not set # CONFIG_PKG_USING_ARMV7M_DWT_TOOL is not set # CONFIG_PKG_USING_VOFA_PLUS is not set +# CONFIG_PKG_USING_RT_TRACE is not set # CONFIG_PKG_USING_ZDEBUG is not set # CONFIG_PKG_USING_RVBACKTRACE is not set # CONFIG_PKG_USING_HPATCHLITE is not set @@ -657,7 +665,10 @@ CONFIG_RT_LIBC_TZ_DEFAULT_SEC=0 # CMSIS: ARM Cortex-M Microcontroller Software Interface Standard # # CONFIG_PKG_USING_CMSIS_5 is not set -# CONFIG_PKG_USING_CMSIS_CORE is not set +CONFIG_PKG_USING_CMSIS_CORE=y +CONFIG_PKG_CMSIS_CORE_PATH="/packages/system/CMSIS/CMSIS-Core" +CONFIG_PKG_USING_CMSIS_CORE_LATEST_VERSION=y +CONFIG_PKG_CMSIS_CORE_VER="latest" # CONFIG_PKG_USING_CMSIS_NN is not set # CONFIG_PKG_USING_CMSIS_RTOS1 is not set # CONFIG_PKG_USING_CMSIS_RTOS2 is not set @@ -810,7 +821,27 @@ CONFIG_RT_LIBC_TZ_DEFAULT_SEC=0 # CONFIG_PKG_USING_NRFX is not set # CONFIG_PKG_USING_RASPBERRYPI_PICO_RP2350_SDK is not set # CONFIG_PKG_USING_RASPBERRYPI_PICO_SDK is not set -# CONFIG_PKG_USING_MM32 is not set + +# +# MM32 HAL & SDK Drivers +# +# CONFIG_PKG_USING_MM32F103XX_CMSIS is not set +# CONFIG_PKG_USING_MM32F3270X_CMSIS is not set +# CONFIG_PKG_USING_MM32F5260X_CMSIS is not set +CONFIG_PKG_USING_MM32L0XX_CMSIS=y +CONFIG_PKG_MM32L0XX_CMSIS_PATH="/packages/peripherals/hal-sdk/mm32/mm32l0xx-cmsis" +CONFIG_PKG_USING_MM32L0XX_CMSIS_LATEST_VERSION=y +CONFIG_PKG_MM32L0XX_CMSIS_VER="latest" +# CONFIG_PKG_USING_MM32L3XX_CMSIS is not set +# CONFIG_PKG_USING_MM32F103XX_HAL_DRIVER is not set +# CONFIG_PKG_USING_MM32F3270X_HAL_DRIVER is not set +# CONFIG_PKG_USING_MM32F5260X_HAL_DRIVER is not set +CONFIG_PKG_USING_MM32L0XX_HAL_DRIVER=y +CONFIG_PKG_MM32L0XX_HAL_DRIVER_PATH="/packages/peripherals/hal-sdk/mm32/mm32l0xx-hal-driver" +CONFIG_PKG_USING_MM32L0XX_HAL_DRIVER_LATEST_VERSION=y +CONFIG_PKG_MM32L0XX_HAL_DRIVER_VER="latest" +# CONFIG_PKG_USING_MM32L3XX_HAL_DRIVER is not set +# end of MM32 HAL & SDK Drivers # # WCH HAL & SDK Drivers @@ -898,6 +929,12 @@ CONFIG_RT_LIBC_TZ_DEFAULT_SEC=0 # CONFIG_PKG_USING_FT32F4_STD_DRIVER is not set # CONFIG_PKG_USING_FT32F4_CMSIS_DRIVER is not set # end of FT32 HAL & SDK Drivers + +# +# NOVOSNS Drivers +# +# CONFIG_PKG_USING_NOVOSNS_SERIES_DRIVER is not set +# end of NOVOSNS Drivers # end of HAL & SDK Drivers # @@ -1109,6 +1146,7 @@ CONFIG_RT_LIBC_TZ_DEFAULT_SEC=0 # CONFIG_PKG_USING_UKAL is not set # CONFIG_PKG_USING_DIGITALCTRL is not set # CONFIG_PKG_USING_KISSFFT is not set +# CONFIG_PKG_USING_CMSIS_DSP is not set # end of Signal Processing and Control Algorithm Packages # @@ -1143,6 +1181,7 @@ CONFIG_RT_LIBC_TZ_DEFAULT_SEC=0 # CONFIG_PKG_USING_DONUT is not set # CONFIG_PKG_USING_COWSAY is not set # CONFIG_PKG_USING_MORSE is not set +# CONFIG_PKG_USING_TINYSQUARE is not set # end of entertainment: terminal games and other interesting software packages # CONFIG_PKG_USING_LIBCSV is not set @@ -1419,6 +1458,9 @@ CONFIG_RT_LIBC_TZ_DEFAULT_SEC=0 # end of Arduino libraries # end of RT-Thread online packages +CONFIG_SOC_FAMILY_MM32=y +CONFIG_SOC_SERIES_MM32L0=y + # # Hardware Drivers Config # @@ -1435,9 +1477,3 @@ CONFIG_BSP_USING_UART1=y # end of UART Drivers # end of On-chip Peripheral Drivers # end of Hardware Drivers Config - -CONFIG_SOC_FAMILY_MM32=y -CONFIG_PKG_USING_MM32L0XX_CMSIS=y -CONFIG_PKG_USING_MM32L0XX_HAL_DRIVER=y -CONFIG_SOC_SERIES_MM32L0=y -CONFIG_SOC_MM32L073=y diff --git a/bsp/mm32/mm32l07x/SConstruct b/bsp/mm32/mm32l07x/SConstruct index b2ebc5187e5..7e658ea684e 100644 --- a/bsp/mm32/mm32l07x/SConstruct +++ b/bsp/mm32/mm32l07x/SConstruct @@ -36,6 +36,16 @@ Export('rtconfig') SDK_ROOT = os.path.abspath('./') libraries_path_prefix = os.path.join(os.path.dirname(SDK_ROOT), 'libraries') +l07x_cmsis_path = os.path.join(SDK_ROOT, 'packages', 'mm32l0xx-cmsis-latest', 'CMSIS') +l07x_hal_path = os.path.join(SDK_ROOT, 'packages', 'mm32l0xx-hal-driver-latest') +if os.path.isdir(l07x_hal_path): + env.AppendUnique(CPPPATH=[ + os.path.join(l07x_cmsis_path, 'CORE'), + os.path.join(l07x_hal_path, 'Include'), + os.path.join(l07x_hal_path, 'Source'), + os.path.join(l07x_hal_path, 'HAL_lib', 'inc'), + ]) + # prepare building environment objs = PrepareBuilding(env, RTT_ROOT, has_libcpu=False) diff --git a/bsp/mm32/mm32l07x/rtconfig.h b/bsp/mm32/mm32l07x/rtconfig.h index b3e418eba34..befb63aa7f9 100644 --- a/bsp/mm32/mm32l07x/rtconfig.h +++ b/bsp/mm32/mm32l07x/rtconfig.h @@ -1,6 +1,8 @@ #ifndef RT_CONFIG_H__ #define RT_CONFIG_H__ +#define SOC_MM32L073 + /* RT-Thread Kernel */ /* klibc options */ @@ -108,6 +110,9 @@ #define RT_VER_NUM 0x50300 #define RT_BACKTRACE_LEVEL_MAX_NR 32 /* end of RT-Thread Kernel */ +#define ARCH_ARM +#define ARCH_ARM_CORTEX_M +#define ARCH_ARM_CORTEX_M0 /* RT-Thread Components */ @@ -264,6 +269,8 @@ /* CMSIS: ARM Cortex-M Microcontroller Software Interface Standard */ +#define PKG_USING_CMSIS_CORE +#define PKG_USING_CMSIS_CORE_LATEST_VERSION /* end of CMSIS: ARM Cortex-M Microcontroller Software Interface Standard */ /* Micrium: Micrium software products porting for RT-Thread */ @@ -287,6 +294,14 @@ /* end of Kendryte SDK */ +/* MM32 HAL & SDK Drivers */ + +#define PKG_USING_MM32L0XX_CMSIS +#define PKG_USING_MM32L0XX_CMSIS_LATEST_VERSION +#define PKG_USING_MM32L0XX_HAL_DRIVER +#define PKG_USING_MM32L0XX_HAL_DRIVER_LATEST_VERSION +/* end of MM32 HAL & SDK Drivers */ + /* WCH HAL & SDK Drivers */ /* end of WCH HAL & SDK Drivers */ @@ -318,6 +333,10 @@ /* FT32 HAL & SDK Drivers */ /* end of FT32 HAL & SDK Drivers */ + +/* NOVOSNS Drivers */ + +/* end of NOVOSNS Drivers */ /* end of HAL & SDK Drivers */ /* sensors drivers */ @@ -397,6 +416,8 @@ /* end of Arduino libraries */ /* end of RT-Thread online packages */ +#define SOC_FAMILY_MM32 +#define SOC_SERIES_MM32L0 /* Hardware Drivers Config */ @@ -408,10 +429,5 @@ /* end of UART Drivers */ /* end of On-chip Peripheral Drivers */ /* end of Hardware Drivers Config */ -#define SOC_FAMILY_MM32 -#define PKG_USING_MM32L0XX_CMSIS -#define PKG_USING_MM32L0XX_HAL_DRIVER -#define SOC_SERIES_MM32L0 -#define SOC_MM32L073 #endif diff --git a/bsp/mm32/mm32l07x/rtconfig.py b/bsp/mm32/mm32l07x/rtconfig.py index 8f2ab13677b..35d3050be56 100644 --- a/bsp/mm32/mm32l07x/rtconfig.py +++ b/bsp/mm32/mm32l07x/rtconfig.py @@ -133,3 +133,9 @@ EXEC_PATH = EXEC_PATH + '/arm/bin/' POST_ACTION = '' + +def dist_handle(BSP_ROOT, dist_dir): + import sys + sys.path.append(os.path.join(os.path.dirname(BSP_ROOT), 'tools')) + from sdk_dist import dist_do_building + dist_do_building(BSP_ROOT, dist_dir) diff --git a/bsp/mm32/tools/sdk_dist.py b/bsp/mm32/tools/sdk_dist.py index b10e02d7d7c..a303a3bcb92 100644 --- a/bsp/mm32/tools/sdk_dist.py +++ b/bsp/mm32/tools/sdk_dist.py @@ -14,8 +14,10 @@ def dist_do_building(BSP_ROOT, dist_dir): print("=> copy mm32 bsp library") library_dir = os.path.join(dist_dir, 'libraries') library_path = os.path.join(os.path.dirname(BSP_ROOT), 'libraries') - bsp_copy_files(os.path.join(library_path, rtconfig.BSP_LIBRARY_TYPE), - os.path.join(library_dir, rtconfig.BSP_LIBRARY_TYPE)) + library_type = getattr(rtconfig, 'BSP_LIBRARY_TYPE', None) + if library_type: + bsp_copy_files(os.path.join(library_path, library_type), + os.path.join(library_dir, library_type)) print("=> copy bsp drivers") bsp_copy_files(os.path.join(library_path, 'HAL_Drivers'), os.path.join(library_dir, 'HAL_Drivers')) diff --git a/bsp/n32/n32gxx_lxx/tools/sdk_dist.py b/bsp/n32/n32gxx_lxx/tools/sdk_dist.py index 9b2d5030c7b..b3da8849d14 100644 --- a/bsp/n32/n32gxx_lxx/tools/sdk_dist.py +++ b/bsp/n32/n32gxx_lxx/tools/sdk_dist.py @@ -14,9 +14,8 @@ def bsp_update_board_kconfig(dist_dir): data = f.readlines() with open(os.path.join(dist_dir, 'board/Kconfig'), 'w') as f: for line in data: - if line.find('../libraries/n32_drivers/Kconfig') != -1: - position = line.find('../libraries/n32_drivers/Kconfig') - line = line[0:position] + 'libraries/n32_drivers/Kconfig"\n' + if line.find('n32_drivers/Kconfig') != -1: + line = ' rsource "$BSP_DIR/libraries/n32_drivers/Kconfig"\n' f.write(line) # BSP dist function diff --git a/bsp/novosns/ns800/tools/sdk_dist.py b/bsp/novosns/ns800/tools/sdk_dist.py index 0b75bf8cee8..0a5a613fce4 100644 --- a/bsp/novosns/ns800/tools/sdk_dist.py +++ b/bsp/novosns/ns800/tools/sdk_dist.py @@ -5,6 +5,19 @@ cwd_path = os.getcwd() sys.path.append(os.path.join(os.path.dirname(cwd_path), 'rt-thread', 'tools')) +def update_kconfig_library_path(dist_dir): + kconfig_path = os.path.join(dist_dir, 'Kconfig') + if not os.path.isfile(kconfig_path): + return + + with open(kconfig_path, 'r') as f: + data = f.read() + + data = data.replace('LIB_DIR := ../libraries/HAL_Drivers', + 'LIB_DIR := libraries/HAL_Drivers') + + with open(kconfig_path, 'w') as f: + f.write(data) # BSP dist function def dist_do_building(BSP_ROOT, dist_dir): @@ -20,3 +33,6 @@ def dist_do_building(BSP_ROOT, dist_dir): print("=> copy bsp drivers") bsp_copy_files(os.path.join(library_path, 'HAL_Drivers'), os.path.join(library_dir, 'HAL_Drivers')) + + print("=> update Kconfig library path") + update_kconfig_library_path(dist_dir) diff --git a/bsp/nuvoton/tools/sdk_dist.py b/bsp/nuvoton/tools/sdk_dist.py index d76f7fcfc8b..dc98deaa7fc 100644 --- a/bsp/nuvoton/tools/sdk_dist.py +++ b/bsp/nuvoton/tools/sdk_dist.py @@ -5,6 +5,9 @@ sys.path.append(os.path.join(os.path.dirname(cwd_path), 'rt-thread', 'tools')) def dist_modify_relative_path(board_kconfig_path): + if not os.path.isfile(board_kconfig_path): + return + # Read in the file with open(board_kconfig_path, 'r') as file : filedata = file.read() @@ -16,6 +19,23 @@ def dist_modify_relative_path(board_kconfig_path): with open(board_kconfig_path, 'w') as file: file.write(filedata) +def dist_disable_rtp_startup(dist_dir): + rtp_bin = os.path.join(os.path.dirname(dist_dir), 'ma35-rtp', 'rtthread.bin') + if os.path.exists(rtp_bin): + return + + config_path = os.path.join(dist_dir, '.config') + if not os.path.isfile(config_path): + return + + with open(config_path, 'r') as file: + filedata = file.read() + + filedata = filedata.replace('CONFIG_RTP_USING_AT_STARTUP=y', '# CONFIG_RTP_USING_AT_STARTUP is not set') + + with open(config_path, 'w') as file: + file.write(filedata) + # BSP dist function def dist_do_building(BSP_ROOT, dist_dir): from mkdist import bsp_copy_files @@ -36,4 +56,7 @@ def dist_do_building(BSP_ROOT, dist_dir): shutil.copyfile(os.path.join(library_path, 'Kconfig'), os.path.join(library_dir, 'Kconfig')) print('=> Modify libraries relative path in board/Kconfig ') - dist_modify_relative_path(os.path.join(dist_dir, 'board', 'Kconfig')) \ No newline at end of file + dist_modify_relative_path(os.path.join(dist_dir, 'board', 'Kconfig')) + + print('=> Disable RTP startup firmware when dist binary is unavailable ') + dist_disable_rtp_startup(dist_dir) diff --git a/bsp/nxp/imx/imxrt/imxrt1180-nxp-evk/cm33/rtconfig.py b/bsp/nxp/imx/imxrt/imxrt1180-nxp-evk/cm33/rtconfig.py index 58d7d73accd..ce740398c1b 100644 --- a/bsp/nxp/imx/imxrt/imxrt1180-nxp-evk/cm33/rtconfig.py +++ b/bsp/nxp/imx/imxrt/imxrt1180-nxp-evk/cm33/rtconfig.py @@ -190,8 +190,6 @@ def dist_handle(BSP_ROOT, dist_dir): import sys cwd_path = os.getcwd() - # sys.path.append(os.path.join(os.path.dirname(BSP_ROOT), 'tools')) - sys.path.append(os.path.join(os.path.dirname(BSP_ROOT), 'tools')) + sys.path.append(os.path.join(os.path.dirname(os.path.dirname(BSP_ROOT)), 'tools')) from sdk_dist import dist_do_building dist_do_building(BSP_ROOT, dist_dir) - \ No newline at end of file diff --git a/bsp/nxp/imx/imxrt/imxrt1180-nxp-evk/cm7/rtconfig.py b/bsp/nxp/imx/imxrt/imxrt1180-nxp-evk/cm7/rtconfig.py index 6261a74efc8..41010bfddc4 100644 --- a/bsp/nxp/imx/imxrt/imxrt1180-nxp-evk/cm7/rtconfig.py +++ b/bsp/nxp/imx/imxrt/imxrt1180-nxp-evk/cm7/rtconfig.py @@ -198,8 +198,6 @@ def dist_handle(BSP_ROOT, dist_dir): import sys cwd_path = os.getcwd() - # sys.path.append(os.path.join(os.path.dirname(BSP_ROOT), 'tools')) - sys.path.append(os.path.join(os.path.dirname(BSP_ROOT), 'tools')) + sys.path.append(os.path.join(os.path.dirname(os.path.dirname(BSP_ROOT)), 'tools')) from sdk_dist import dist_do_building dist_do_building(BSP_ROOT, dist_dir) - \ No newline at end of file diff --git a/bsp/nxp/imx/imxrt/tools/sdk_dist.py b/bsp/nxp/imx/imxrt/tools/sdk_dist.py index 299100774de..ef94d60b4de 100644 --- a/bsp/nxp/imx/imxrt/tools/sdk_dist.py +++ b/bsp/nxp/imx/imxrt/tools/sdk_dist.py @@ -4,6 +4,36 @@ cwd_path = os.getcwd() sys.path.append(os.path.join(os.path.dirname(cwd_path), 'rt-thread', 'tools')) +def update_kconfig_library_path(dist_dir): + kconfig_path = os.path.join(dist_dir, 'Kconfig') + if not os.path.isfile(kconfig_path): + return + + with open(kconfig_path, 'r') as f: + data = f.read() + + data = data.replace('../../libraries', 'libraries') + data = data.replace('../libraries', 'libraries') + + with open(kconfig_path, 'w') as f: + f.write(data) + + +def update_sconstruct_library_path(dist_dir): + sconstruct_path = os.path.join(dist_dir, 'SConstruct') + if not os.path.isfile(sconstruct_path): + return + + with open(sconstruct_path, 'r') as f: + data = f.read() + + data = data.replace("SDK_ROOT = os.path.abspath('./..')", + "SDK_ROOT = os.path.abspath('./')") + + with open(sconstruct_path, 'w') as f: + f.write(data) + + # BSP dist function def dist_do_building(BSP_ROOT, dist_dir=None): from mkdist import bsp_copy_files @@ -14,6 +44,8 @@ def dist_do_building(BSP_ROOT, dist_dir=None): print("=> copy imxrt bsp library") library_path = os.path.join(os.path.dirname(BSP_ROOT), 'libraries') + if not os.path.isdir(library_path): + library_path = os.path.join(os.path.dirname(os.path.dirname(BSP_ROOT)), 'libraries') library_dir = os.path.join(dist_dir, 'libraries') print("=> copy bsp drivers") @@ -22,3 +54,5 @@ def dist_do_building(BSP_ROOT, dist_dir=None): print("=> copy bsp peripherals") bsp_copy_files(os.path.join(library_path, 'peripherals'), os.path.join(library_dir, 'peripherals')) + update_kconfig_library_path(dist_dir) + update_sconstruct_library_path(dist_dir) diff --git a/bsp/nxp/lpc/lpc55sxx/tools/sdk_dist.py b/bsp/nxp/lpc/lpc55sxx/tools/sdk_dist.py index 09971e7c00e..44e10f19b01 100644 --- a/bsp/nxp/lpc/lpc55sxx/tools/sdk_dist.py +++ b/bsp/nxp/lpc/lpc55sxx/tools/sdk_dist.py @@ -25,6 +25,7 @@ def dist_do_building(BSP_ROOT, dist_dir): data = f.readlines() with open(os.path.join(dist_dir, 'Kconfig'), 'w') as f: for line in data: - if line.find('source') != -1 and line.find('../libraries') != -1: + if line.find('source') != -1 and (line.find('../Libraries') != -1 or line.find('../libraries') != -1): line = line.replace('../Libraries', 'Libraries') + line = line.replace('../libraries', 'Libraries') f.write(line) diff --git a/bsp/raspberry-pico/RP2040/rtconfig.py b/bsp/raspberry-pico/RP2040/rtconfig.py index 74451d8763c..065860f1cb2 100644 --- a/bsp/raspberry-pico/RP2040/rtconfig.py +++ b/bsp/raspberry-pico/RP2040/rtconfig.py @@ -71,3 +71,9 @@ else: elf2uf2_path = os.path.join(os.getcwd(), "tools", "elf2uf2.exe") POST_ACTION += "{0} rtthread-pico.elf rtthread-pico.uf2".format(elf2uf2_path) + +def dist_handle(BSP_ROOT, dist_dir): + import sys + sys.path.append(os.path.join(os.path.dirname(BSP_ROOT), 'tools')) + from sdk_dist import dist_do_building + dist_do_building(BSP_ROOT, dist_dir) diff --git a/bsp/raspberry-pico/RP2350/rtconfig.py b/bsp/raspberry-pico/RP2350/rtconfig.py index d7619008eb7..9d76f61cf98 100644 --- a/bsp/raspberry-pico/RP2350/rtconfig.py +++ b/bsp/raspberry-pico/RP2350/rtconfig.py @@ -67,3 +67,9 @@ os.system("chmod +x {0}".format(elf2uf2_path)) POST_ACTION += "{0} uf2 convert --quiet rtthread-pico.elf rtthread-pico.uf2 --family rp2350-arm-s --abs-block".format(elf2uf2_path) + +def dist_handle(BSP_ROOT, dist_dir): + import sys + sys.path.append(os.path.join(os.path.dirname(BSP_ROOT), 'tools')) + from sdk_dist import dist_do_building + dist_do_building(BSP_ROOT, dist_dir) diff --git a/bsp/raspberry-pico/tools/sdk_dist.py b/bsp/raspberry-pico/tools/sdk_dist.py new file mode 100644 index 00000000000..f3510ceeb0f --- /dev/null +++ b/bsp/raspberry-pico/tools/sdk_dist.py @@ -0,0 +1,11 @@ +import os + + +def dist_do_building(BSP_ROOT, dist_dir): + from mkdist import bsp_copy_files + + print("=> copy raspberry-pico drivers") + bsp_copy_files( + os.path.join(os.path.dirname(BSP_ROOT), 'Drivers'), + os.path.join(os.path.dirname(dist_dir), 'Drivers'), + ) diff --git a/bsp/stm32/stm32f411-atk-nano/rtconfig.py b/bsp/stm32/stm32f411-atk-nano/rtconfig.py index 7352b3dbb8a..b2882d5021b 100644 --- a/bsp/stm32/stm32f411-atk-nano/rtconfig.py +++ b/bsp/stm32/stm32f411-atk-nano/rtconfig.py @@ -175,3 +175,9 @@ EXEC_PATH = EXEC_PATH + '/arm/bin/' POST_ACTION = 'ielftool --bin $TARGET rtthread.bin' + +def dist_handle(BSP_ROOT, dist_dir): + import sys + sys.path.append(os.path.join(os.path.dirname(BSP_ROOT), 'tools')) + from sdk_dist import dist_do_building + dist_do_building(BSP_ROOT, dist_dir) diff --git a/bsp/stm32/stm32f413-st-nucleo/rtconfig.py b/bsp/stm32/stm32f413-st-nucleo/rtconfig.py index 7352b3dbb8a..b2882d5021b 100644 --- a/bsp/stm32/stm32f413-st-nucleo/rtconfig.py +++ b/bsp/stm32/stm32f413-st-nucleo/rtconfig.py @@ -175,3 +175,9 @@ EXEC_PATH = EXEC_PATH + '/arm/bin/' POST_ACTION = 'ielftool --bin $TARGET rtthread.bin' + +def dist_handle(BSP_ROOT, dist_dir): + import sys + sys.path.append(os.path.join(os.path.dirname(BSP_ROOT), 'tools')) + from sdk_dist import dist_do_building + dist_do_building(BSP_ROOT, dist_dir) diff --git a/bsp/stm32/stm32l433-st-nucleo/rtconfig.py b/bsp/stm32/stm32l433-st-nucleo/rtconfig.py index 7942919c8e4..fbe837a801f 100644 --- a/bsp/stm32/stm32l433-st-nucleo/rtconfig.py +++ b/bsp/stm32/stm32l433-st-nucleo/rtconfig.py @@ -175,3 +175,9 @@ EXEC_PATH = EXEC_PATH + '/arm/bin/' POST_ACTION = 'ielftool --bin $TARGET rtthread.bin' + +def dist_handle(BSP_ROOT, dist_dir): + import sys + sys.path.append(os.path.join(os.path.dirname(BSP_ROOT), 'tools')) + from sdk_dist import dist_do_building + dist_do_building(BSP_ROOT, dist_dir) diff --git a/bsp/synwit/swm320-mini/rtconfig.py b/bsp/synwit/swm320-mini/rtconfig.py index 75a2468c132..4063291d5a0 100644 --- a/bsp/synwit/swm320-mini/rtconfig.py +++ b/bsp/synwit/swm320-mini/rtconfig.py @@ -134,3 +134,9 @@ EXEC_PATH = EXEC_PATH + '/arm/bin/' POST_ACTION = 'ielftool --bin $TARGET rtthread.bin' + +def dist_handle(BSP_ROOT, dist_dir): + import sys + sys.path.append(os.path.join(os.path.dirname(BSP_ROOT), 'tools')) + from sdk_dist import dist_do_building + dist_do_building(BSP_ROOT, dist_dir) diff --git a/bsp/synwit/swm341-mini/rtconfig.py b/bsp/synwit/swm341-mini/rtconfig.py index 42039720b30..4ee6e3c7735 100644 --- a/bsp/synwit/swm341-mini/rtconfig.py +++ b/bsp/synwit/swm341-mini/rtconfig.py @@ -172,3 +172,9 @@ EXEC_PATH = EXEC_PATH + '/arm/bin/' POST_ACTION = 'ielftool --bin $TARGET rtthread.bin' + +def dist_handle(BSP_ROOT, dist_dir): + import sys + sys.path.append(os.path.join(os.path.dirname(BSP_ROOT), 'tools')) + from sdk_dist import dist_do_building + dist_do_building(BSP_ROOT, dist_dir) diff --git a/bsp/synwit/tools/sdk_dist.py b/bsp/synwit/tools/sdk_dist.py new file mode 100644 index 00000000000..3269806ca5e --- /dev/null +++ b/bsp/synwit/tools/sdk_dist.py @@ -0,0 +1,11 @@ +import os + + +def dist_do_building(BSP_ROOT, dist_dir): + from mkdist import bsp_copy_files + + print("=> copy synwit libraries") + bsp_copy_files( + os.path.join(os.path.dirname(BSP_ROOT), 'libraries'), + os.path.join(os.path.dirname(dist_dir), 'libraries'), + ) diff --git a/bsp/ultrarisc/tools/sdk_dist.py b/bsp/ultrarisc/tools/sdk_dist.py new file mode 100644 index 00000000000..ec40d095110 --- /dev/null +++ b/bsp/ultrarisc/tools/sdk_dist.py @@ -0,0 +1,13 @@ +import os + + +def dist_do_building(BSP_ROOT, dist_dir): + from mkdist import bsp_copy_files + + dist_root = os.path.dirname(dist_dir) + + print("=> copy ultrarisc drivers") + bsp_copy_files(os.path.join(os.path.dirname(BSP_ROOT), 'drivers'), os.path.join(dist_root, 'drivers')) + + print("=> copy ultrarisc arch") + bsp_copy_files(os.path.join(os.path.dirname(BSP_ROOT), 'arch'), os.path.join(dist_root, 'arch')) diff --git a/bsp/ultrarisc/ur_dp1000_evb/rtconfig.py b/bsp/ultrarisc/ur_dp1000_evb/rtconfig.py index c544da9b287..de359597504 100755 --- a/bsp/ultrarisc/ur_dp1000_evb/rtconfig.py +++ b/bsp/ultrarisc/ur_dp1000_evb/rtconfig.py @@ -57,4 +57,10 @@ CXXFLAGS = CFLAGS DUMP_ACTION = OBJDUMP + ' -D -S $TARGET > rtthread.asm\n' -POST_ACTION = OBJCPY + ' -O binary $TARGET rtthread.bin\n' + SIZE + ' $TARGET \n' \ No newline at end of file +POST_ACTION = OBJCPY + ' -O binary $TARGET rtthread.bin\n' + SIZE + ' $TARGET \n' + +def dist_handle(BSP_ROOT, dist_dir): + import sys + sys.path.append(os.path.join(os.path.dirname(BSP_ROOT), 'tools')) + from sdk_dist import dist_do_building + dist_do_building(BSP_ROOT, dist_dir) diff --git a/bsp/wch/arm/ch32f103c8-core/Kconfig b/bsp/wch/arm/ch32f103c8-core/Kconfig index 07edfefc341..ab918c3a587 100644 --- a/bsp/wch/arm/ch32f103c8-core/Kconfig +++ b/bsp/wch/arm/ch32f103c8-core/Kconfig @@ -8,5 +8,5 @@ PKGS_DIR := packages source "$(RTT_DIR)/Kconfig" osource "$PKGS_DIR/Kconfig" -rsource "../libraries/Kconfig" +rsource "../Libraries/Kconfig" rsource "board/Kconfig" diff --git a/bsp/wch/arm/ch32f203r-evt/Kconfig b/bsp/wch/arm/ch32f203r-evt/Kconfig index 07edfefc341..ab918c3a587 100644 --- a/bsp/wch/arm/ch32f203r-evt/Kconfig +++ b/bsp/wch/arm/ch32f203r-evt/Kconfig @@ -8,5 +8,5 @@ PKGS_DIR := packages source "$(RTT_DIR)/Kconfig" osource "$PKGS_DIR/Kconfig" -rsource "../libraries/Kconfig" +rsource "../Libraries/Kconfig" rsource "board/Kconfig" diff --git a/bsp/wch/arm/tools/sdk_dist.py b/bsp/wch/arm/tools/sdk_dist.py index 37a1abfed60..c46fc7a0fcf 100644 --- a/bsp/wch/arm/tools/sdk_dist.py +++ b/bsp/wch/arm/tools/sdk_dist.py @@ -14,10 +14,11 @@ def dist_do_building(BSP_ROOT, dist_dir): print("=> copy ch32 bsp library") library_dir = os.path.join(dist_dir, 'Libraries') library_path = os.path.join(os.path.dirname(BSP_ROOT), 'Libraries') - bsp_copy_files( - os.path.join(library_path, rtconfig.BSP_LIBRARY_TYPE), - os.path.join(library_dir, rtconfig.BSP_LIBRARY_TYPE), - ) + if rtconfig.BSP_LIBRARY_TYPE is not None: + bsp_copy_files( + os.path.join(library_path, rtconfig.BSP_LIBRARY_TYPE), + os.path.join(library_dir, rtconfig.BSP_LIBRARY_TYPE), + ) print("=> copy bsp drivers") bsp_copy_files(os.path.join(library_path, 'ch32_drivers'), os.path.join(library_dir, 'ch32_drivers')) @@ -30,6 +31,7 @@ def dist_do_building(BSP_ROOT, dist_dir): data = f.readlines() with open(os.path.join(dist_dir, 'Kconfig'), 'w') as f: for line in data: - if line.find('source') != -1 and line.find('../libraries') != -1: + if line.find('source') != -1 and (line.find('../Libraries') != -1 or line.find('../libraries') != -1): line = line.replace('../Libraries', 'Libraries') + line = line.replace('../libraries', 'Libraries') f.write(line) diff --git a/bsp/wch/risc-v/tools/sdk_dist.py b/bsp/wch/risc-v/tools/sdk_dist.py index f04b60bfe9d..7fb3bbf2648 100644 --- a/bsp/wch/risc-v/tools/sdk_dist.py +++ b/bsp/wch/risc-v/tools/sdk_dist.py @@ -14,9 +14,10 @@ def dist_do_building(BSP_ROOT, dist_dir): print("=> copy ch32 bsp library") library_dir = os.path.join(dist_dir, 'Libraries') library_path = os.path.join(os.path.dirname(BSP_ROOT), 'Libraries') - if rtconfig.BSP_LIBRARY_TYPE is not None: - bsp_copy_files(os.path.join(library_path, rtconfig.BSP_LIBRARY_TYPE), - os.path.join(library_dir, rtconfig.BSP_LIBRARY_TYPE)) + library_type = getattr(rtconfig, 'BSP_LIBRARY_TYPE', None) + if library_type is not None: + bsp_copy_files(os.path.join(library_path, library_type), + os.path.join(library_dir, library_type)) print("=> copy bsp drivers") bsp_copy_files(os.path.join(library_path, 'ch32_drivers'), os.path.join(library_dir, 'ch32_drivers')) shutil.copyfile(os.path.join(library_path, 'Kconfig'), os.path.join(library_dir, 'Kconfig')) @@ -28,6 +29,7 @@ def dist_do_building(BSP_ROOT, dist_dir): data = f.readlines() with open(os.path.join(dist_dir, 'Kconfig'), 'w') as f: for line in data: - if line.find('source') != -1 and line.find('../libraries') != -1: + if line.find('source') != -1 and (line.find('../Libraries') != -1 or line.find('../libraries') != -1): line = line.replace('../Libraries', 'Libraries') + line = line.replace('../libraries', 'Libraries') f.write(line) diff --git a/bsp/xplorer4330/M4/rtconfig.py b/bsp/xplorer4330/M4/rtconfig.py index aa1b8644d75..2b88ea2b148 100644 --- a/bsp/xplorer4330/M4/rtconfig.py +++ b/bsp/xplorer4330/M4/rtconfig.py @@ -137,3 +137,9 @@ EXEC_PATH = EXEC_PATH + '/arm/bin/' POST_ACTION = '' + +def dist_handle(BSP_ROOT, dist_dir): + import sys + sys.path.append(os.path.join(os.path.dirname(BSP_ROOT), 'tools')) + from sdk_dist import dist_do_building + dist_do_building(BSP_ROOT, dist_dir) diff --git a/bsp/xplorer4330/tools/sdk_dist.py b/bsp/xplorer4330/tools/sdk_dist.py new file mode 100644 index 00000000000..4f80cbc8e20 --- /dev/null +++ b/bsp/xplorer4330/tools/sdk_dist.py @@ -0,0 +1,29 @@ +import os + + +def update_sconscript_path(dist_dir): + sconscript_path = os.path.join(dist_dir, 'SConscript') + if not os.path.isfile(sconscript_path): + return + + with open(sconscript_path, 'r') as f: + data = f.read() + + data = data.replace("if (d != 'M4' and d != 'M0'):", + "if (d != 'M4' and d != 'M0' and d != 'project'):") + + with open(sconscript_path, 'w') as f: + f.write(data) + + +def dist_do_building(BSP_ROOT, dist_dir): + from mkdist import bsp_copy_files + + dist_root = os.path.dirname(dist_dir) + bsp_root = os.path.dirname(BSP_ROOT) + + for dirname in ['applications', 'drivers', 'Libraries']: + print("=> copy xplorer4330 %s" % dirname) + bsp_copy_files(os.path.join(bsp_root, dirname), os.path.join(dist_root, dirname)) + + update_sconscript_path(dist_dir) diff --git a/bsp/yichip/tools/sdk_dist.py b/bsp/yichip/tools/sdk_dist.py new file mode 100644 index 00000000000..84f439cd981 --- /dev/null +++ b/bsp/yichip/tools/sdk_dist.py @@ -0,0 +1,2 @@ +def dist_do_building(BSP_ROOT, dist_dir): + pass