summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorhathach <[email protected]>2025-11-18 10:18:27 +0700
committerhathach <[email protected]>2025-11-18 10:18:27 +0700
commit6c140930591fd49725a1ec1434dfb841560bc6ae (patch)
tree8433576ea573a2f6f5d88ff309716f3ad5538f05 /tools
parent619ef71fdb5da5dbfabe76189ead4ab97837ec12 (diff)
parent66c84528f67c0eedc23d25221500d820e702d93f (diff)
Merge branch 'master' into fork/HiFiPhile/xfer_close
Diffstat (limited to 'tools')
-rwxr-xr-xtools/build.py67
-rwxr-xr-xtools/build_utils.py2
-rw-r--r--tools/file2carray.py46
-rwxr-xr-xtools/gen_doc.py2
-rwxr-xr-xtools/gen_presets.py36
-rwxr-xr-xtools/get_deps.py141
-rwxr-xr-xtools/iar_gen.py2
-rw-r--r--tools/iar_template.ipcf5
-rwxr-xr-xtools/make_release.py13
9 files changed, 238 insertions, 76 deletions
diff --git a/tools/build.py b/tools/build.py
index d28ddd929..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,39 +152,46 @@ 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")
@@ -202,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
@@ -211,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()
@@ -226,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")
@@ -251,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/file2carray.py b/tools/file2carray.py
new file mode 100644
index 000000000..7150364bf
--- /dev/null
+++ b/tools/file2carray.py
@@ -0,0 +1,46 @@
+#!/usr/bin/env python3
+import argparse
+import random
+import os
+import sys
+import time
+import subprocess
+from pathlib import Path
+from multiprocessing import Pool
+from weakref import finalize
+
+
+def print_carray(f, payload):
+ while len(payload) > 0:
+ f.write('\n ')
+ f.write(', '.join('0x{:02x}'.format(x) for x in payload[0:16]))
+ f.write(',')
+ payload = payload[16:]
+ f.write('\n')
+
+
+def main():
+ parser = argparse.ArgumentParser(description='Convert binary files to C array format')
+ parser.add_argument('files', nargs='+', help='Binary files to convert')
+ args = parser.parse_args()
+
+ files = args.files
+ for fin_name in files:
+ if not os.path.isfile(fin_name):
+ print(f"File {fin_name} does not exist")
+ continue
+
+ with open(fin_name, 'rb') as fin:
+ contents = fin.read()
+ fout_name = fin_name + '.h'
+ with open(fout_name, 'w') as fout:
+ print(f"Converting {fin_name} to {fout_name}")
+ fout.write(f'enum {{ BINDATA_LEN = {len(contents)} }};\n')
+ fout.write(f'const size_t bindata_len = BINDATA_LEN;\n')
+ fout.write(f'const uint8_t bindata[] __attribute__((aligned(16))) = {{')
+ print_carray(fout, contents)
+ fout.write('};\n')
+
+
+if __name__ == '__main__':
+ sys.exit(main())
diff --git a/tools/gen_doc.py b/tools/gen_doc.py
index ab07bc116..3920531d5 100755
--- a/tools/gen_doc.py
+++ b/tools/gen_doc.py
@@ -23,7 +23,7 @@ def gen_deps_doc():
Dependencies
************
-MCU low-level peripheral driver and external libraries for building TinyUSB examples
+MCU low-level peripheral drivers and external libraries for building TinyUSB examples
{tabulate(df, headers="keys", tablefmt='rst')}
"""
diff --git a/tools/gen_presets.py b/tools/gen_presets.py
index 94b8d16b0..94a9361db 100755
--- a/tools/gen_presets.py
+++ b/tools/gen_presets.py
@@ -5,13 +5,20 @@ from pathlib import Path
def main():
board_list = []
+ board_list_esp = []
- # Find all board.cmake files
+ # Find all board.cmake files, exclude espressif
for root, dirs, files in os.walk("hw/bsp"):
for file in files:
- if file == "board.cmake":
+ if file == "board.cmake" and "espressif" not in root:
board_list.append(os.path.basename(root))
+ # Find all espressif boards
+ for root, dirs, files in os.walk("hw/bsp/espressif"):
+ for file in files:
+ if file == "board.cmake":
+ board_list_esp.append(os.path.basename(root))
+
print('Generating presets for the following boards:')
print(board_list)
@@ -29,8 +36,17 @@ def main():
"cacheVariables": {
"CMAKE_DEFAULT_BUILD_TYPE": "RelWithDebInfo",
"BOARD": r"${presetName}"
+ }},
+ {"name": "default single config",
+ "hidden": True,
+ "description": r"Configure preset for the ${presetName} board",
+ "generator": "Ninja",
+ "binaryDir": r"${sourceDir}/build/${presetName}",
+ "cacheVariables": {
+ "BOARD": r"${presetName}"
}}]
+ # Add non-espressif boards
presets['configurePresets'].extend(
sorted(
[
@@ -43,6 +59,22 @@ def main():
)
)
+ # Add espressif boards with single config generator
+ presets['configurePresets'].extend(
+ sorted(
+ [
+ {
+ 'name': board,
+ 'inherits': 'default single config'
+ }
+ for board in board_list_esp
+ ], key=lambda x: x['name']
+ )
+ )
+
+ # Combine all boards
+ board_list.extend(board_list_esp)
+
# Build presets
# no inheritance since 'name' doesn't support macro expansion
presets['buildPresets'] = sorted(
diff --git a/tools/get_deps.py b/tools/get_deps.py
index df8dbb6e1..35f3b3e92 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'],
@@ -47,19 +47,19 @@ deps_optional = {
'b93e856211060ae825216c6a1d6aa347ec758843',
'mm32'],
'hw/mcu/nordic/nrfx': ['https://github.com/NordicSemiconductor/nrfx.git',
- '7c47cc0a56ce44658e6da2458e86cd8783ccc4a2',
+ '11f57e578c7feea13f21c79ea0efab2630ac68c7',
'nrf'],
'hw/mcu/nuvoton': ['https://github.com/majbthrd/nuc_driver.git',
'2204191ec76283371419fbcec207da02e1bc22fa',
- 'nuc'],
+ 'nuc100_120 nuc121_125 nuc126 nuc505'],
'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',
- '032a469e79f6a4ba40760d7868e6db26e15002d7',
+ '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,137 @@ 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-u0': ['https://github.com/STMicroelectronics/cmsis-device-u0.git',
+ 'e3a627c6a5bc4eb2388e1885a95cc155e1672253',
+ 'stm32u0'],
'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',
- 'd6a7fa2e7de084f5e5e47f2ab88b022fe9b50e5a',
+ '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/stm32u0xx_hal_driver': ['https://github.com/STMicroelectronics/stm32u0xx-hal-driver.git',
+ 'cbfb5ac654256445237fd32b3587ac6a238d24f1',
+ 'stm32u0'],
'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,21 +216,42 @@ 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 stm32u0 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',
- 'b0bbb0423b278ca632cfe1474eb227961d835fd2',
- 'ra'],
+ '6f0a58d01aa9bd2feba212097f9afe7acd991d52',
+ 'ra stm32n6'],
'lib/sct_neopixel': ['https://github.com/gsteiert/sct_neopixel.git',
'e73e04ca63495672d955f9268e003cffe168fcd8',
'lpc55'],
@@ -271,6 +319,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()
diff --git a/tools/iar_gen.py b/tools/iar_gen.py
index 8d45659db..571febb2c 100755
--- a/tools/iar_gen.py
+++ b/tools/iar_gen.py
@@ -74,7 +74,7 @@ def ListPath(path, blacklist=[]):
print('</group>')
def List():
- ListPath('src', [ 'template.c', 'dcd_synopsys.c', 'dcd_esp32sx.c' ])
+ ListPath('src', [ 'template.c' ])
ListPath('lib/SEGGER_RTT')
if __name__ == "__main__":
diff --git a/tools/iar_template.ipcf b/tools/iar_template.ipcf
index 33a6ef045..2581a4702 100644
--- a/tools/iar_template.ipcf
+++ b/tools/iar_template.ipcf
@@ -58,6 +58,11 @@
<path>$TUSB_DIR$/src/class/msc/msc_device.h</path>
<path>$TUSB_DIR$/src/class/msc/msc_host.h</path>
</group>
+ <group name="src/class/mtp">
+ <path>$TUSB_DIR$/src/class/mtp/mtp_device.c</path>
+ <path>$TUSB_DIR$/src/class/mtp/mtp.h</path>
+ <path>$TUSB_DIR$/src/class/mtp/mtp_device.h</path>
+ </group>
<group name="src/class/net">
<path>$TUSB_DIR$/src/class/net/ecm_rndis_device.c</path>
<path>$TUSB_DIR$/src/class/net/ncm_device.c</path>
diff --git a/tools/make_release.py b/tools/make_release.py
index c1caf3300..0e7919f46 100755
--- a/tools/make_release.py
+++ b/tools/make_release.py
@@ -2,7 +2,7 @@
import re
import gen_doc
-version = '0.18.0'
+version = '0.19.0'
print('version {}'.format(version))
ver_id = version.split('.')
@@ -45,6 +45,17 @@ with open(f_library_json, 'w') as f:
f.write(fdata)
###################
+# sonar-project.properties
+###################
+f_sonar_properties = 'sonar-project.properties'
+with open(f_sonar_properties) as f:
+ fdata = f.read()
+ fdata = re.sub(r'(sonar\.projectVersion=)\d+\.\d+\.\d+', rf'\1{version}', fdata)
+
+with open(f_sonar_properties, 'w') as f:
+ f.write(fdata)
+
+###################
# docs/info/changelog.rst
###################