Skip to content

Commit 5e2e32a

Browse files
committed
Introduce STM32CubeProgrammer
Replace STLink and Serial. Add DFU. Signed-off-by: Frederic.Pillon <[email protected]>
1 parent b600b28 commit 5e2e32a

File tree

2 files changed

+158
-70
lines changed

2 files changed

+158
-70
lines changed

boards.txt

+148-46
Original file line numberDiff line numberDiff line change
@@ -123,9 +123,20 @@ Nucleo_144.menu.upload_method.MassStorage=Mass Storage
123123
Nucleo_144.menu.upload_method.MassStorage.upload.protocol=
124124
Nucleo_144.menu.upload_method.MassStorage.upload.tool=massStorageCopy
125125

126-
Nucleo_144.menu.upload_method.STLink=STLink
127-
Nucleo_144.menu.upload_method.STLink.upload.protocol=STLink
128-
Nucleo_144.menu.upload_method.STLink.upload.tool=stlink_upload
126+
Nucleo_144.menu.upload_method.swdMethod=STM32CubeProgrammer (SWD)
127+
Nucleo_144.menu.upload_method.swdMethod.upload.protocol=0
128+
Nucleo_144.menu.upload_method.swdMethod.upload.options=-rst
129+
Nucleo_144.menu.upload_method.swdMethod.upload.tool=stm32CubeProg
130+
131+
Nucleo_144.menu.upload_method.serialMethod=STM32CubeProgrammer (Serial)
132+
Nucleo_144.menu.upload_method.serialMethod.upload.protocol=1
133+
Nucleo_144.menu.upload_method.serialMethod.upload.options={serial.port.file} -s
134+
Nucleo_144.menu.upload_method.serialMethod.upload.tool=stm32CubeProg
135+
136+
Nucleo_144.menu.upload_method.dfuMethod=STM32CubeProgrammer (DFU)
137+
Nucleo_144.menu.upload_method.dfuMethod.upload.protocol=2
138+
Nucleo_144.menu.upload_method.dfuMethod.upload.options=
139+
Nucleo_144.menu.upload_method.dfuMethod.upload.tool=stm32CubeProg
129140

130141
################################################################################
131142
# Nucleo 64 boards
@@ -326,9 +337,20 @@ Nucleo_64.menu.upload_method.MassStorage=Mass Storage
326337
Nucleo_64.menu.upload_method.MassStorage.upload.protocol=
327338
Nucleo_64.menu.upload_method.MassStorage.upload.tool=massStorageCopy
328339

329-
Nucleo_64.menu.upload_method.STLink=STLink
330-
Nucleo_64.menu.upload_method.STLink.upload.protocol=STLink
331-
Nucleo_64.menu.upload_method.STLink.upload.tool=stlink_upload
340+
Nucleo_64.menu.upload_method.swdMethod=STM32CubeProgrammer (SWD)
341+
Nucleo_64.menu.upload_method.swdMethod.upload.protocol=0
342+
Nucleo_64.menu.upload_method.swdMethod.upload.options=-rst
343+
Nucleo_64.menu.upload_method.swdMethod.upload.tool=stm32CubeProg
344+
345+
Nucleo_64.menu.upload_method.serialMethod=STM32CubeProgrammer (Serial)
346+
Nucleo_64.menu.upload_method.serialMethod.upload.protocol=1
347+
Nucleo_64.menu.upload_method.serialMethod.upload.options={serial.port.file} -s
348+
Nucleo_64.menu.upload_method.serialMethod.upload.tool=stm32CubeProg
349+
350+
Nucleo_64.menu.upload_method.dfuMethod=STM32CubeProgrammer (DFU)
351+
Nucleo_64.menu.upload_method.dfuMethod.upload.protocol=2
352+
Nucleo_64.menu.upload_method.dfuMethod.upload.options=
353+
Nucleo_64.menu.upload_method.dfuMethod.upload.tool=stm32CubeProg
332354

