Merge remote-tracking branch 'origin/next' into Horus
# Conflicts: # companion/src/CMakeLists.txt # companion/src/firmwares/opentx/opentxinterface.cpp # companion/src/firmwares/opentx/simulator/CMakeLists.txt # companion/src/firmwares/opentx/stamp-opentx.h.in # radio/src/Makefile # radio/src/cli.cpp # radio/src/gui/Taranis/helpers.cpp # radio/src/gui/Taranis/lcd.cpp # radio/src/gui/Taranis/menu_model_setup.cpp # radio/src/gui/Taranis/view_main.cpp # radio/src/lua_api.cpp # radio/src/main_avr.cpp # radio/src/myeeprom.h # radio/src/opentx.cpp # radio/src/pulses/pxx_arm.cpp # radio/src/storage/eeprom_conversions.cpp # radio/src/targets/Horus/adc_driver.cpp # radio/src/targets/Horus/board_horus.cpp # radio/src/targets/Horus/board_horus.h # radio/src/targets/Horus/diskio.cpp # radio/src/targets/Horus/hal.h # radio/src/targets/Horus/haptic_driver.cpp # radio/src/targets/Horus/i2c_driver.cpp # radio/src/targets/Horus/keys_driver.cpp # radio/src/targets/Horus/lcd_driver.cpp # radio/src/targets/Horus/led_driver.cpp # radio/src/targets/Horus/pulses_driver.cpp # radio/src/targets/Horus/pwr_driver.c # radio/src/targets/Horus/sdio_sd.c # radio/src/targets/Horus/sdio_sd.h # radio/src/targets/Horus/serial2_driver.cpp # radio/src/targets/Horus/telemetry_driver.cpp # radio/src/targets/Horus/usb_conf.h # radio/src/targets/Horus/usbd_desc.c # radio/src/targets/Horus/usbd_storage_msd.cpp
This commit is contained in:
@@ -611,22 +611,25 @@ const pm_char * eeRestoreModel(uint8_t i_fileDst, char *model_name)
|
||||
eepromEraseBlock(address+EEPROM_BLOCK_SIZE);
|
||||
|
||||
// write header
|
||||
EepromFileHeader header = { uint16_t(i_fileDst+1), size };
|
||||
eepromWrite(address, (uint8_t *)&header, sizeof(header));
|
||||
address += sizeof(header);
|
||||
EepromFileHeader * header = (EepromFileHeader *)eepromWriteBuffer;
|
||||
header->fileIndex = i_fileDst+1;
|
||||
header->size = size;
|
||||
|
||||
int offset = 4;
|
||||
|
||||
// write model
|
||||
while (size > 0) {
|
||||
uint16_t blockSize = min<uint16_t>(size, EEPROM_BUFFER_SIZE);
|
||||
result = f_read(&restoreFile, eepromWriteBuffer, blockSize, &read);
|
||||
do {
|
||||
uint16_t blockSize = min<uint16_t>(size, EEPROM_BUFFER_SIZE-offset);
|
||||
result = f_read(&restoreFile, eepromWriteBuffer+offset, blockSize, &read);
|
||||
if (result != FR_OK || read != blockSize) {
|
||||
f_close(&g_oLogFile);
|
||||
return SDCARD_ERROR(result);
|
||||
}
|
||||
eepromWrite(address, eepromWriteBuffer, blockSize);
|
||||
eepromWrite(address, eepromWriteBuffer, blockSize+offset);
|
||||
size -= blockSize;
|
||||
address += blockSize;
|
||||
}
|
||||
address += EEPROM_BUFFER_SIZE;
|
||||
offset = 0;
|
||||
} while (size > 0);
|
||||
|
||||
// write FAT
|
||||
eepromHeader.files[i_fileDst+1].exists = 1;
|
||||
|
||||
Reference in New Issue
Block a user