diff --git a/radio/src/.gitignore b/radio/src/.gitignore index 902bdbbac..5bf38bf1f 100644 --- a/radio/src/.gitignore +++ b/radio/src/.gitignore @@ -19,3 +19,4 @@ /BMP /traces /MODELS +/FIRMWARES diff --git a/radio/src/Makefile b/radio/src/Makefile index e21c42da3..056f04db0 100644 --- a/radio/src/Makefile +++ b/radio/src/Makefile @@ -635,7 +635,7 @@ ifeq ($(PCB), TARANIS) EXTRAINCDIRS += targets/taranis/STM32_USB-Host-Device_Lib_V2.1.0/Libraries/STM32_USB_OTG_Driver/inc targets/taranis/STM32_USB-Host-Device_Lib_V2.1.0/Libraries/STM32_USB_Device_Library/Core/inc EXTRAINCDIRS += targets/taranis/STM32_USB-Host-Device_Lib_V2.1.0/Libraries/STM32_USB_Device_Library/Class/msc/inc targets/taranis/STM32_USB-Host-Device_Lib_V2.1.0/Libraries/STM32_USB_Device_Library/Class/hid/inc BOARDSRC = targets/taranis/board_taranis.cpp - EXTRABOARDSRC += targets/taranis/lcd_driver.cpp targets/taranis/aspi.c targets/taranis/i2c.c targets/taranis/delays.c + EXTRABOARDSRC += targets/taranis/lcd_driver.cpp targets/taranis/flash_driver.cpp targets/taranis/aspi.c targets/taranis/i2c.c targets/taranis/delays.c SRC += CoOS/kernel/core.c CoOS/kernel/hook.c CoOS/kernel/task.c CoOS/kernel/event.c CoOS/kernel/time.c CoOS/kernel/timer.c CoOS/kernel/flag.c CoOS/kernel/mutex.c CoOS/kernel/serviceReq.c CoOS/portable/GCC/port.c CoOS/portable/arch.c SRC += targets/taranis/pwr_driver.c targets/taranis/usb_driver.c EEPROMSRC = eeprom_common.cpp eeprom_rlc.cpp eeprom_conversions.cpp diff --git a/radio/src/bootloader/boot.cpp b/radio/src/bootloader/boot.cpp index ed6c92978..459a07a0a 100644 --- a/radio/src/bootloader/boot.cpp +++ b/radio/src/bootloader/boot.cpp @@ -63,7 +63,7 @@ #include "../translations/en.h" #if defined(PCBTARANIS) - #define BOOTLOADER_TITLE "Taranis Boot Loader - v1.0" + #define BOOTLOADER_TITLE " Taranis Boot Loader - v1.0" #define BOOT_KEY_UP KEY_PLUS #define BOOT_KEY_DOWN KEY_MINUS #define BOOT_KEY_LEFT KEY_MENU diff --git a/radio/src/gui/menu_general.cpp b/radio/src/gui/menu_general.cpp index d9fbca2f5..2dc7c7c79 100644 --- a/radio/src/gui/menu_general.cpp +++ b/radio/src/gui/menu_general.cpp @@ -685,6 +685,31 @@ inline bool isFilenameLower(bool isfile, const char * fn, const char * line) return (!isfile && line[SD_SCREEN_FILE_LENGTH+1]) || (isfile==(bool)line[SD_SCREEN_FILE_LENGTH+1] && strcasecmp(fn, line) < 0); } +#if defined(PCBTARANIS) +void flashBootloader(const char * filename) +{ + FIL file; + f_open(&file, filename, FA_READ); + uint8_t buffer[FLASH_PAGESIZE]; + UINT count; + lcd_rect( 3, 6*FH+4, 204, 7); + watchdogSetTimeout(1000/*10s*/); + unlockFlash(); + for (int i=0; i= 212 const pm_char STR_MODELNAME[] PROGMEM = TR_MODELNAME; diff --git a/radio/src/translations.h b/radio/src/translations.h index e6bf96928..e473dca7b 100644 --- a/radio/src/translations.h +++ b/radio/src/translations.h @@ -616,6 +616,7 @@ extern const pm_char STR_DATE[]; extern const pm_char STR_CHANNELS_MONITOR[]; extern const pm_char STR_PATH_TOO_LONG[]; extern const pm_char STR_VIEW_TEXT[]; +extern const pm_char STR_FLASH_BOOTLOADER[]; #if defined(VOICE) && defined(CPUARM) struct LanguagePack { diff --git a/radio/src/translations/cz.h.txt b/radio/src/translations/cz.h.txt index ef914e1ee..b2e7cf761 100644 --- a/radio/src/translations/cz.h.txt +++ b/radio/src/translations/cz.h.txt @@ -712,6 +712,7 @@ #define TR_CHANNELS_MONITOR "MONITOR KANÁLU" #define TR_PATH_TOO_LONG "Cesta je moc dlouhá" #define TR_VIEW_TEXT "Zobrazit text" +#define TR_FLASH_BOOTLOADER "Flash BootLoader" #define TR_INTERNALRF "Vnitřní RF modul" #define TR_EXTERNALRF "Externí RF modul" #define TR_FAILSAFE "Mód Failsafe" diff --git a/radio/src/translations/de.h.txt b/radio/src/translations/de.h.txt index ef42609ab..6ab13c68d 100644 --- a/radio/src/translations/de.h.txt +++ b/radio/src/translations/de.h.txt @@ -712,6 +712,7 @@ #define TR_CHANNELS_MONITOR "Kanal Monitor" #define TR_PATH_TOO_LONG "Path too long" #define TR_VIEW_TEXT "View text" +#define TR_FLASH_BOOTLOADER "Flash BootLoader" #define TR_INTERNALRF "----Internes HF Modul----------" #define TR_EXTERNALRF "----Externes HF Modul----------" #define TR_FAILSAFE "Failsafe Mode" diff --git a/radio/src/translations/en.h.txt b/radio/src/translations/en.h.txt index 8b20c7f71..67458bbc0 100644 --- a/radio/src/translations/en.h.txt +++ b/radio/src/translations/en.h.txt @@ -716,6 +716,7 @@ #define TR_CHANNELS_MONITOR "CHANNEL MONITOR" #define TR_PATH_TOO_LONG "Path too long" #define TR_VIEW_TEXT "View text" +#define TR_FLASH_BOOTLOADER "Flash BootLoader" #define TR_INTERNALRF "Internal RF" #define TR_EXTERNALRF "External RF" #define TR_FAILSAFE INDENT "Failsafe mode" diff --git a/radio/src/translations/es.h.txt b/radio/src/translations/es.h.txt index 3d08dd8ce..2de385b59 100644 --- a/radio/src/translations/es.h.txt +++ b/radio/src/translations/es.h.txt @@ -712,6 +712,7 @@ #define TR_CHANNELS_MONITOR "MONITOR CANALES" #define TR_PATH_TOO_LONG "Path too long" #define TR_VIEW_TEXT "View text" +#define TR_FLASH_BOOTLOADER "Flash BootLoader" #define TR_INTERNALRF "Interna RF" #define TR_EXTERNALRF "Externa RF" #define TR_FAILSAFE INDENT"Modo sgdad." diff --git a/radio/src/translations/fi.h.txt b/radio/src/translations/fi.h.txt index f6123eb5e..40d2a09e0 100644 --- a/radio/src/translations/fi.h.txt +++ b/radio/src/translations/fi.h.txt @@ -712,6 +712,7 @@ #define TR_CHANNELS_MONITOR "CHANNEL MONITOR" #define TR_PATH_TOO_LONG "Path too long" #define TR_VIEW_TEXT "View text" +#define TR_FLASH_BOOTLOADER "Flash BootLoader" #define TR_INTERNALRF "Internal RF" #define TR_EXTERNALRF "External RF" #define TR_FAILSAFE INDENT "Failsafe mode" diff --git a/radio/src/translations/fr.h.txt b/radio/src/translations/fr.h.txt index 004806271..553396fe9 100644 --- a/radio/src/translations/fr.h.txt +++ b/radio/src/translations/fr.h.txt @@ -712,6 +712,7 @@ #define TR_CHANNELS_MONITOR "MONITEUR CANAUX" #define TR_PATH_TOO_LONG "Chemin trop long" #define TR_VIEW_TEXT "Voir texte" +#define TR_FLASH_BOOTLOADER "Flash BootLoader" #define TR_INTERNALRF "HF interne" #define TR_EXTERNALRF "HF externe" #define TR_FAILSAFE INDENT "Type failsafe" diff --git a/radio/src/translations/it.h.txt b/radio/src/translations/it.h.txt index 82368e870..210d4e6f0 100644 --- a/radio/src/translations/it.h.txt +++ b/radio/src/translations/it.h.txt @@ -712,6 +712,7 @@ #define TR_CHANNELS_MONITOR "CHANNELS MONITOR" #define TR_PATH_TOO_LONG "Path too long" #define TR_VIEW_TEXT "View text" +#define TR_FLASH_BOOTLOADER "Flash BootLoader" #define TR_INTERNALRF "Modulo Interno" #define TR_EXTERNALRF "Modulo esterno" #define TR_FAILSAFE "Modo failsafe" diff --git a/radio/src/translations/pl.h.txt b/radio/src/translations/pl.h.txt index 5bd086ba4..ac3e1a867 100644 --- a/radio/src/translations/pl.h.txt +++ b/radio/src/translations/pl.h.txt @@ -712,6 +712,7 @@ #define TR_CHANNELS_MONITOR "MONITOR KANAŁÓW" #define TR_PATH_TOO_LONG "Ścieżka za długa" #define TR_VIEW_TEXT "Pokaż tekst" +#define TR_FLASH_BOOTLOADER "Flash BootLoader" #define TR_INTERNALRF "Wewnętrzny moduł RF" #define TR_EXTERNALRF "Zewnętrzny moduł RF" #define TR_FAILSAFE "Tryb Failsafe" diff --git a/radio/src/translations/pt.h.txt b/radio/src/translations/pt.h.txt index 9ed05ad43..463de312e 100644 --- a/radio/src/translations/pt.h.txt +++ b/radio/src/translations/pt.h.txt @@ -712,6 +712,7 @@ #define TR_CHANNELS_MONITOR "CHANNELS MONITOR" #define TR_PATH_TOO_LONG "Path too long" #define TR_VIEW_TEXT "View text" +#define TR_FLASH_BOOTLOADER "Flash BootLoader" #define TR_INTERNALRF "Internal RF" #define TR_EXTERNALRF "External RF" #define TR_FAILSAFE "Failsafe mode" diff --git a/radio/src/translations/se.h.txt b/radio/src/translations/se.h.txt index aea29735f..c80153e12 100644 --- a/radio/src/translations/se.h.txt +++ b/radio/src/translations/se.h.txt @@ -712,6 +712,7 @@ #define TR_CHANNELS_MONITOR "Kanalöversikt" #define TR_PATH_TOO_LONG "För lång sökväg" #define TR_VIEW_TEXT "Visa Text" +#define TR_FLASH_BOOTLOADER "Flash BootLoader" #define TR_INTERNALRF "Intern Radio" #define TR_EXTERNALRF "Extern Radiomodul" #define TR_FAILSAFE "Failsafeläge"