summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorhathach <[email protected]>2025-09-15 16:45:41 +0700
committerhathach <[email protected]>2025-09-15 16:45:41 +0700
commit8e34ba9cf6bdcabe2c9eb73ae1aafec38d0ec46d (patch)
tree58c2426146aa5d413706a62521ab6e2cb740b170 /tools
parent802819d271314298ea5a786a37ec6a1e65ef31d6 (diff)
parentfeef534921446e1a3ded54a0c46191fe1709bdb4 (diff)
Merge branch 'master' into fork/ennebi/mtp
Diffstat (limited to 'tools')
-rwxr-xr-xtools/build.py74
-rwxr-xr-xtools/build_utils.py2
-rwxr-xr-xtools/get_deps.py137
3 files changed, 141 insertions, 72 deletions
diff --git a/tools/build.py b/tools/build.py
index 633d2b582..ce4d0ef1a 100755
--- a/tools/build.py
+++ b/tools/build.py
@@ -23,6 +23,7 @@ build_separator = '-' * 95
build_status = [STATUS_OK, STATUS_FAILED, STATUS_SKIPPED]
verbose = False
+parallel_jobs = os.cpu_count()
# -----------------------------
# Helper
@@ -81,7 +82,7 @@ def print_build_result(board, example, status, duration):
# -----------------------------
# CMake
# -----------------------------
-def cmake_board(board, toolchain, build_flags_on):
+def cmake_board(board, build_args, build_flags_on):
ret = [0, 0, 0]
start_time = time.monotonic()
@@ -100,23 +101,25 @@ def cmake_board(board, toolchain, build_flags_on):
if build_utils.skip_example(example, board):
ret[2] += 1
else:
- rcmd = run_cmd(f'cmake examples/{example} -B {build_dir}/{example} -G "Ninja" '
- f'-DBOARD={board} {build_flags}')
- if rcmd.returncode == 0:
- rcmd = run_cmd(f'cmake --build {build_dir}/{example}')
+ rcmd = run_cmd(f'idf.py -C examples/{example} -B {build_dir}/{example} -G Ninja '
+ f'-DBOARD={board} {build_flags} build')
ret[0 if rcmd.returncode == 0 else 1] += 1
else:
- rcmd = run_cmd(f'cmake examples -B {build_dir} -G "Ninja" -DBOARD={board} -DCMAKE_BUILD_TYPE=MinSizeRel '
- f'-DTOOLCHAIN={toolchain} {build_flags}')
+ rcmd = run_cmd(f'cmake examples -B {build_dir} -G Ninja -DBOARD={board} -DCMAKE_BUILD_TYPE=MinSizeRel '
+ f'{build_args} {build_flags}')
if rcmd.returncode == 0:
cmd = f"cmake --build {build_dir}"
- # circleci docker return $nproc as 36 core, limit parallel according to resource class. Required for IAR, also prevent crashed/killed by docker
+ njobs = parallel_jobs
+
+ # circleci docker return $nproc as 36 core, limit parallel according to resource class.
+ # Required for IAR, also prevent crashed/killed by docker
if os.getenv('CIRCLECI'):
resource_class = { 'small': 1, 'medium': 2, 'medium+': 3, 'large': 4 }
for rc in resource_class:
if rc in os.getenv('CIRCLE_JOB'):
- cmd += f' --parallel {resource_class[rc]}'
+ njobs = resource_class[rc]
break
+ cmd += f' --parallel {njobs}'
rcmd = run_cmd(cmd)
ret[0 if rcmd.returncode == 0 else 1] += 1
@@ -149,42 +152,54 @@ def make_one_example(example, board, make_option):
return ret
-def make_board(board, toolchain):
+def make_board(board, build_args):
print(build_separator)
- all_examples = get_examples(find_family(board))
+ family = find_family(board);
+ all_examples = get_examples(family)
start_time = time.monotonic()
ret = [0, 0, 0]
- with Pool(processes=os.cpu_count()) as pool:
- pool_args = list((map(lambda e, b=board, o=f"TOOLCHAIN={toolchain}": [e, b, o], all_examples)))
- r = pool.starmap(make_one_example, pool_args)
- # sum all element of same index (column sum)
- ret = list(map(sum, list(zip(*r))))
- example = 'all'
- print_build_result(board, example, 0 if ret[1] == 0 else 1, time.monotonic() - start_time)
+ if family == 'espressif' or family == 'rp2040':
+ # espressif and rp2040 do not support make, use cmake instead
+ final_status = 2
+ else:
+ with Pool(processes=os.cpu_count()) as pool:
+ pool_args = list((map(lambda e, b=board, o=f"{build_args}": [e, b, o], all_examples)))
+ r = pool.starmap(make_one_example, pool_args)
+ # sum all element of same index (column sum)
+ ret = list(map(sum, list(zip(*r))))
+ final_status = 0 if ret[1] == 0 else 1
+ print_build_result(board, 'all', final_status, time.monotonic() - start_time)
return ret
# -----------------------------
# Build Family
# -----------------------------
-def build_boards_list(boards, toolchain, build_system, build_flags_on):
+def build_boards_list(boards, build_defines, build_system, build_flags_on):
ret = [0, 0, 0]
for b in boards:
r = [0, 0, 0]
if build_system == 'cmake':
- r = cmake_board(b, toolchain, build_flags_on)
+ build_args = ' '.join(f'-D{d}' for d in build_defines)
+ r = cmake_board(b, build_args, build_flags_on)
elif build_system == 'make':
- r = make_board(b, toolchain)
+ build_args = ' '.join(f'{d}' for d in build_defines)
+ r = make_board(b, build_args)
ret[0] += r[0]
ret[1] += r[1]
ret[2] += r[2]
return ret
-def build_family(family, toolchain, build_system, build_flags_on, one_per_family, boards):
+def build_family(family, build_defines, build_system, build_flags_on, one_per_family, boards):
+ skip_ci = ['pico_sdk']
+ if os.getenv('GITHUB_ACTIONS') or os.getenv('CIRCLECI'):
+ skip_ci_file = Path(f"hw/bsp/{family}/skip_ci.txt")
+ if skip_ci_file.exists():
+ skip_ci = skip_ci_file.read_text().split()
all_boards = []
for entry in os.scandir(f"hw/bsp/{family}/boards"):
- if entry.is_dir() and entry.name != 'pico_sdk':
+ if entry.is_dir() and not entry.name in skip_ci:
all_boards.append(entry.name)
all_boards.sort()
@@ -197,7 +212,7 @@ def build_family(family, toolchain, build_system, build_flags_on, one_per_family
return ret
all_boards = [random.choice(all_boards)]
- ret = build_boards_list(all_boards, toolchain, build_system, build_flags_on)
+ ret = build_boards_list(all_boards, build_defines, build_system, build_flags_on)
return ret
@@ -206,14 +221,17 @@ def build_family(family, toolchain, build_system, build_flags_on, one_per_family
# -----------------------------
def main():
global verbose
+ global parallel_jobs
parser = argparse.ArgumentParser()
parser.add_argument('families', nargs='*', default=[], help='Families to build')
parser.add_argument('-b', '--board', action='append', default=[], help='Boards to build')
parser.add_argument('-t', '--toolchain', default='gcc', help='Toolchain to use, default is gcc')
parser.add_argument('-s', '--build-system', default='cmake', help='Build system to use, default is cmake')
+ parser.add_argument('-D', '--define-symbol', action='append', default=[], help='Define to pass to build system')
parser.add_argument('-f1', '--build-flags-on', action='append', default=[], help='Build flag to pass to build system')
parser.add_argument('-1', '--one-per-family', action='store_true', default=False, help='Build only one random board inside a family')
+ parser.add_argument('-j', '--jobs', type=int, default=os.cpu_count(), help='Number of jobs to run in parallel')
parser.add_argument('-v', '--verbose', action='store_true', help='Verbose output')
args = parser.parse_args()
@@ -221,9 +239,13 @@ def main():
boards = args.board
toolchain = args.toolchain
build_system = args.build_system
+ build_defines = args.define_symbol
build_flags_on = args.build_flags_on
one_per_family = args.one_per_family
verbose = args.verbose
+ parallel_jobs = args.jobs
+
+ build_defines.append(f'TOOLCHAIN={toolchain}')
if len(families) == 0 and len(boards) == 0:
print("Please specify families or board to build")
@@ -246,13 +268,13 @@ def main():
# succeeded, failed, skipped
for f in all_families:
- r = build_family(f, toolchain, build_system, build_flags_on, one_per_family, boards)
+ r = build_family(f, build_defines, build_system, build_flags_on, one_per_family, boards)
result[0] += r[0]
result[1] += r[1]
result[2] += r[2]
# build boards
- r = build_boards_list(boards, toolchain, build_system, build_flags_on)
+ r = build_boards_list(boards, build_defines, build_system, build_flags_on)
result[0] += r[0]
result[1] += r[1]
result[2] += r[2]
diff --git a/tools/build_utils.py b/tools/build_utils.py
index 2998f940d..d80ceea7c 100755
--- a/tools/build_utils.py
+++ b/tools/build_utils.py
@@ -26,6 +26,8 @@ def skip_example(example, board):
# family.mk
family_mk = family_dir / "family.mk"
+ if not family_mk.exists():
+ family_mk = family_dir / "family.cmake"
mk_contents = family_mk.read_text()
# Find the mcu, first in family mk then board mk
diff --git a/tools/get_deps.py b/tools/get_deps.py
index b82abac4f..0828140c1 100755
--- a/tools/get_deps.py
+++ b/tools/get_deps.py
@@ -25,9 +25,9 @@ deps_optional = {
'hw/mcu/allwinner': ['https://github.com/hathach/allwinner_driver.git',
'8e5e89e8e132c0fd90e72d5422e5d3d68232b756',
'fc100s'],
- 'hw/mcu/analog/max32' : ['https://github.com/analogdevicesinc/msdk.git',
+ 'hw/mcu/analog/msdk' : ['https://github.com/analogdevicesinc/msdk.git',
'b20b398d3e5e2007594e54a74ba3d2a2e50ddd75',
- 'max32650 max32666 max32690 max78002'],
+ 'maxim'],
'hw/mcu/bridgetek/ft9xx/ft90x-sdk': ['https://github.com/BRTSG-FOSS/ft90x-sdk.git',
'91060164afe239fcb394122e8bf9eb24d3194eb1',
'brtmm90x'],
@@ -55,11 +55,11 @@ deps_optional = {
'hw/mcu/nxp/lpcopen': ['https://github.com/hathach/nxp_lpcopen.git',
'b41cf930e65c734d8ec6de04f1d57d46787c76ae',
'lpc11 lpc13 lpc15 lpc17 lpc18 lpc40 lpc43'],
- 'hw/mcu/nxp/mcux-sdk': ['https://github.com/hathach/mcux-sdk.git',
- '144f1eb7ea8c06512e12f12b27383601c0272410',
+ 'hw/mcu/nxp/mcux-sdk': ['https://github.com/nxp-mcuxpresso/mcux-sdk',
+ 'a1bdae309a14ec95a4f64a96d3315a4f89c397c6',
'kinetis_k kinetis_k32l2 kinetis_kl lpc51 lpc54 lpc55 mcx imxrt'],
- 'hw/mcu/raspberry_pi/Pico-PIO-USB': ['https://github.com/hathach/Pico-PIO-USB.git',
- '9c8df3083b62c0a678f3bd3d8a7e773932622d4b',
+ 'hw/mcu/raspberry_pi/Pico-PIO-USB': ['https://github.com/sekigon-gonnoc/Pico-PIO-USB.git',
+ '675543bcc9baa8170f868ab7ba316d418dbcf41f',
'rp2040'],
'hw/mcu/renesas/fsp': ['https://github.com/renesas/fsp.git',
'edcc97d684b6f716728a60d7a6fea049d9870bd6',
@@ -74,110 +74,131 @@ deps_optional = {
'2ec2a1538362696118dc3fdf56f33dacaf8f4067',
'spresense'],
'hw/mcu/st/cmsis_device_c0': ['https://github.com/STMicroelectronics/cmsis_device_c0.git',
- 'fb56b1b70c73b74eacda2a4bcc36886444364ab3',
+ '517611273f835ffe95318947647bc1408f69120d',
'stm32c0'],
'hw/mcu/st/cmsis_device_f0': ['https://github.com/STMicroelectronics/cmsis_device_f0.git',
- '2fc25ee22264bc27034358be0bd400b893ef837e',
+ 'cbb5da5d48b4b5f2efacdc2f033be30f9d29889f',
'stm32f0'],
'hw/mcu/st/cmsis_device_f1': ['https://github.com/STMicroelectronics/cmsis_device_f1.git',
- '6601104a6397299b7304fd5bcd9a491f56cb23a6',
+ 'c8e9a4a4f16b6d2cb2a2083cbe5161025280fb22',
'stm32f1'],
'hw/mcu/st/cmsis_device_f2': ['https://github.com/STMicroelectronics/cmsis_device_f2.git',
- '182fcb3681ce116816feb41b7764f1b019ce796f',
+ '49321f1e4d2bd3e65687b37f2652a28ea7983674',
'stm32f2'],
'hw/mcu/st/cmsis_device_f3': ['https://github.com/STMicroelectronics/cmsis_device_f3.git',
- '5e4ee5ed7a7b6c85176bb70a9fd3c72d6eb99f1b',
+ '5558e64e3675a1e1fcb1c71f468c7c407c1b1134',
'stm32f3'],
'hw/mcu/st/cmsis_device_f4': ['https://github.com/STMicroelectronics/cmsis_device_f4.git',
- '2615e866fa48fe1ff1af9e31c348813f2b19e7ec',
+ '3c77349ce04c8af401454cc51f85ea9a50e34fc1',
'stm32f4'],
'hw/mcu/st/cmsis_device_f7': ['https://github.com/STMicroelectronics/cmsis_device_f7.git',
- '25b0463439303b7a38f0d27b161f7d2f3c096e79',
+ '2352e888e821aa0f4fe549bd5ea81d29c67a3222',
'stm32f7'],
'hw/mcu/st/cmsis_device_g0': ['https://github.com/STMicroelectronics/cmsis_device_g0.git',
- '3a23e1224417f3f2d00300ecd620495e363f2094',
+ 'f484fe852535f913a02ee79787eafa74dd7f9488',
'stm32g0'],
'hw/mcu/st/cmsis_device_g4': ['https://github.com/STMicroelectronics/cmsis_device_g4.git',
- 'ce822adb1dc552b3aedd13621edbc7fdae124878',
+ '7c39c32593b03764aaa57531588b8bf7cdd443a5',
'stm32g4'],
'hw/mcu/st/cmsis_device_h7': ['https://github.com/STMicroelectronics/cmsis_device_h7.git',
- '60dc2c913203dc8629dc233d4384dcc41c91e77f',
+ '45b818cab6ee2806e3a27c80e330957223424392',
'stm32h7'],
+ 'hw/mcu/st/cmsis_device_h7rs': ['https://github.com/STMicroelectronics/cmsis_device_h7rs.git',
+ '57ea11f70ebf1850e1048989d665c9070f0bb863',
+ 'stm32h7rs'],
'hw/mcu/st/cmsis_device_h5': ['https://github.com/STMicroelectronics/cmsis_device_h5.git',
- 'cd2d1d579743de57b88ccaf61a968b9c05848ffc',
+ '5273b8f134ba65f5b8174c4141b711b5c0d295b2',
'stm32h5'],
'hw/mcu/st/cmsis_device_l0': ['https://github.com/STMicroelectronics/cmsis_device_l0.git',
- '69cd5999fd40ae6e546d4905b21635c6ca1bcb92',
+ '7b7ae8cd71437331e1d7824f157d00c7bb4a5044',
'stm32l0'],
'hw/mcu/st/cmsis_device_l1': ['https://github.com/STMicroelectronics/cmsis_device_l1.git',
- '7f16ec0a1c4c063f84160b4cc6bf88ad554a823e',
+ 'a23ade4ccf14012085fedf862e33a536ab7ed8be',
'stm32l1'],
'hw/mcu/st/cmsis_device_l4': ['https://github.com/STMicroelectronics/cmsis_device_l4.git',
- '6ca7312fa6a5a460b5a5a63d66da527fdd8359a6',
+ 'a2530753e86dd326a75467d28feb92e2ba7d0df2',
'stm32l4'],
'hw/mcu/st/cmsis_device_l5': ['https://github.com/STMicroelectronics/cmsis_device_l5.git',
- 'd922865fc0326a102c26211c44b8e42f52c1e53d',
+ '7d9a51481f0e6c376e62c3c849e6caf652c66482',
'stm32l5'],
+ 'hw/mcu/st/cmsis_device_n6': ['https://github.com/STMicroelectronics/cmsis-device-n6.git',
+ '7bcdc944fbf7cf5928d3c1d14054ca13261d33ec',
+ 'stm32n6'],
'hw/mcu/st/cmsis_device_u5': ['https://github.com/STMicroelectronics/cmsis_device_u5.git',
- '5ad9797c54ec3e55eff770fc9b3cd4a1aefc1309',
+ '6e67187dec98035893692ab2923914cb5f4e0117',
'stm32u5'],
'hw/mcu/st/cmsis_device_wb': ['https://github.com/STMicroelectronics/cmsis_device_wb.git',
- '9c5d1920dd9fabbe2548e10561d63db829bb744f',
+ 'cda2cb9fc4a5232ab18efece0bb06b0b60910083',
'stm32wb'],
+ 'hw/mcu/st/cmsis-device-wba': ['https://github.com/STMicroelectronics/cmsis-device-wba.git',
+ '647d8522e5fd15049e9a1cc30ed19d85e5911eaf',
+ 'stm32wba'],
'hw/mcu/st/stm32-mfxstm32l152': ['https://github.com/STMicroelectronics/stm32-mfxstm32l152.git',
'7f4389efee9c6a655b55e5df3fceef5586b35f9b',
'stm32h7'],
+ 'hw/mcu/st/stm32-tcpp0203': ['https://github.com/STMicroelectronics/stm32-tcpp0203.git',
+ '9918655bff176ac3046ccf378b5c7bbbc6a38d15',
+ 'stm32h7rs stm32n6'],
'hw/mcu/st/stm32c0xx_hal_driver': ['https://github.com/STMicroelectronics/stm32c0xx_hal_driver.git',
- '41253e2f1d7ae4a4d0c379cf63f5bcf71fcf8eb3',
+ 'c283b143bef6bdaacf64240ee6f15eb61dad6125',
'stm32c0'],
'hw/mcu/st/stm32f0xx_hal_driver': ['https://github.com/STMicroelectronics/stm32f0xx_hal_driver.git',
- '0e95cd88657030f640a11e690a8a5186c7712ea5',
+ '94399697cb5eeaf8511b81b7f50dc62f0a5a3f6c',
'stm32f0'],
'hw/mcu/st/stm32f1xx_hal_driver': ['https://github.com/STMicroelectronics/stm32f1xx_hal_driver.git',
- '1dd9d3662fb7eb2a7f7d3bc0a4c1dc7537915a29',
+ '18074e3e5ecad0b380a5cf5a9131fe4b5ed1b2b7',
'stm32f1'],
'hw/mcu/st/stm32f2xx_hal_driver': ['https://github.com/STMicroelectronics/stm32f2xx_hal_driver.git',
- 'c75ace9b908a9aca631193ebf2466963b8ea33d0',
+ 'ae7b47fe41cf75ccaf65cbf8ee8749b18ba0e0f3',
'stm32f2'],
'hw/mcu/st/stm32f3xx_hal_driver': ['https://github.com/STMicroelectronics/stm32f3xx_hal_driver.git',
- '1761b6207318ede021706e75aae78f452d72b6fa',
+ 'e098c8c8ce6f426bcee7db3a37c0932ea881eb0b',
'stm32f3'],
'hw/mcu/st/stm32f4xx_hal_driver': ['https://github.com/STMicroelectronics/stm32f4xx_hal_driver.git',
- '04e99fbdabd00ab8f370f377c66b0a4570365b58',
+ 'b6f0ed3829f3829eb358a2e7417d80bba1a42db7',
'stm32f4'],
'hw/mcu/st/stm32f7xx_hal_driver': ['https://github.com/STMicroelectronics/stm32f7xx_hal_driver.git',
- 'f7ffdf6bf72110e58b42c632b0a051df5997e4ee',
+ 'e1446fa12ffda80ea1016faf349e45b2047fff12',
'stm32f7'],
'hw/mcu/st/stm32g0xx_hal_driver': ['https://github.com/STMicroelectronics/stm32g0xx_hal_driver.git',
- 'e911b12c7f67084d7f6b76157a4c0d4e2ec3779c',
+ 'a248a9e484d58943b46c68f6c49b4b276778bd59',
'stm32g0'],
'hw/mcu/st/stm32g4xx_hal_driver': ['https://github.com/STMicroelectronics/stm32g4xx_hal_driver.git',
- '8b4518417706d42eef5c14e56a650005abf478a8',
+ '10138a41749ea62d53ecab65b2bc2a950acc04d2',
'stm32g4'],
'hw/mcu/st/stm32h7xx_hal_driver': ['https://github.com/STMicroelectronics/stm32h7xx_hal_driver.git',
- 'd8461b980b59b1625207d8c4f2ce0a9c2a7a3b04',
+ 'dbfb749f229e1aa89e50b54229ca87766e180d2d',
'stm32h7'],
+ 'hw/mcu/st/stm32h7rsxx_hal_driver': ['https://github.com/STMicroelectronics/stm32h7rsxx-hal-driver.git',
+ '9e83b95ae0f70faa067eddce2da617d180937f9b',
+ 'stm32h7rs'],
'hw/mcu/st/stm32h5xx_hal_driver': ['https://github.com/STMicroelectronics/stm32h5xx_hal_driver.git',
- '2cf77de584196d619cec1b4586c3b9e2820a254e',
+ '3c84eaa6000ab620be01afbcfba2735389afe09b',
'stm32h5'],
'hw/mcu/st/stm32l0xx_hal_driver': ['https://github.com/STMicroelectronics/stm32l0xx_hal_driver.git',
- 'fbdacaf6f8c82a4e1eb9bd74ba650b491e97e17b',
+ '65da4cd8a10ad859ec8d9cd71f3f6c50735bd473',
'stm32l0'],
'hw/mcu/st/stm32l1xx_hal_driver': ['https://github.com/STMicroelectronics/stm32l1xx_hal_driver.git',
- '44efc446fa69ed8344e7fd966e68ed11043b35d9',
+ '54f0b7568ce2acb33d090c70c897ee32229c1d32',
'stm32l1'],
'hw/mcu/st/stm32l4xx_hal_driver': ['https://github.com/STMicroelectronics/stm32l4xx_hal_driver.git',
- 'aee3d5bf283ae5df87532b781bdd01b7caf256fc',
+ '3e039bbf62f54bbd834d578185521cff80596efe',
'stm32l4'],
'hw/mcu/st/stm32l5xx_hal_driver': ['https://github.com/STMicroelectronics/stm32l5xx_hal_driver.git',
- '675c32a75df37f39d50d61f51cb0dcf53f07e1cb',
+ '3340b9a597bcf75cc173345a90a74aa2a4a37510',
'stm32l5'],
+ 'hw/mcu/st/stm32n6xx_hal_driver': ['https://github.com/STMicroelectronics/stm32n6xx-hal-driver.git',
+ 'bc6c41f8f67d61b47af26695d0bf67762a000666',
+ 'stm32n6'],
'hw/mcu/st/stm32u5xx_hal_driver': ['https://github.com/STMicroelectronics/stm32u5xx_hal_driver.git',
- '4d93097a67928e9377e655ddd14622adc31b9770',
+ '2c5e2568fbdb1900a13ca3b2901fdd302cac3444',
'stm32u5'],
'hw/mcu/st/stm32wbxx_hal_driver': ['https://github.com/STMicroelectronics/stm32wbxx_hal_driver.git',
- '2c5f06638be516c1b772f768456ba637f077bac8',
+ 'd60dd46996876506f1d2e9abd6b1cc110c8004cd',
'stm32wb'],
+ 'hw/mcu/st/stm32wbaxx_hal_driver': ['https://github.com/STMicroelectronics/stm32wbaxx_hal_driver.git',
+ '9442fbb71f855ff2e64fbf662b7726beba511a24',
+ 'stm32wba'],
'hw/mcu/ti': ['https://github.com/hathach/ti_driver.git',
'143ed6cc20a7615d042b03b21e070197d473e6e5',
'msp430 msp432e4 tm4c'],
@@ -189,16 +210,37 @@ deps_optional = {
'ch32v20x'],
'hw/mcu/wch/ch32v307': ['https://github.com/openwch/ch32v307.git',
'184f21b852cb95eed58e86e901837bc9fff68775',
- 'ch32v307'],
+ 'ch32v30x'],
'hw/mcu/wch/ch32f20x': ['https://github.com/openwch/ch32f20x.git',
'77c4095087e5ed2c548ec9058e655d0b8757663b',
'ch32f20x'],
+ 'hw/mcu/artery/at32f403a_407': ['https://github.com/ArteryTek/AT32F403A_407_Firmware_Library.git',
+ 'f2cb360c3d28fada76b374308b8c4c61d37a090b',
+ 'at32f403a_407'],
+ 'hw/mcu/artery/at32f415': ['https://github.com/ArteryTek/AT32F415_Firmware_Library.git',
+ '716f545aa1290ff144ccf023a8e797b951e1bc8e',
+ 'at32f415'],
+ 'hw/mcu/artery/at32f435_437': ['https://github.com/ArteryTek/AT32F435_437_Firmware_Library.git',
+ '25439cc6650a8ae0345934e8707a5f38c7ae41f8',
+ 'at32f435_437'],
+ 'hw/mcu/artery/at32f423': ['https://github.com/ArteryTek/AT32F423_Firmware_Library.git',
+ '2afa7f12852e57a9e8aab3a892c641e1a8635a18',
+ 'at32f423'],
+ 'hw/mcu/artery/at32f402_405': ['https://github.com/ArteryTek/AT32F402_405_Firmware_Library.git',
+ '4424515c2663e82438654e0947695295df2abdfe',
+ 'at32f402_405'],
+ 'hw/mcu/artery/at32f425': ['https://github.com/ArteryTek/AT32F425_Firmware_Library.git',
+ '620233e1357d5c1b7e2bde6b9dd5196822b91817',
+ 'at32f425'],
+ 'hw/mcu/artery/at32f413': ['https://github.com/ArteryTek/AT32F413_Firmware_Library.git',
+ 'f6fe62dfec9fd40c5b63d92fc5ef2c2b5e77a450',
+ 'at32f413'],
'lib/CMSIS_5': ['https://github.com/ARM-software/CMSIS_5.git',
'2b7495b8535bdcb306dac29b9ded4cfb679d7e5c',
'imxrt kinetis_k32l2 kinetis_kl lpc51 lpc54 lpc55 mcx mm32 msp432e4 nrf saml2x '
'lpc11 lpc13 lpc15 lpc17 lpc18 lpc40 lpc43 '
'stm32c0 stm32f0 stm32f1 stm32f2 stm32f3 stm32f4 stm32f7 stm32g0 stm32g4 stm32h5 '
- 'stm32h7 stm32l0 stm32l1 stm32l4 stm32l5 stm32u5 stm32wb '
+ 'stm32h7 stm32h7rs stm32l0 stm32l1 stm32l4 stm32l5 stm32n6 stm32u5 stm32wb stm32wba'
'sam3x samd11 samd21 samd51 samd5x_e5x same5x same7x saml2x samg '
'tm4c '],
'lib/CMSIS_6': ['https://github.com/ARM-software/CMSIS_6.git',
@@ -243,11 +285,13 @@ def get_a_dep(d):
p.mkdir(parents=True)
run_cmd(f"{git_cmd} init")
run_cmd(f"{git_cmd} remote add origin {url}")
+ head = None
+ else:
+ # Check if commit is already fetched
+ result = run_cmd(f"{git_cmd} rev-parse HEAD")
+ head = result.stdout.decode("utf-8").splitlines()[0]
+ run_cmd(f"{git_cmd} reset --hard")
- # Check if commit is already fetched
- result = run_cmd(f"{git_cmd} rev-parse HEAD")
- head = result.stdout.decode("utf-8").splitlines()[0]
- run_cmd(f"{git_cmd} reset --hard")
if commit != head:
run_cmd(f"{git_cmd} fetch --depth 1 origin {commit}")
run_cmd(f"{git_cmd} checkout FETCH_HEAD")
@@ -269,6 +313,7 @@ def main():
parser = argparse.ArgumentParser()
parser.add_argument('families', nargs='*', default=[], help='Families to fetch')
parser.add_argument('-b', '--board', action='append', default=[], help='Boards to fetch')
+ parser.add_argument('-D', '--define', action='append', default=[], help='Have no effect')
parser.add_argument('-f1', '--build-flags-on', action='append', default=[], help='Have no effect')
parser.add_argument('--print', action='store_true', help='Print commit hash only')
args = parser.parse_args()