diff --git a/radio/src/storage/eeprom_common.cpp b/radio/src/storage/eeprom_common.cpp index d9dc71774..8888382bb 100644 --- a/radio/src/storage/eeprom_common.cpp +++ b/radio/src/storage/eeprom_common.cpp @@ -126,3 +126,21 @@ void storageReadAll() eeLoadModel(g_eeGeneral.currModel); } + +void storageEraseAll(bool warn) +{ + TRACE("storageEraseAll()"); + + generalDefault(); + modelDefault(0); + + if (warn) { + ALERT(STR_STORAGE_WARNING, STR_BAD_RADIO_DATA, AU_BAD_RADIODATA); + } + + MESSAGE(STR_STORAGE_WARNING, STR_STORAGE_FORMAT, NULL, AU_STORAGE_FORMAT); + + storageFormat(); + storageDirty(EE_GENERAL|EE_MODEL); + storageCheck(true); +} diff --git a/radio/src/storage/sdcard_raw.cpp b/radio/src/storage/sdcard_raw.cpp index ae692b05b..da67a43bb 100644 --- a/radio/src/storage/sdcard_raw.cpp +++ b/radio/src/storage/sdcard_raw.cpp @@ -36,6 +36,13 @@ #include "../opentx.h" +void getModelPath(char * path, const char * filename) +{ + strcpy(path, STR_MODELS_PATH); + path[sizeof(MODELS_PATH)-1] = '/'; + strcpy(&path[sizeof(MODELS_PATH)], filename); +} + const char * writeFile(const char * filename, const uint8_t * data, uint16_t size) { FIL file; @@ -71,9 +78,7 @@ const char * writeFile(const char * filename, const uint8_t * data, uint16_t siz const char * writeModel() { char path[256]; - strcpy(path, STR_MODELS_PATH); - path[sizeof(MODELS_PATH)-1] = '/'; - strAppend(&path[sizeof(MODELS_PATH)], g_eeGeneral.currModelFilename, sizeof(g_eeGeneral.currModelFilename)); + getModelPath(path, g_eeGeneral.currModelFilename); return writeFile(path, (uint8_t *)&g_model, sizeof(g_model)); } @@ -116,13 +121,6 @@ const char * loadFile(const char * filename, uint8_t * data, uint16_t maxsize) return NULL; } -void getModelPath(char * path, const char * filename) -{ - strcpy(path, STR_MODELS_PATH); - path[sizeof(MODELS_PATH)-1] = '/'; - strcpy(&path[sizeof(MODELS_PATH)], filename); -} - const char * readModel(const char * filename, uint8_t * buffer, uint32_t size) { char path[256]; @@ -457,12 +455,11 @@ const char * createModel(int category) char filename[LEN_MODEL_FILENAME+1]; memset(filename, 0, sizeof(filename)); - strcpy(filename, "Model.bin"); + strcpy(filename, "model.bin"); int index = findNextFileIndex(filename, MODELS_PATH); if (index > 0) { modelDefault(index); - TRACE("filename=%s", filename); memcpy(g_eeGeneral.currModelFilename, filename, sizeof(g_eeGeneral.currModelFilename)); storageDirty(EE_GENERAL); storageDirty(EE_MODEL); @@ -473,3 +470,21 @@ const char * createModel(int category) return NULL; } + +void storageEraseAll(bool warn) +{ + TRACE("storageEraseAll()"); + + generalDefault(); + modelDefault(1); + + if (warn) { + ALERT(STR_STORAGE_WARNING, STR_BAD_RADIO_DATA, AU_BAD_RADIODATA); + } + + MESSAGE(STR_STORAGE_WARNING, STR_STORAGE_FORMAT, NULL, AU_STORAGE_FORMAT); + + storageFormat(); + storageDirty(EE_GENERAL|EE_MODEL); + storageCheck(true); +} diff --git a/radio/src/storage/storage_common.cpp b/radio/src/storage/storage_common.cpp index 834dc5ac3..c368f2eee 100644 --- a/radio/src/storage/storage_common.cpp +++ b/radio/src/storage/storage_common.cpp @@ -109,20 +109,3 @@ void postModelLoad(bool newModel) PLAY_MODEL_NAME(); } -void storageEraseAll(bool warn) -{ - TRACE("storageEraseAll()"); - - generalDefault(); - modelDefault(0); - - if (warn) { - ALERT(STR_STORAGE_WARNING, STR_BAD_RADIO_DATA, AU_BAD_RADIODATA); - } - - MESSAGE(STR_STORAGE_WARNING, STR_STORAGE_FORMAT, NULL, AU_STORAGE_FORMAT); - - storageFormat(); - storageDirty(EE_GENERAL|EE_MODEL); - storageCheck(true); -} diff --git a/radio/src/targets/Horus/diskio.cpp b/radio/src/targets/Horus/diskio.cpp index 0c5d122e8..938a94725 100644 --- a/radio/src/targets/Horus/diskio.cpp +++ b/radio/src/targets/Horus/diskio.cpp @@ -213,7 +213,7 @@ DRESULT disk_write ( } if (count == 1) { - Status = SD_WriteBlock((uint8_t *)buff, sector*BLOCK_SIZE, BLOCK_SIZE); // 4GB Compliant + Status = SD_WriteBlock((uint8_t *)buff, sector, BLOCK_SIZE); // 4GB Compliant } else { Status = SD_WriteMultiBlocks((uint8_t *)buff, sector, BLOCK_SIZE, count); // 4GB Compliant diff --git a/radio/src/targets/Horus/sdio_sd.c b/radio/src/targets/Horus/sdio_sd.c index 9691c7e1c..6a6a38df2 100644 --- a/radio/src/targets/Horus/sdio_sd.c +++ b/radio/src/targets/Horus/sdio_sd.c @@ -1624,10 +1624,11 @@ OPTIMIZE("O0") SD_Error SD_WriteBlock(uint8_t *writebuff, uint32_t WriteAddr, ui SDIO_DMACmd(ENABLE); #endif - if (CardType == SDIO_HIGH_CAPACITY_SD_CARD) - { + if (CardType == SDIO_HIGH_CAPACITY_SD_CARD) { BlockSize = 512; - WriteAddr /= 512; + } + else { + WriteAddr *= 512; } /* Set Block Size for Card */ @@ -1751,10 +1752,11 @@ OPTIMIZE("O0") SD_Error SD_WriteMultiBlocks(uint8_t *writebuff, uint32_t WriteAd SD_LowLevel_DMA_TxConfig((uint32_t *)writebuff, (NumberOfBlocks * BlockSize)); SDIO_DMACmd(ENABLE); - if (CardType == SDIO_HIGH_CAPACITY_SD_CARD) - { + if (CardType == SDIO_HIGH_CAPACITY_SD_CARD) { BlockSize = 512; - WriteAddr /= 512; + } + else { + WriteAddr *= 512; } /* Set Block Size for Card */