From deee38476b867bccb48e9d2d2c1bac437e4172d7 Mon Sep 17 00:00:00 2001 From: Ben Lye Date: Tue, 23 Jan 2018 08:30:08 +0000 Subject: [PATCH] Switch to new STM32 dual bootloader Single bootloader for flash via USB and from TX --- BootLoaders/Boards/stm32/boards.txt | 4 ++-- .../stm32/bootloaders/Multi4in1/StmMulti4in1.bin | Bin 0 -> 8024 bytes .../stm32/bootloaders/Multi4in1/StmMultiBoot.bin | Bin 7788 -> 0 bytes .../stm32/bootloaders/Multi4in1/StmMultiUSB.bin | Bin 7184 -> 0 bytes 4 files changed, 2 insertions(+), 2 deletions(-) create mode 100644 BootLoaders/Boards/stm32/bootloaders/Multi4in1/StmMulti4in1.bin delete mode 100644 BootLoaders/Boards/stm32/bootloaders/Multi4in1/StmMultiBoot.bin delete mode 100644 BootLoaders/Boards/stm32/bootloaders/Multi4in1/StmMultiUSB.bin diff --git a/BootLoaders/Boards/stm32/boards.txt b/BootLoaders/Boards/stm32/boards.txt index 74ada39..6e8ebaf 100644 --- a/BootLoaders/Boards/stm32/boards.txt +++ b/BootLoaders/Boards/stm32/boards.txt @@ -42,7 +42,7 @@ multistm32f103c.menu.upload_method.TxFlashMethod.upload.tool=tx_upload multistm32f103c.menu.upload_method.TxFlashMethod.build.upload_flags=-DSERIAL_USB -DGENERIC_BOOTLOADER multistm32f103c.menu.upload_method.TxFlashMethod.build.vect=VECT_TAB_ADDR=0x8002000 multistm32f103c.menu.upload_method.TxFlashMethod.build.ldscript=ld/bootloader_20.ld -multistm32f103c.menu.upload_method.TxFlashMethod.bootloader.file=Multi4in1/StmMultiBoot.bin +multistm32f103c.menu.upload_method.TxFlashMethod.bootloader.file=Multi4in1/StmMulti4in1.bin multistm32f103c.menu.upload_method.DFUUploadMethod=Upload via USB multistm32f103c.menu.upload_method.DFUUploadMethod.build.board=MULTI_STM32_NO_BOOT=103 @@ -53,7 +53,7 @@ multistm32f103c.menu.upload_method.DFUUploadMethod.build.vect=VECT_TAB_ADDR=0x80 multistm32f103c.menu.upload_method.DFUUploadMethod.build.ldscript=ld/bootloader_20.ld multistm32f103c.menu.upload_method.DFUUploadMethod.upload.usbID=1EAF:0003 multistm32f103c.menu.upload_method.DFUUploadMethod.upload.altID=2 -multistm32f103c.menu.upload_method.DFUUploadMethod.bootloader.file=Multi4in1/StmMultiUSB.bin +multistm32f103c.menu.upload_method.DFUUploadMethod.bootloader.file=Multi4in1/StmMulti4in1.bin multistm32f103c.menu.upload_method.serialMethod=Upload via Serial (FTDI) multistm32f103c.menu.upload_method.serialMethod.upload.protocol=maple_serial diff --git a/BootLoaders/Boards/stm32/bootloaders/Multi4in1/StmMulti4in1.bin b/BootLoaders/Boards/stm32/bootloaders/Multi4in1/StmMulti4in1.bin new file mode 100644 index 0000000000000000000000000000000000000000..10ce4739633d7f5232c3c77bb1584895512ec465 GIT binary patch literal 8024 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 literal 0 HcmV?d00001 diff --git a/BootLoaders/Boards/stm32/bootloaders/Multi4in1/StmMultiBoot.bin b/BootLoaders/Boards/stm32/bootloaders/Multi4in1/StmMultiBoot.bin deleted file mode 100644 index 022e373261960c60cb096ce13a7f77a35eee15d5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7788 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