From 1b28a7de76ccc22f139731eb907967074d47429c Mon Sep 17 00:00:00 2001 From: Ha Thach Date: Thu, 4 Jul 2024 09:29:19 +0700 Subject: [PATCH] add upload via wchisp tool (#129) --- boards.txt | 28 ++++++++++++++++++++++++++++ platform.txt | 9 ++++++++- tools/makeboards.py | 17 +++++++++++++---- 3 files changed, 49 insertions(+), 5 deletions(-) mode change 100755 => 100644 tools/makeboards.py diff --git a/boards.txt b/boards.txt index a218926..f53eb3c 100644 --- a/boards.txt +++ b/boards.txt @@ -48,6 +48,10 @@ CH32V00x_EVT.menu.upload_method.swdMethod=WCH-SWD CH32V00x_EVT.menu.upload_method.swdMethod.upload.protocol= CH32V00x_EVT.menu.upload_method.swdMethod.upload.options= CH32V00x_EVT.menu.upload_method.swdMethod.upload.tool=WCH_linkE +CH32V00x_EVT.menu.upload_method.ispMethod=WCH-ISP +CH32V00x_EVT.menu.upload_method.ispMethod.upload.protocol= +CH32V00x_EVT.menu.upload_method.ispMethod.upload.options= +CH32V00x_EVT.menu.upload_method.ispMethod.upload.tool=wchisp # Clock Select @@ -148,6 +152,10 @@ CH32VM00X_EVT.menu.upload_method.swdMethod=WCH-SWD CH32VM00X_EVT.menu.upload_method.swdMethod.upload.protocol= CH32VM00X_EVT.menu.upload_method.swdMethod.upload.options= CH32VM00X_EVT.menu.upload_method.swdMethod.upload.tool=WCH_linkE +CH32VM00X_EVT.menu.upload_method.ispMethod=WCH-ISP +CH32VM00X_EVT.menu.upload_method.ispMethod.upload.protocol= +CH32VM00X_EVT.menu.upload_method.ispMethod.upload.options= +CH32VM00X_EVT.menu.upload_method.ispMethod.upload.tool=wchisp # Clock Select @@ -248,6 +256,10 @@ CH32X035_EVT.menu.upload_method.swdMethod=WCH-SWD CH32X035_EVT.menu.upload_method.swdMethod.upload.protocol= CH32X035_EVT.menu.upload_method.swdMethod.upload.options= CH32X035_EVT.menu.upload_method.swdMethod.upload.tool=WCH_linkE +CH32X035_EVT.menu.upload_method.ispMethod=WCH-ISP +CH32X035_EVT.menu.upload_method.ispMethod.upload.protocol= +CH32X035_EVT.menu.upload_method.ispMethod.upload.options= +CH32X035_EVT.menu.upload_method.ispMethod.upload.tool=wchisp # Clock Select @@ -346,6 +358,10 @@ CH32V10x_EVT.menu.upload_method.swdMethod=WCH-SWD CH32V10x_EVT.menu.upload_method.swdMethod.upload.protocol= CH32V10x_EVT.menu.upload_method.swdMethod.upload.options= CH32V10x_EVT.menu.upload_method.swdMethod.upload.tool=WCH_linkE +CH32V10x_EVT.menu.upload_method.ispMethod=WCH-ISP +CH32V10x_EVT.menu.upload_method.ispMethod.upload.protocol= +CH32V10x_EVT.menu.upload_method.ispMethod.upload.options= +CH32V10x_EVT.menu.upload_method.ispMethod.upload.tool=wchisp # Clock Select @@ -522,6 +538,10 @@ CH32V20x_EVT.menu.upload_method.swdMethod=WCH-SWD CH32V20x_EVT.menu.upload_method.swdMethod.upload.protocol= CH32V20x_EVT.menu.upload_method.swdMethod.upload.options= CH32V20x_EVT.menu.upload_method.swdMethod.upload.tool=WCH_linkE +CH32V20x_EVT.menu.upload_method.ispMethod=WCH-ISP +CH32V20x_EVT.menu.upload_method.ispMethod.upload.protocol= +CH32V20x_EVT.menu.upload_method.ispMethod.upload.options= +CH32V20x_EVT.menu.upload_method.ispMethod.upload.tool=wchisp # Clock Select @@ -646,6 +666,10 @@ CH32V30x_EVT.menu.upload_method.swdMethod=WCH-SWD CH32V30x_EVT.menu.upload_method.swdMethod.upload.protocol= CH32V30x_EVT.menu.upload_method.swdMethod.upload.options= CH32V30x_EVT.menu.upload_method.swdMethod.upload.tool=WCH_linkE +CH32V30x_EVT.menu.upload_method.ispMethod=WCH-ISP +CH32V30x_EVT.menu.upload_method.ispMethod.upload.protocol= +CH32V30x_EVT.menu.upload_method.ispMethod.upload.options= +CH32V30x_EVT.menu.upload_method.ispMethod.upload.tool=wchisp # Clock Select @@ -762,6 +786,10 @@ CH32L10x_EVT.menu.upload_method.swdMethod=WCH-SWD CH32L10x_EVT.menu.upload_method.swdMethod.upload.protocol= CH32L10x_EVT.menu.upload_method.swdMethod.upload.options= CH32L10x_EVT.menu.upload_method.swdMethod.upload.tool=WCH_linkE +CH32L10x_EVT.menu.upload_method.ispMethod=WCH-ISP +CH32L10x_EVT.menu.upload_method.ispMethod.upload.protocol= +CH32L10x_EVT.menu.upload_method.ispMethod.upload.options= +CH32L10x_EVT.menu.upload_method.ispMethod.upload.tool=wchisp # Clock Select diff --git a/platform.txt b/platform.txt index 80b8070..7f32cc3 100644 --- a/platform.txt +++ b/platform.txt @@ -169,10 +169,17 @@ tools.WCH_linkE.upload.params.quiet= tools.WCH_linkE.upload.config={runtime.tools.openocd.path}/bin/wch-riscv.cfg tools.WCH_linkE.upload.pattern="{path}{cmd}" -f "{upload.config}" -c init -c halt -c "program {{build.path}/{build.project_name}.elf} verify; wlink_reset_resume; exit;" - #tools.WCH_linkE.upload.pattern="{path}{cmd}" -f {upload.config} -c init -c halt -c "program {{build.path}/{build.project_name}.elf}; verify_image {{build.path}/{build.project_name}.elf}; wlink_reset_resume; exit;" +## WCH-ISP +tools.wchisp.path={runtime.tools.wchisp.path}/ +tools.wchisp.cmd=wchisp +tools.wchisp.upload.params.verbose= +tools.wchisp.upload.params.quiet= +tools.wchisp.upload.pattern="{path}{cmd}" {upload.verbose} flash "{build.path}/{build.project_name}.elf" + + # Debugger configuration (general options) # ---------------------------------------- # EXPERIMENTAL feature: diff --git a/tools/makeboards.py b/tools/makeboards.py old mode 100755 new mode 100644 index 4aed00f..77f6cfc --- a/tools/makeboards.py +++ b/tools/makeboards.py @@ -181,10 +181,19 @@ def build_upload(series, values): print("# Upload menu") name = values["name"] menu = f'{name}.menu.upload_method' - print(f'{menu}.swdMethod=WCH-SWD') - print(f'{menu}.swdMethod.upload.protocol=') - print(f'{menu}.swdMethod.upload.options=') - print(f'{menu}.swdMethod.upload.tool=WCH_linkE') + + menu_swd = f'{menu}.swdMethod' + print(f'{menu_swd}=WCH-SWD') + print(f'{menu_swd}.upload.protocol=') + print(f'{menu_swd}.upload.options=') + print(f'{menu_swd}.upload.tool=WCH_linkE') + + menu_isp = f'{menu}.ispMethod' + print(f'{menu_isp}=WCH-ISP') + print(f'{menu_isp}.upload.protocol=') + print(f'{menu_isp}.upload.options=') + print(f'{menu_isp}.upload.tool=wchisp') + print()