Skip to content

Commit f52cbd8

Browse files
committed
feat(platform): Add OpenOCD programming support for STeaMi and Nucleo 64 boards
- Modified `platform.txt` to enable programming via OpenOCD, which was already used for debugging. - Added an example demonstrating how to program all Nucleo-64 boards, whether they use STLink or DAPLink. To avoid conflict, the support for STeaMi will be added after the merge of the PR #2526 *Benefits:* - Enables programming of STeaMi boards. - Supports P_NUCLEO boards that use DAPLink instead of STLink to leverage WebUSB functionality.
1 parent 8da4af2 commit f52cbd8

File tree

2 files changed

+20
-0
lines changed

2 files changed

+20
-0
lines changed

boards.txt

+12
Original file line numberDiff line numberDiff line change
@@ -802,6 +802,7 @@ Nucleo_64.menu.pnum.P_NUCLEO_WB55RG=P-Nucleo WB55RG
802802
Nucleo_64.menu.pnum.P_NUCLEO_WB55RG.node="NODE_WB55RG,NOD_WB55RG"
803803
Nucleo_64.menu.pnum.P_NUCLEO_WB55RG.upload.maximum_size=524288
804804
Nucleo_64.menu.pnum.P_NUCLEO_WB55RG.upload.maximum_data_size=196608
805+
Nucleo_64.menu.upload_method.OpenOCD.upload.target=stm32wbx
805806
Nucleo_64.menu.pnum.P_NUCLEO_WB55RG.build.mcu=cortex-m4
806807
Nucleo_64.menu.pnum.P_NUCLEO_WB55RG.build.fpu=-mfpu=fpv4-sp-d16
807808
Nucleo_64.menu.pnum.P_NUCLEO_WB55RG.build.float-abi=-mfloat-abi=hard
@@ -817,6 +818,7 @@ Nucleo_64.menu.pnum.P_NUCLEO_WB55_USB_DONGLE=P-Nucleo WB55 USB Dongle
817818
Nucleo_64.menu.pnum.P_NUCLEO_WB55_USB_DONGLE.node="No_mass_storage_for_this_board_Use_STLink_upload_method"
818819
Nucleo_64.menu.pnum.P_NUCLEO_WB55_USB_DONGLE.upload.maximum_size=524288
819820
Nucleo_64.menu.pnum.P_NUCLEO_WB55_USB_DONGLE.upload.maximum_data_size=196608
821+
Nucleo_64.menu.upload_method.OpenOCD.upload.target=stm32wbx
820822
Nucleo_64.menu.pnum.P_NUCLEO_WB55_USB_DONGLE.build.mcu=cortex-m4
821823
Nucleo_64.menu.pnum.P_NUCLEO_WB55_USB_DONGLE.build.fpu=-mfpu=fpv4-sp-d16
822824
Nucleo_64.menu.pnum.P_NUCLEO_WB55_USB_DONGLE.build.float-abi=-mfloat-abi=hard
@@ -876,6 +878,16 @@ Nucleo_64.menu.upload_method.dfuMethod.upload.protocol=dfu
876878
Nucleo_64.menu.upload_method.dfuMethod.upload.options=-v {upload.vid} -p {upload.pid}
877879
Nucleo_64.menu.upload_method.dfuMethod.upload.tool=stm32CubeProg
878880

881+
Nucleo_64.menu.upload_method.OpenOCD=OpenOCD STLink (SWD)
882+
Nucleo_64.menu.upload_method.OpenOCD.upload.protocol=stlink
883+
Nucleo_64.menu.upload_method.OpenOCD.upload.setup_command=transport select hla_swd;
884+
Nucleo_64.menu.upload_method.OpenOCD.upload.tool=openocd_upload
885+
886+
Nucleo_64.menu.upload_method.OpenOCD=OpenOCD DapLink (SWD)
887+
Nucleo_64.menu.upload_method.OpenOCD.upload.protocol=cmsis-dap
888+
Nucleo_64.menu.upload_method.OpenOCD.upload.setup_command=transport select swd;
889+
Nucleo_64.menu.upload_method.OpenOCD.upload.tool=openocd_upload
890+
879891
################################################################################
880892
# Nucleo 32 boards
881893

platform.txt

+8
Original file line numberDiff line numberDiff line change
@@ -238,6 +238,14 @@ tools.remoteproc_gen.upload.params.verbose=
238238
tools.remoteproc_gen.upload.params.quiet=
239239
tools.remoteproc_gen.upload.pattern="{busybox}" sh "{path}/{script}" generate "{build.path}/{build.project_name}.elf" "{build.path}/run_arduino_{build.project_name}.sh"
240240

241+
# OpenOCD sketch upload
242+
tools.openocd_upload.path={openocd_dir}
243+
tools.openocd_upload.cmd=bin/openocd
244+
tools.openocd_upload.cmd.windows=bin/openocd.exe
245+
tools.openocd_upload.upload.params.verbose=-d2
246+
tools.openocd_upload.upload.params.quiet=-d0
247+
tools.openocd_upload.upload.pattern="{path}/{cmd}" {upload.verbose} -f interface/{upload.protocol}.cfg -c "{upload.setup_command}" -f target/{upload.target}.cfg -c "program {{build.path}/{build.project_name}.bin} verify reset; shutdown;"
248+
241249
#
242250
# Debugger
243251
#

0 commit comments

Comments
 (0)