333355
################################################################################
334356
# Nucleo 32 boards
@@ -393,9 +415,20 @@ Nucleo_32.menu.upload_method.MassStorage=Mass Storage
393415
Nucleo_32.menu.upload_method.MassStorage.upload.protocol=
394416
Nucleo_32.menu.upload_method.MassStorage.upload.tool=massStorageCopy
395417

396-
Nucleo_32.menu.upload_method.STLink=STLink
397-
Nucleo_32.menu.upload_method.STLink.upload.protocol=STLink
398-
Nucleo_32.menu.upload_method.STLink.upload.tool=stlink_upload
418+
Nucleo_32.menu.upload_method.swdMethod=STM32CubeProgrammer (SWD)
419+
Nucleo_32.menu.upload_method.swdMethod.upload.protocol=0
420+
Nucleo_32.menu.upload_method.swdMethod.upload.options=-rst
421+
Nucleo_32.menu.upload_method.swdMethod.upload.tool=stm32CubeProg
422+
423+
Nucleo_32.menu.upload_method.serialMethod=STM32CubeProgrammer (Serial)
424+
Nucleo_32.menu.upload_method.serialMethod.upload.protocol=1
425+
Nucleo_32.menu.upload_method.serialMethod.upload.options={serial.port.file} -s
426+
Nucleo_32.menu.upload_method.serialMethod.upload.tool=stm32CubeProg
427+
428+
Nucleo_32.menu.upload_method.dfuMethod=STM32CubeProgrammer (DFU)
429+
Nucleo_32.menu.upload_method.dfuMethod.upload.protocol=2
430+
Nucleo_32.menu.upload_method.dfuMethod.upload.options=
431+
Nucleo_32.menu.upload_method.dfuMethod.upload.tool=stm32CubeProg
399432

400433
################################################################################
401434
# Discovery boards
@@ -497,9 +530,20 @@ Disco.menu.upload_method.MassStorage=Mass Storage
497530
Disco.menu.upload_method.MassStorage.upload.protocol=
498531
Disco.menu.upload_method.MassStorage.upload.tool=massStorageCopy
499532

500-
Disco.menu.upload_method.STLink=STLink
501-
Disco.menu.upload_method.STLink.upload.protocol=STLink
502-
Disco.menu.upload_method.STLink.upload.tool=stlink_upload
533+
Disco.menu.upload_method.swdMethod=STM32CubeProgrammer (SWD)
534+
Disco.menu.upload_method.swdMethod.upload.protocol=0
535+
Disco.menu.upload_method.swdMethod.upload.options=-rst
536+
Disco.menu.upload_method.swdMethod.upload.tool=stm32CubeProg
537+
538+
Disco.menu.upload_method.serialMethod=STM32CubeProgrammer (Serial)
539+
Disco.menu.upload_method.serialMethod.upload.protocol=1
540+
Disco.menu.upload_method.serialMethod.upload.options={serial.port.file} -s
541+
Disco.menu.upload_method.serialMethod.upload.tool=stm32CubeProg
542+
543+
Disco.menu.upload_method.dfuMethod=STM32CubeProgrammer (DFU)
544+
Disco.menu.upload_method.dfuMethod.upload.protocol=2
545+
Disco.menu.upload_method.dfuMethod.upload.options=
546+
Disco.menu.upload_method.dfuMethod.upload.tool=stm32CubeProg
503547

504548
################################################################################
505549
# Other boards
@@ -524,13 +568,20 @@ GenF0.menu.pnum.DEMO_F030F4.build.variant=DEMO_F030F4
524568
GenF0.menu.pnum.DEMO_F030F4.build.cmsis_lib_gcc=arm_cortexM0l_math
525569

