mirror of
https://github.com/EdgeTX/edgetx.git
synced 2025-07-20 06:45:08 +03:00
Whole EEPROM Backup
This commit is contained in:
parent
7540768c1f
commit
d1f45951fc
10 changed files with 136 additions and 58 deletions
|
@ -91,7 +91,6 @@ enum BootLoaderStates {
|
|||
ST_FLASH_CHECK,
|
||||
ST_FLASHING,
|
||||
ST_FLASH_DONE,
|
||||
ST_BACKUP_EEPROM,
|
||||
ST_RESTORE_MENU,
|
||||
ST_USB,
|
||||
ST_REBOOT,
|
||||
|
@ -112,6 +111,8 @@ uint32_t firmwareWritten = 0;
|
|||
uint32_t eepromAddress = 0;
|
||||
uint32_t eepromWritten = 0;
|
||||
|
||||
TCHAR backupFilename[60];
|
||||
|
||||
uint32_t Master_frequency;
|
||||
volatile uint8_t Tenms;
|
||||
uint8_t EE_timer;
|
||||
|
@ -278,13 +279,6 @@ void hw_delay(uint16_t time)
|
|||
}
|
||||
#endif
|
||||
|
||||
char * cpystr(char * dest, const char * source)
|
||||
{
|
||||
while ((*dest++ = *source++))
|
||||
;
|
||||
return dest - 1;
|
||||
}
|
||||
|
||||
FRESULT readBinDir(DIR *dj, FILINFO *fno)
|
||||
{
|
||||
FRESULT fr;
|
||||
|
@ -297,7 +291,7 @@ FRESULT readBinDir(DIR *dj, FILINFO *fno)
|
|||
break;
|
||||
}
|
||||
if (*fno->lfname == 0) {
|
||||
cpystr(fno->lfname, fno->fname); // Copy 8.3 name
|
||||
strAppend(fno->lfname, fno->fname); // Copy 8.3 name
|
||||
}
|
||||
int32_t len = strlen(fno->lfname) - 4;
|
||||
if (len < 0) {
|
||||
|
@ -360,7 +354,7 @@ const char *getBinaryPath()
|
|||
FRESULT openBinaryFile(uint32_t index)
|
||||
{
|
||||
TCHAR filename[60];
|
||||
cpystr(cpystr(cpystr(filename, getBinaryPath()), "/"), Filenames[index]);
|
||||
strAppend(strAppend(strAppend(filename, getBinaryPath()), "/"), Filenames[index]);
|
||||
f_open(&FlashFile, filename, FA_READ);
|
||||
if (memoryType == MEM_FLASH)
|
||||
f_lseek(&FlashFile, BOOTLOADER_SIZE);
|
||||
|
@ -443,9 +437,6 @@ void writeEepromBlock()
|
|||
int main()
|
||||
{
|
||||
uint8_t index = 0;
|
||||
#if defined(PCBTARANIS)
|
||||
uint8_t TenCount = 2;
|
||||
#endif
|
||||
uint8_t maxhsize = DISPLAY_CHAR_WIDTH;
|
||||
FRESULT fr;
|
||||
uint32_t state = ST_START;
|
||||
|
@ -517,7 +508,6 @@ int main()
|
|||
wdt_reset();
|
||||
|
||||
if (Tenms) {
|
||||
wdt_reset(); // Retrigger hardware watchdog
|
||||
|
||||
if (EE_timer) {
|
||||
if (--EE_timer == 0) {
|
||||
|
@ -544,16 +534,15 @@ int main()
|
|||
|
||||
if (state == ST_START) {
|
||||
lcd_putsLeft(2*FH, "\010Write Firmware");
|
||||
lcd_putsLeft(3*FH, "\010Backup EEPROM");
|
||||
lcd_putsLeft(4*FH, "\010Restore EEPROM");
|
||||
lcd_putsLeft(5*FH, "\010Exit");
|
||||
lcd_putsLeft(3*FH, "\010Restore EEPROM");
|
||||
lcd_putsLeft(4*FH, "\010Exit");
|
||||
lcd_invert_line(2+vpos);
|
||||
lcd_putsLeft(7*FH, INDENT "Or plug in a USB cable for mass storage");
|
||||
if (event == EVT_KEY_FIRST(BOOT_KEY_DOWN)) {
|
||||
vpos == 3 ? vpos = 0 : vpos = vpos+1;
|
||||
vpos == 2 ? vpos = 0 : vpos = vpos+1;
|
||||
}
|
||||
else if (event == EVT_KEY_FIRST(BOOT_KEY_UP)) {
|
||||
vpos == 0 ? vpos = 3 : vpos = vpos-1;
|
||||
vpos == 0 ? vpos = 2 : vpos = vpos-1;
|
||||
}
|
||||
else if (event == EVT_KEY_BREAK(BOOT_KEY_MENU)) {
|
||||
switch (vpos) {
|
||||
|
@ -561,9 +550,6 @@ int main()
|
|||
state = ST_FLASH_MENU;
|
||||
break;
|
||||
case 1:
|
||||
state = ST_BACKUP_EEPROM;
|
||||
break;
|
||||
case 2:
|
||||
state = ST_RESTORE_MENU;
|
||||
break;
|
||||
default:
|
||||
|
@ -614,16 +600,6 @@ int main()
|
|||
}
|
||||
}
|
||||
|
||||
if (state == ST_BACKUP_EEPROM) {
|
||||
// TODO Get RTC date/time, dump EEPROM to EEPROMS_PATH/EEPROM_yy-mm-dd-hh-mm-ss.BIN
|
||||
lcd_putsLeft(2*FH, INDENT "Backup successful!");
|
||||
// lcd_putsLeft(3*FH, filename);
|
||||
if (event == EVT_KEY_BREAK(BOOT_KEY_EXIT) || event == EVT_KEY_BREAK(BOOT_KEY_MENU)) {
|
||||
vpos = 0;
|
||||
state = ST_START;
|
||||
}
|
||||
}
|
||||
|
||||
if (state == ST_FILE_LIST) {
|
||||
uint32_t limit = 6;
|
||||
if (nameCount < limit) {
|
||||
|
@ -759,10 +735,7 @@ int main()
|
|||
state = ST_REBOOT;
|
||||
}
|
||||
|
||||
if (--TenCount == 0) {
|
||||
TenCount = 2;
|
||||
lcdRefresh();
|
||||
}
|
||||
lcdRefresh();
|
||||
|
||||
if (PowerUpDelay < 20) { // 200 mS
|
||||
PowerUpDelay += 1;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue