From c9a8934e063c587ee1b5275d733647800fe3dc44 Mon Sep 17 00:00:00 2001 From: bsongis Date: Thu, 21 Jun 2012 22:05:55 +0000 Subject: [PATCH] Stupid SD backup bug on ARM --- src/eeprom_arm.cpp | 2 +- src/ersky9x/diskio.c | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/eeprom_arm.cpp b/src/eeprom_arm.cpp index 4a0604bf2..a70382065 100644 --- a/src/eeprom_arm.cpp +++ b/src/eeprom_arm.cpp @@ -972,7 +972,7 @@ const pm_char * eeBackupModel(uint8_t i_fileSrc) return SDCARD_ERROR(result); } - uint16_t size = File_system[i_fileSrc].size ; + uint16_t size = File_system[i_fileSrc+1].size ; read32_eeprom_data( (File_system[i_fileSrc+1].block_no << 12) + sizeof( struct t_eeprom_header), ( uint8_t *)&Eeprom_buffer.data.model_data, size) ; result = f_write(&archiveFile, (uint8_t *)&Eeprom_buffer.data.model_data, size, &written); diff --git a/src/ersky9x/diskio.c b/src/ersky9x/diskio.c index 381366035..727942435 100644 --- a/src/ersky9x/diskio.c +++ b/src/ersky9x/diskio.c @@ -623,10 +623,10 @@ uint32_t sd_read_block(uint32_t block_no, uint32_t *data) // Block size = 512, nblocks = 1 phsmci->HSMCI_BLKR = ((512) << 16) | 1; phsmci->HSMCI_MR = (phsmci->HSMCI_MR & (~(HSMCI_MR_BLKLEN_Msk|HSMCI_MR_FBYTE))) | (HSMCI_MR_PDCMODE|HSMCI_MR_WRPROOF|HSMCI_MR_RDPROOF) | (512 << 16); + phsmci->HSMCI_ARGR = block_no << 9; phsmci->HSMCI_RPR = (uint32_t)data; phsmci->HSMCI_RCR = 512 / 4; phsmci->HSMCI_PTCR = HSMCI_PTCR_RXTEN; - phsmci->HSMCI_ARGR = block_no << 9; phsmci->HSMCI_CMDR = SD_READ_SINGLE_BLOCK; uint8_t retry = 100; @@ -656,9 +656,9 @@ uint32_t sd_write_block( uint32_t block_no, uint32_t *data ) // Block size = 512, nblocks = 1 phsmci->HSMCI_BLKR = ((512) << 16) | 1; phsmci->HSMCI_MR = (phsmci->HSMCI_MR & (~(HSMCI_MR_BLKLEN_Msk|HSMCI_MR_FBYTE))) | (HSMCI_MR_PDCMODE|HSMCI_MR_WRPROOF|HSMCI_MR_RDPROOF) | (512 << 16); + phsmci->HSMCI_ARGR = block_no << 9; phsmci->HSMCI_TPR = (uint32_t)data; phsmci->HSMCI_TCR = 512 / 4; - phsmci->HSMCI_ARGR = block_no << 9; phsmci->HSMCI_CMDR = SD_WRITE_SINGLE_BLOCK; phsmci->HSMCI_PTCR = HSMCI_PTCR_TXTEN;