526570
# Upload menu
527-
GenF0.menu.upload_method.STLinkMethod=STLink
528-
GenF0.menu.upload_method.STLinkMethod.upload.protocol=STLink
529-
GenF0.menu.upload_method.STLinkMethod.upload.tool=stlink_upload
571+
GenF0.menu.upload_method.swdMethod=STM32CubeProgrammer (SWD)
572+
GenF0.menu.upload_method.swdMethod.upload.protocol=0
573+
GenF0.menu.upload_method.swdMethod.upload.options=-rst
574+
GenF0.menu.upload_method.swdMethod.upload.tool=stm32CubeProg
575+
576+
GenF0.menu.upload_method.serialMethod=STM32CubeProgrammer (Serial)
577+
GenF0.menu.upload_method.serialMethod.upload.protocol=1
578+
GenF0.menu.upload_method.serialMethod.upload.options={serial.port.file} -s
579+
GenF0.menu.upload_method.serialMethod.upload.tool=stm32CubeProg
530580

531-
GenF0.menu.upload_method.serialMethod=Serial
532-
GenF0.menu.upload_method.serialMethod.upload.protocol=maple_serial
533-
GenF0.menu.upload_method.serialMethod.upload.tool=serial_upload
581+
GenF0.menu.upload_method.dfuMethod=STM32CubeProgrammer (DFU)
582+
GenF0.menu.upload_method.dfuMethod.upload.protocol=2
583+
GenF0.menu.upload_method.dfuMethod.upload.options=
584+
GenF0.menu.upload_method.dfuMethod.upload.tool=stm32CubeProg
534585

535586
################################################################################
536587
# Generic F1
@@ -599,13 +650,20 @@ GenF1.menu.pnum.HY_TinySTM103TB.build.product_line=STM32F103xB
599650
GenF1.menu.pnum.HY_TinySTM103TB.build.variant=HY_TinySTM103T
600651

601652
# Upload menu
602-
GenF1.menu.upload_method.STLinkMethod=STLink
603-
GenF1.menu.upload_method.STLinkMethod.upload.protocol=STLink
604-
GenF1.menu.upload_method.STLinkMethod.upload.tool=stlink_upload
653+
GenF1.menu.upload_method.swdMethod=STM32CubeProgrammer (SWD)
654+
GenF1.menu.upload_method.swdMethod.upload.protocol=0
655+
GenF1.menu.upload_method.swdMethod.upload.options=-rst
656+
GenF1.menu.upload_method.swdMethod.upload.tool=stm32CubeProg
605657

606-
GenF1.menu.upload_method.serialMethod=Serial
607-
GenF1.menu.upload_method.serialMethod.upload.protocol=maple_serial
608-
GenF1.menu.upload_method.serialMethod.upload.tool=serial_upload
658+
GenF1.menu.upload_method.serialMethod=STM32CubeProgrammer (Serial)
659+
GenF1.menu.upload_method.serialMethod.upload.protocol=1
660+
GenF1.menu.upload_method.serialMethod.upload.options={serial.port.file} -s
661+
GenF1.menu.upload_method.serialMethod.upload.tool=stm32CubeProg
662+
663+
GenF1.menu.upload_method.dfuMethod=STM32CubeProgrammer (DFU)
664+
GenF1.menu.upload_method.dfuMethod.upload.protocol=2
665+
GenF1.menu.upload_method.dfuMethod.upload.options=
666+
GenF1.menu.upload_method.dfuMethod.upload.tool=stm32CubeProg
609667

610668
GenF1.menu.upload_method.bmpMethod=BMP (Black Magic Probe)
611669
GenF1.menu.upload_method.bmpMethod.upload.protocol=gdb_bmp
@@ -681,13 +739,20 @@ GenF4.menu.pnum.FK407M1.build.product_line=STM32F407xx
681739
GenF4.menu.pnum.FK407M1.build.variant=FK407M1
682740

683741
# Upload menu
684-
GenF4.menu.upload_method.STLink=STLink
685-
GenF4.menu.upload_method.STLink.upload.protocol=STLink
686-
GenF4.menu.upload_method.STLink.upload.tool=stlink_upload
742+
GenF4.menu.upload_method.swdMethod=STM32CubeProgrammer (SWD)
743+
GenF4.menu.upload_method.swdMethod.upload.protocol=0
744+
GenF4.menu.upload_method.swdMethod.upload.options=-rst
745+
GenF4.menu.upload_method.swdMethod.upload.tool=stm32CubeProg
746+
747+
GenF4.menu.upload_method.serialMethod=STM32CubeProgrammer (Serial)
748+
GenF4.menu.upload_method.serialMethod.upload.protocol=1
749+
GenF4.menu.upload_method.serialMethod.upload.options={serial.port.file} -s
750+
GenF4.menu.upload_method.serialMethod.upload.tool=stm32CubeProg
687751

688-
GenF4.menu.upload_method.serialMethod=Serial
689-
GenF4.menu.upload_method.serialMethod.upload.protocol=maple_serial
690-
GenF4.menu.upload_method.serialMethod.upload.tool=serial_upload
752+
GenF4.menu.upload_method.dfuMethod=STM32CubeProgrammer (DFU)
753+
GenF4.menu.upload_method.dfuMethod.upload.protocol=2
754+
GenF4.menu.upload_method.dfuMethod.upload.options=
755+
GenF4.menu.upload_method.dfuMethod.upload.tool=stm32CubeProg
691756

692757
GenF4.menu.upload_method.bmpMethod=BMP (Black Magic Probe)
693758
GenF4.menu.upload_method.bmpMethod.upload.protocol=gdb_bmp
@@ -715,9 +780,20 @@ Sparky.menu.pnum.Sparky_V1.build.variant=SPARKY_F303CC
715780
Sparky.menu.pnum.Sparky_V1.build.cmsis_lib_gcc=arm_cortexM4l_math
716781

717782
# Upload menu
718-
Sparky.menu.upload_method.STLinkMethod=STLink
719-
Sparky.menu.upload_method.STLinkMethod.upload.protocol=STLink
720-
Sparky.menu.upload_method.STLinkMethod.upload.tool=stlink_upload
783+
Sparky.menu.upload_method.swdMethod=STM32CubeProgrammer (SWD)
784+
Sparky.menu.upload_method.swdMethod.upload.protocol=0
785+
Sparky.menu.upload_method.swdMethod.upload.options=-rst
786+
Sparky.menu.upload_method.swdMethod.upload.tool=stm32CubeProg
787+
788+
Sparky.menu.upload_method.serialMethod=STM32CubeProgrammer (Serial)
789+
Sparky.menu.upload_method.serialMethod.upload.protocol=1
790+
Sparky.menu.upload_method.serialMethod.upload.options={serial.port.file} -s
791+
Sparky.menu.upload_method.serialMethod.upload.tool=stm32CubeProg
792+
793+
Sparky.menu.upload_method.dfuMethod=STM32CubeProgrammer (DFU)
794+
Sparky.menu.upload_method.dfuMethod.upload.protocol=2
795+
Sparky.menu.upload_method.dfuMethod.upload.options=
796+
Sparky.menu.upload_method.dfuMethod.upload.tool=stm32CubeProg
721797

722798
################################################################################
723799
# RAK boards
@@ -748,13 +824,20 @@ RAK.menu.pnum.RAK811_TRACKERA.build.product_line=STM32L151xBA
748824
RAK.menu.pnum.RAK811_TRACKERA.build.variant=RAK811_TRACKER
749825

