From e8e2f0e1752b09b94846358a1662ec4cdea373e7 Mon Sep 17 00:00:00 2001 From: jgillick Date: Tue, 22 Oct 2019 08:24:16 -0700 Subject: [PATCH 1/4] Add dfu-util as a supported upload option. --- boards.txt | 12 +++++++++--- platform.txt | 14 ++++++++++++-- 2 files changed, 21 insertions(+), 5 deletions(-) diff --git a/boards.txt b/boards.txt index 480f4ad54b..1fe038618b 100644 --- a/boards.txt +++ b/boards.txt @@ -837,7 +837,7 @@ GenF1.menu.upload_method.hidMethod=HID Bootloader 2.2 GenF1.menu.upload_method.hidMethod.upload.protocol=hid22 GenF1.menu.upload_method.hidMethod.upload.tool=hid_upload GenF1.menu.upload_method.hidMethod.build.flash_offset=0x800 -GenF1.menu.upload_method.hidMethod.build.bootloader_flags=-DBL_HID -DVECT_TAB_OFFSET={build.flash_offset} +GenF1.menu.upload_method.hidMethod.build.bootloader_flags=-DBL_HID -DVECT_TAB_OFFSET={build.flash_offset} GenF1.menu.upload_method.dfu2Method=Maple DFU Bootloader 2.0 GenF1.menu.upload_method.dfu2Method.upload.protocol=maple @@ -992,6 +992,12 @@ GenF4.menu.pnum.FEATHER_F405.build.product_line=STM32F405xx GenF4.menu.pnum.FEATHER_F405.build.variant=FEATHER_F405 # Upload menu +GenF4.menu.upload_method.dfuUtil=USB (dfu-util) +GenF4.menu.upload_method.dfuUtil.upload.tool=dfu_util +GenF4.menu.upload_method.dfuUtil.upload.protocol= +GenF4.menu.upload_method.dfuUtil.upload.usbID=0483:df11 +GenF4.menu.upload_method.dfuUtil.upload.address=0x08000000:leave + GenF4.menu.upload_method.swdMethod=STM32CubeProgrammer (SWD) GenF4.menu.upload_method.swdMethod.upload.protocol=0 GenF4.menu.upload_method.swdMethod.upload.options=-g @@ -1015,7 +1021,7 @@ GenF4.menu.upload_method.hidMethod=HID Bootloader 2.2 GenF4.menu.upload_method.hidMethod.upload.protocol=hid22 GenF4.menu.upload_method.hidMethod.upload.tool=hid_upload GenF4.menu.upload_method.hidMethod.build.flash_offset=0x4000 -GenF4.menu.upload_method.hidMethod.build.bootloader_flags=-DBL_HID -DVECT_TAB_OFFSET={build.flash_offset} +GenF4.menu.upload_method.hidMethod.build.bootloader_flags=-DBL_HID -DVECT_TAB_OFFSET={build.flash_offset} ############################### # Sparky Flight Controllers @@ -1265,7 +1271,7 @@ Genericflight.build.series=STM32F1xx Genericflight.build.cmsis_lib_gcc=arm_cortexM3l_math Genericflight.build.extra_flags=-D{build.product_line} {build.enable_usb} {build.xSerial} {build.bootloader_flags} -# AfroFlight Rev5 +# AfroFlight Rev5 Genericflight.menu.pnum.AFROFLIGHT_F103CB=Afro Flight Rev5 (8MHz) Genericflight.menu.pnum.AFROFLIGHT_F103CB.upload.maximum_size=131072 Genericflight.menu.pnum.AFROFLIGHT_F103CB.upload.maximum_data_size=20480 diff --git a/platform.txt b/platform.txt index 389b304bc5..17bed81c98 100644 --- a/platform.txt +++ b/platform.txt @@ -68,7 +68,7 @@ compiler.arm.cmsis.ldflags="-L{runtime.tools.CMSIS-5.5.1.path}/CMSIS/DSP/Lib/GCC # USB Flags # --------- -build.usb_flags=-DUSBCON {build.usb_speed} -DUSBD_VID={build.vid} '-DUSB_MANUFACTURER={build.usb_manufacturer}' '-DUSB_PRODUCT="{build.board}"' -DHAL_PCD_MODULE_ENABLED +build.usb_flags=-DUSBCON {build.usb_speed} -DUSBD_VID={build.vid} '-DUSB_MANUFACTURER={build.usb_manufacturer}' '-DUSB_PRODUCT="{build.board}"' -DHAL_PCD_MODULE_ENABLED # Default usb manufacturer will be replaced at compile time using # numeric vendor ID if available or by board's specific value. @@ -189,7 +189,7 @@ tools.hid_upload.path.macosx={runtime.tools.STM32Tools.path}/tools/macosx tools.hid_upload.path.linux={runtime.tools.STM32Tools.path}/tools/linux tools.hid_upload.upload.params.verbose=-d tools.hid_upload.upload.params.quiet=n -tools.hid_upload.upload.pattern="{path}/{cmd}" "{build.path}/{build.project_name}.bin" {serial.port.file} +tools.hid_upload.upload.pattern="{path}/{cmd}" "{build.path}/{build.project_name}.bin" {serial.port.file} # Upload using Maple bootloader over DFU tools.maple_upload.cmd=maple_upload @@ -200,3 +200,13 @@ tools.maple_upload.path.linux={runtime.tools.STM32Tools.path}/tools/linux tools.maple_upload.upload.params.verbose=-d tools.maple_upload.upload.params.quiet=n tools.maple_upload.upload.pattern="{path}/{cmd}" {serial.port.file} {upload.altID} {upload.usbID} "{build.path}/{build.project_name}.bin" + +# USB upload using dfu-util +tools.dfu_util.cmd=dfu-util +tools.dfu_util.cmd.windows=dfu-util.exe +tools.dfu_util.path={runtime.tools.STM32Tools.path}/tools/win/dfu-util +tools.dfu_util.path.macosx={runtime.tools.STM32Tools.path}/tools/macosx/dfu-util +tools.dfu_util.path.linux={runtime.tools.STM32Tools.path}/tools/linux/dfu-util +tools.dfu_util.upload.params.verbose=-v +tools.dfu_util.upload.params.quiet= +tools.dfu_util.upload.pattern="{path}/{cmd}" --device {upload.usbID} -a 0 --dfuse-address {upload.address} -D "{build.path}/{build.project_name}.bin" \ No newline at end of file From 2f94d6b4346b236368b2ec5b2787ceb1bb834db9 Mon Sep 17 00:00:00 2001 From: Jeremy Gillick Date: Wed, 23 Oct 2019 06:39:03 -0700 Subject: [PATCH 2/4] Update dfu-util windows path in platform.txt Co-Authored-By: Frederic Pillon --- platform.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/platform.txt b/platform.txt index 17bed81c98..e44ca59d64 100644 --- a/platform.txt +++ b/platform.txt @@ -204,9 +204,9 @@ tools.maple_upload.upload.pattern="{path}/{cmd}" {serial.port.file} {upload.altI # USB upload using dfu-util tools.dfu_util.cmd=dfu-util tools.dfu_util.cmd.windows=dfu-util.exe -tools.dfu_util.path={runtime.tools.STM32Tools.path}/tools/win/dfu-util +tools.dfu_util.path={runtime.tools.STM32Tools.path}/tools/win tools.dfu_util.path.macosx={runtime.tools.STM32Tools.path}/tools/macosx/dfu-util tools.dfu_util.path.linux={runtime.tools.STM32Tools.path}/tools/linux/dfu-util tools.dfu_util.upload.params.verbose=-v tools.dfu_util.upload.params.quiet= -tools.dfu_util.upload.pattern="{path}/{cmd}" --device {upload.usbID} -a 0 --dfuse-address {upload.address} -D "{build.path}/{build.project_name}.bin" \ No newline at end of file +tools.dfu_util.upload.pattern="{path}/{cmd}" --device {upload.usbID} -a 0 --dfuse-address {upload.address} -D "{build.path}/{build.project_name}.bin" From 395787149da19b2910cd577a45726cd57a81a02b Mon Sep 17 00:00:00 2001 From: Jeremy Gillick Date: Wed, 23 Oct 2019 06:39:16 -0700 Subject: [PATCH 3/4] Update dfu-util linux path in platform.txt Co-Authored-By: Frederic Pillon --- platform.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platform.txt b/platform.txt index e44ca59d64..17752b1ca2 100644 --- a/platform.txt +++ b/platform.txt @@ -206,7 +206,7 @@ tools.dfu_util.cmd=dfu-util tools.dfu_util.cmd.windows=dfu-util.exe tools.dfu_util.path={runtime.tools.STM32Tools.path}/tools/win tools.dfu_util.path.macosx={runtime.tools.STM32Tools.path}/tools/macosx/dfu-util -tools.dfu_util.path.linux={runtime.tools.STM32Tools.path}/tools/linux/dfu-util +tools.dfu_util.path.linux={runtime.tools.STM32Tools.path}/tools/linux tools.dfu_util.upload.params.verbose=-v tools.dfu_util.upload.params.quiet= tools.dfu_util.upload.pattern="{path}/{cmd}" --device {upload.usbID} -a 0 --dfuse-address {upload.address} -D "{build.path}/{build.project_name}.bin" From b9335cf27ca7836cdf98af4803efab787bbd57d6 Mon Sep 17 00:00:00 2001 From: jgillick Date: Tue, 19 Nov 2019 16:34:34 -0800 Subject: [PATCH 4/4] Remove ":leave" from dfu-util address config. --- boards.txt | 4 ++-- platform.txt | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/boards.txt b/boards.txt index 36370dda26..9a27dfd1cb 100644 --- a/boards.txt +++ b/boards.txt @@ -1030,7 +1030,7 @@ GenF4.menu.upload_method.dfuUtil=USB (dfu-util) GenF4.menu.upload_method.dfuUtil.upload.tool=dfu_util GenF4.menu.upload_method.dfuUtil.upload.protocol= GenF4.menu.upload_method.dfuUtil.upload.usbID=0483:df11 -GenF4.menu.upload_method.dfuUtil.upload.address=0x08000000:leave +GenF4.menu.upload_method.dfuUtil.upload.address=0x08000000 GenF4.menu.upload_method.swdMethod=STM32CubeProgrammer (SWD) GenF4.menu.upload_method.swdMethod.upload.protocol=0 @@ -1082,7 +1082,7 @@ GenL0.menu.upload_method.dfuUtil=USB (dfu-util) GenL0.menu.upload_method.dfuUtil.upload.tool=dfu_util GenL0.menu.upload_method.dfuUtil.upload.protocol= GenL0.menu.upload_method.dfuUtil.upload.usbID=0483:df11 -GenL0.menu.upload_method.dfuUtil.upload.address=0x08000000:leave +GenL0.menu.upload_method.dfuUtil.upload.address=0x08000000 GenL0.menu.upload_method.swdMethod=STM32CubeProgrammer (SWD) GenL0.menu.upload_method.swdMethod.upload.protocol=0 diff --git a/platform.txt b/platform.txt index 6d46682623..e1d8d2963d 100644 --- a/platform.txt +++ b/platform.txt @@ -213,10 +213,11 @@ tools.remoteproc_gen.upload.pattern="{busybox}" sh "{path}/{script}" generate "{ # USB upload using dfu-util tools.dfu_util.cmd=dfu-util +tools.dfu_util.cmd.linux=dfu-util.sh tools.dfu_util.cmd.windows=dfu-util.exe tools.dfu_util.path={runtime.tools.STM32Tools.path}/tools/win tools.dfu_util.path.macosx={runtime.tools.STM32Tools.path}/tools/macosx/dfu-util tools.dfu_util.path.linux={runtime.tools.STM32Tools.path}/tools/linux tools.dfu_util.upload.params.verbose=-v tools.dfu_util.upload.params.quiet= -tools.dfu_util.upload.pattern="{path}/{cmd}" --device {upload.usbID} -a 0 --dfuse-address {upload.address} -D "{build.path}/{build.project_name}.bin" +tools.dfu_util.upload.pattern="{path}/{cmd}" --device {upload.usbID} -a 0 --dfuse-address {upload.address}:leave -D "{build.path}/{build.project_name}.bin"