From f4db2e9bf2f3138216a7a81a7d55234f664e10a9 Mon Sep 17 00:00:00 2001 From: Ben Lye Date: Sun, 17 Dec 2017 21:33:29 +0000 Subject: [PATCH] Add version to board Add a version to each board definition, and a board version check in Validate.h. --- BootLoaders/Boards/avr/boards.txt | 4 ++-- BootLoaders/Boards/orangerx/boards.txt | 2 +- BootLoaders/Boards/stm32/boards.txt | 6 +++--- Multiprotocol/Validate.h | 17 +++++++++++++++++ 4 files changed, 23 insertions(+), 6 deletions(-) diff --git a/BootLoaders/Boards/avr/boards.txt b/BootLoaders/Boards/avr/boards.txt index 928fdbd..eb4f97a 100644 --- a/BootLoaders/Boards/avr/boards.txt +++ b/BootLoaders/Boards/avr/boards.txt @@ -29,14 +29,14 @@ multiatmega328p.bootloader.unlock_bits=0x3F multiatmega328p.bootloader.lock_bits=0x0F multiatmega328p.menu.bootloader.none=No bootloader -multiatmega328p.menu.bootloader.none.build.board=MULTI_NO_BOOT +multiatmega328p.menu.bootloader.none.build.board=MULTI_NO_BOOT=103 multiatmega328p.menu.bootloader.none.upload.maximum_size=32768 multiatmega328p.menu.bootloader.none.bootloader.file=Multi4in1/AtmegaMultiEmpty.hex multiatmega328p.menu.bootloader.none.bootloader.high_fuses=0xD7 multiatmega328p.menu.bootloader.optiboot=Flash from TX -multiatmega328p.menu.bootloader.optiboot.build.board=MULTI_FLASH_FROM_TX +multiatmega328p.menu.bootloader.optiboot.build.board=MULTI_FLASH_FROM_TX=103 multiatmega328p.menu.bootloader.optiboot.upload.maximum_size=32256 multiatmega328p.menu.bootloader.optiboot.bootloader.file=Multi4in1/AtmegaMultiBoot.hex diff --git a/BootLoaders/Boards/orangerx/boards.txt b/BootLoaders/Boards/orangerx/boards.txt index 0980eb8..6857042 100644 --- a/BootLoaders/Boards/orangerx/boards.txt +++ b/BootLoaders/Boards/orangerx/boards.txt @@ -7,7 +7,7 @@ ## Multi 4-in-1 (OrangeRX) ## -------------------------------------------------- multixmega32d4.name=Multi 4-in-1 (OrangeRX) -multixmega32d4.build.board=MULTI_ORANGERX +multixmega32d4.build.board=MULTI_ORANGERX=103 multixmega32d4.upload.protocol=arduino multixmega32d4.upload.maximum_size=32768 multixmega32d4.upload.speed=115200 diff --git a/BootLoaders/Boards/stm32/boards.txt b/BootLoaders/Boards/stm32/boards.txt index 0163101..34e7902 100644 --- a/BootLoaders/Boards/stm32/boards.txt +++ b/BootLoaders/Boards/stm32/boards.txt @@ -16,7 +16,7 @@ multistm32f103c.pid.0=0x0004 multistm32f103c.build.variant=generic_stm32f103c multistm32f103c.build.vect=VECT_TAB_ADDR=0x8000000 multistm32f103c.build.core=maple -multistm32f103c.build.board=MULTI_STM32_FLASH_FROM_TX +multistm32f103c.build.board=MULTI_STM32_FLASH_FROM_TX=103 multistm32f103c.upload.use_1200bps_touch=false multistm32f103c.upload.file_type=bin multistm32f103c.upload.auto_reset=true @@ -41,7 +41,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.build.board=MULTI_STM32_FLASH_FROM_TX +multistm32f103c.menu.upload_method.TxFlashMethod.build.board=MULTI_STM32_FLASH_FROM_TX=103 multistm32f103c.menu.upload_method.TxFlashMethod.bootloader.file=Multi4in1/StmMultiBoot.bin multistm32f103c.menu.upload_method.DFUUploadMethod=Upload via USB @@ -50,7 +50,7 @@ multistm32f103c.menu.upload_method.DFUUploadMethod.upload.tool=maple_upload multistm32f103c.menu.upload_method.DFUUploadMethod.build.upload_flags=-DSERIAL_USB -DGENERIC_BOOTLOADER multistm32f103c.menu.upload_method.DFUUploadMethod.build.vect=VECT_TAB_ADDR=0x8002000 multistm32f103c.menu.upload_method.DFUUploadMethod.build.ldscript=ld/bootloader_20.ld -multistm32f103c.menu.upload_method.DFUUploadMethod.build.board=MULTI_STM32_NO_BOOT +multistm32f103c.menu.upload_method.DFUUploadMethod.build.board=MULTI_STM32_NO_BOOT=103 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 diff --git a/Multiprotocol/Validate.h b/Multiprotocol/Validate.h index 793c829..39edc0e 100644 --- a/Multiprotocol/Validate.h +++ b/Multiprotocol/Validate.h @@ -18,6 +18,23 @@ #endif #endif +// Check for minimum version of multi-module boards +#define MIN_AVR_BOARD 103 +#define MIN_ORX_BOARD 103 +#define MIN_STM32_BOARD 103 +//AVR +#if (defined(ARDUINO_MULTI_NO_BOOT) && ARDUINO_MULTI_NO_BOOT < MIN_AVR_BOARD) || (defined(ARDUINO_MULTI_FLASH_FROM_TX) && ARDUINO_MULTI_FLASH_FROM_TX < MIN_AVR_BOARD) + #error You need to update your Multi 4-in-1 board definition. Open Boards Manager and update to the latest version of the Multi 4-in-1 AVR Board. +#endif +//OrangeRX +#if (defined(ARDUINO_MULTI_ORANGERX) && ARDUINO_MULTI_ORANGERX < MIN_ORX_BOARD) + #error You need to update your Multi 4-in-1 board definition. Open Boards Manager and update to the latest version of the Multi 4-in-1 OrangeRX Board. +#endif +//STM32 +#if (defined(ARDUINO_MULTI_STM32_NO_BOOT) && ARDUINO_MULTI_STM32_NO_BOOT < MIN_STM32_BOARD) || (defined(ARDUINO_MULTI_STM32_FLASH_FROM_TX) && ARDUINO_MULTI_STM32_FLASH_FROM_TX < MIN_STM32_BOARD) + #error You need to update your Multi 4-in-1 board definition. Open Boards Manager and update to the latest version of the Multi 4-in-1 STM32 Board. +#endif + // Error if CHECK_FOR_BOOTLOADER is not enabled but a FLASH_FROM_TX board is selected #if (defined(ARDUINO_MULTI_FLASH_FROM_TX) || defined(ARDUINO_MULTI_STM32_FLASH_FROM_TX)) &! defined(CHECK_FOR_BOOTLOADER) #if defined(STM32_BOARD)