750826
# Upload menu
751-
RAK.menu.upload_method.serialMethod=Serial
752-
RAK.menu.upload_method.serialMethod.upload.protocol=maple_serial
753-
RAK.menu.upload_method.serialMethod.upload.tool=serial_upload
827+
RAK.menu.upload_method.swdMethod=STM32CubeProgrammer (SWD)
828+
RAK.menu.upload_method.swdMethod.upload.protocol=0
829+
RAK.menu.upload_method.swdMethod.upload.options=-rst
830+
RAK.menu.upload_method.swdMethod.upload.tool=stm32CubeProg
831+
832+
RAK.menu.upload_method.serialMethod=STM32CubeProgrammer (Serial)
833+
RAK.menu.upload_method.serialMethod.upload.protocol=1
834+
RAK.menu.upload_method.serialMethod.upload.options={serial.port.file} -s
835+
RAK.menu.upload_method.serialMethod.upload.tool=stm32CubeProg
754836

755-
RAK.menu.upload_method.STLink=STLink
756-
RAK.menu.upload_method.STLink.upload.protocol=STLink
757-
RAK.menu.upload_method.STLink.upload.tool=stlink_upload
837+
RAK.menu.upload_method.dfuMethod=STM32CubeProgrammer (DFU)
838+
RAK.menu.upload_method.dfuMethod.upload.protocol=2
839+
RAK.menu.upload_method.dfuMethod.upload.options=
840+
RAK.menu.upload_method.dfuMethod.upload.tool=stm32CubeProg
758841

759842
###############################
760843
# 3D printer boards
@@ -824,6 +907,18 @@ RAK.menu.upload_method.STLink.upload.tool=stlink_upload
824907
3dprinter.menu.pnum.EEXTR_F030_V1.build.cmsis_lib_gcc=arm_cortexM0l_math
825908

826909
# MALYANM200_F103CB board
910+
3dprinter.menu.upload_method.swdMethod=STM32CubeProgrammer (SWD)
911+
3dprinter.menu.upload_method.swdMethod.upload.protocol=SWD
912+
3dprinter.menu.upload_method.swdMethod.upload.tool=stm32CubeProg
913+
914+
3dprinter.menu.upload_method.STLinkMethod=STLink (deprecated)
915+
3dprinter.menu.upload_method.STLinkMethod.upload.protocol=STLink
916+
3dprinter.menu.upload_method.STLinkMethod.upload.tool=stlink_upload
917+
918+
3dprinter.menu.upload_method.serialMethod=Serial
919+
3dprinter.menu.upload_method.serialMethod.upload.protocol=maple_serial
920+
3dprinter.menu.upload_method.serialMethod.upload.tool=serial_upload
921+
827922
3dprinter.menu.pnum.MALYANM200_F103CB=Malyan M200 V1
828923
3dprinter.menu.pnum.MALYANM200_F103CB.upload.maximum_size=122880
829924
3dprinter.menu.pnum.MALYANM200_F103CB.upload.maximum_data_size=20480
@@ -850,13 +945,20 @@ RAK.menu.upload_method.STLink.upload.tool=stlink_upload
850945
3dprinter.menu.pnum.MALYANM200_F070CB.build.extra_flags=-D{build.product_line} {build.enable_usb} {build.xSerial} -DVECT_TAB_OFFSET=0x2000
851946

852947
# Upload menu
853-
3dprinter.menu.upload_method.STLinkMethod=STLink
854-
3dprinter.menu.upload_method.STLinkMethod.upload.protocol=STLink
855-
3dprinter.menu.upload_method.STLinkMethod.upload.tool=stlink_upload
856-
857-
3dprinter.menu.upload_method.serialMethod=Serial
858-
3dprinter.menu.upload_method.serialMethod.upload.protocol=maple_serial
859-
3dprinter.menu.upload_method.serialMethod.upload.tool=serial_upload
948+
3dprinter.menu.upload_method.swdMethod=STM32CubeProgrammer (SWD)
949+
3dprinter.menu.upload_method.swdMethod.upload.protocol=0
950+
3dprinter.menu.upload_method.swdMethod.upload.options=-rst
951+
3dprinter.menu.upload_method.swdMethod.upload.tool=stm32CubeProg
952+
953+
3dprinter.menu.upload_method.serialMethod=STM32CubeProgrammer (Serial)
954+
3dprinter.menu.upload_method.serialMethod.upload.protocol=1
955+
3dprinter.menu.upload_method.serialMethod.upload.options={serial.port.file} -s
956+
3dprinter.menu.upload_method.serialMethod.upload.tool=stm32CubeProg
957+
958+
3dprinter.menu.upload_method.dfuMethod=STM32CubeProgrammer (DFU)
959+
3dprinter.menu.upload_method.dfuMethod.upload.protocol=2
960+
3dprinter.menu.upload_method.dfuMethod.upload.options=
961+
3dprinter.menu.upload_method.dfuMethod.upload.tool=stm32CubeProg
860962

