From 5126de7ed8783daf54270eeef6cd4df544ee5f15 Mon Sep 17 00:00:00 2001 From: "bsongis@gmail.com" Date: Mon, 1 Apr 2013 20:49:48 +0000 Subject: [PATCH] [Taranis] EEPROM disconnected when Massstorage is active --- src/eeprom_rlc.cpp | 4 ++++ src/gruvin9x/board_gruvin9x.h | 2 ++ src/mega2560/board_mega2560.h | 4 +++- src/opentx.cpp | 11 +++++++++-- src/sky9x/board_sky9x.h | 1 + src/stock/board_stock.h | 2 ++ src/taranis/board_taranis.h | 8 +++++--- src/taranis/usbd_usr.cpp | 2 -- 8 files changed, 26 insertions(+), 8 deletions(-) diff --git a/src/eeprom_rlc.cpp b/src/eeprom_rlc.cpp index 6ffebf6e3..3f3163deb 100644 --- a/src/eeprom_rlc.cpp +++ b/src/eeprom_rlc.cpp @@ -961,6 +961,10 @@ void eeReadAll() void eeCheck(bool immediately) { + if (EEPROM_MASSSTORAGE()) { + return; + } + if (immediately) { eeFlush(); } diff --git a/src/gruvin9x/board_gruvin9x.h b/src/gruvin9x/board_gruvin9x.h index a0e1de280..ecd1a384e 100644 --- a/src/gruvin9x/board_gruvin9x.h +++ b/src/gruvin9x/board_gruvin9x.h @@ -180,4 +180,6 @@ void sdPoll10ms(); uint8_t pwrCheck(); #define UNEXPECTED_SHUTDOWN() ((mcusr & (1 << WDRF)) || g_eeGeneral.unexpectedShutdown) +#define EEPROM_MASSSTORAGE() (0) + #endif diff --git a/src/mega2560/board_mega2560.h b/src/mega2560/board_mega2560.h index a171dcfc0..05377aa48 100644 --- a/src/mega2560/board_mega2560.h +++ b/src/mega2560/board_mega2560.h @@ -47,4 +47,6 @@ void sdPoll10ms(); uint8_t pwrCheck(); #define UNEXPECTED_SHUTDOWN() ((mcusr & (1 << WDRF)) || g_eeGeneral.unexpectedShutdown) -#endif \ No newline at end of file +#define EEPROM_MASSSTORAGE() (0) + +#endif diff --git a/src/opentx.cpp b/src/opentx.cpp index a9b983d55..253c0a4f6 100644 --- a/src/opentx.cpp +++ b/src/opentx.cpp @@ -3453,8 +3453,15 @@ void perMain() lcd_clear(); const char *warn = s_warning; - g_menuStack[g_menuStackPtr](warn ? 0 : evt); - if (warn) displayWarning(evt); + + if (EEPROM_MASSSTORAGE()) { + menuMainView(0); + } + else { + g_menuStack[g_menuStackPtr](warn ? 0 : evt); + if (warn) displayWarning(evt); + } + drawStatusLine(); lcdRefresh(); diff --git a/src/sky9x/board_sky9x.h b/src/sky9x/board_sky9x.h index 1ff0f603b..cee591c22 100644 --- a/src/sky9x/board_sky9x.h +++ b/src/sky9x/board_sky9x.h @@ -235,6 +235,7 @@ uint32_t pwrCheck(); // EEPROM driver void eepromInit(); +#define EEPROM_MASSSTORAGE() (0) // Rotary Encoder driver void rotencInit(); diff --git a/src/stock/board_stock.h b/src/stock/board_stock.h index caaf76f93..2bc071652 100644 --- a/src/stock/board_stock.h +++ b/src/stock/board_stock.h @@ -215,4 +215,6 @@ extern uint8_t RotEncoder ; void rotencPoll(); #endif +#define EEPROM_MASSSTORAGE() (0) + #endif diff --git a/src/taranis/board_taranis.h b/src/taranis/board_taranis.h index 05659db3b..cb3bb865a 100644 --- a/src/taranis/board_taranis.h +++ b/src/taranis/board_taranis.h @@ -166,6 +166,10 @@ void pwrOff(); #define __BACKLIGHT_OFF GPIO_ResetBits(GPIOB, GPIO_Pin_BL) #define IS_BACKLIGHT_ON() GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_BL) +// USB driver +void usbInit(void); +extern uint8_t usb_connected; + // EEPROM driver #if !defined(SIMU) #define eepromInit() I2C_EE_Init() @@ -175,8 +179,6 @@ void pwrOff(); #define eepromInit() void eeWriteBlockCmp(const void *pointer_ram, uint16_t pointer_eeprom, size_t size); #endif - -// USB driver -void usbInit(void); +#define EEPROM_MASSSTORAGE() (usb_connected) #endif diff --git a/src/taranis/usbd_usr.cpp b/src/taranis/usbd_usr.cpp index d8880620b..2a7657aa9 100644 --- a/src/taranis/usbd_usr.cpp +++ b/src/taranis/usbd_usr.cpp @@ -28,8 +28,6 @@ /* Includes ------------------------------------------------------------------*/ #include "../opentx.h" -extern uint8_t usb_connected; - extern "C" { #include "usbd_usr.h"