861963
################################################################################
862964
# Serialx activation

platform.txt

+10-24
Original file line numberDiff line numberDiff line change
@@ -148,30 +148,16 @@ tools.massStorageCopy.upload.params.verbose=
148148
tools.massStorageCopy.upload.params.quiet=
149149
tools.massStorageCopy.upload.pattern="{path}/{cmd}" {upload.verbose} -I "{build.path}/{build.project_name}.bin" -O "{node}"
150150

151-
# ST-Link upload
152-
tools.stlink_upload.cmd=stlink_upload
153-
tools.stlink_upload.cmd.windows=stlink_upload.bat
154-
tools.stlink_upload.path.windows={runtime.hardware.path}/tools/win
155-
tools.stlink_upload.path.macosx={runtime.hardware.path}/tools/macosx
156-
tools.stlink_upload.path.linux={runtime.hardware.path}/tools/linux
157-
tools.stlink_upload.path.linux64={runtime.hardware.path}/tools/linux64
158-
tools.stlink_upload.upload.params.verbose=-d
159-
tools.stlink_upload.upload.params.quiet=
160-
tools.stlink_upload.upload.pattern="{path}/{cmd}" {serial.port.file} {upload.altID} {upload.usbID} "{build.path}/{build.project_name}.bin"
161-
162-
# Serial upload for generic STM32
163-
# Note: Boot0 line needs to be high on board reset to enable it
164-
# at the end up the upload the program is automatically run, without the board being reset
165-
tools.serial_upload.cmd=serial_upload
166-
tools.serial_upload.cmd.windows=serial_upload.bat
167-
tools.serial_upload.cmd.macosx=serial_upload
168-
tools.serial_upload.path={runtime.hardware.path}/tools/win
169-
tools.serial_upload.path.macosx={runtime.hardware.path}/tools/macosx
170-
tools.serial_upload.path.linux={runtime.hardware.path}/tools/linux
171-
tools.serial_upload.path.linux64={runtime.hardware.path}/tools/linux64
172-
tools.serial_upload.upload.params.verbose=-d
173-
tools.serial_upload.upload.params.quiet=n
174-
tools.serial_upload.upload.pattern="{path}/{cmd}" {serial.port.file} {upload.altID} {upload.usbID} "{build.path}/{build.project_name}.bin"
151+
# STM32CubeProgrammer upload
152+
tools.stm32CubeProg.cmd=stm32CubeProg.sh
153+
tools.stm32CubeProg.cmd.macosx=stm32CubeProg
154+
tools.stm32CubeProg.cmd.windows=stm32CubeProg.bat
155+
tools.stm32CubeProg.path.linux={runtime.hardware.path}/tools/linux
156+
tools.stm32CubeProg.path.macosx={runtime.hardware.path}/tools/macosx
157+
tools.stm32CubeProg.path.windows={runtime.hardware.path}/tools/win
158+
tools.stm32CubeProg.upload.params.verbose=
159+
tools.stm32CubeProg.upload.params.quiet=
160+
tools.stm32CubeProg.upload.pattern="{path}/{cmd}" {upload.protocol} "{build.path}/{build.project_name}.bin" {upload.options}
175161

176162
# blackmagic upload for generic STM32
177163
tools.bmp_upload.cmd=arm-none-eabi-gdb

0 commit comments

Comments
 (0)