[Horus] Ram backup write should be working now. Still needs to be tested with a restore on WDT

This commit is contained in:
Bertrand Songis
2016-03-05 16:34:23 +01:00
parent 52ebba3802
commit 04966868eb
5 changed files with 65 additions and 31 deletions
+11 -6
View File
@@ -39,19 +39,24 @@ PACK(struct RamBackup {
uint8_t data[4094];
});
RamBackup ramBackup;
#if defined(SIMU)
RamBackup _ramBackup;
RamBackup * ramBackup = &_ramBackup;
#else
RamBackup * ramBackup = (RamBackup *)BKPSRAM_BASE;
#endif
void rambackupWrite()
{
copyRadioData(&ramBackupUncompressed.radio, &g_eeGeneral);
copyModelData(&ramBackupUncompressed.model, &g_model);
ramBackup.size = compress(ramBackup.data, (const uint8_t *)&ramBackupUncompressed, sizeof(ramBackupUncompressed));
TRACE("RamBackupWrite sdsize=%d backupsize=%d rlcsize=%d", sizeof(ModelData)+sizeof(RadioData), sizeof(Backup::RamBackupUncompressed), ramBackup.size);
ramBackup->size = compress(ramBackup->data, (const uint8_t *)&ramBackupUncompressed, sizeof(ramBackupUncompressed));
TRACE("RamBackupWrite sdsize=%d backupsize=%d rlcsize=%d", sizeof(ModelData)+sizeof(RadioData), sizeof(Backup::RamBackupUncompressed), ramBackup->size);
#if 0
// TODO move this code to non regression tests
Backup::RamBackupUncompressed ramBackupRestored;
if (uncompress((uint8_t *)&ramBackupRestored, ramBackup.data, ramBackup.size) != sizeof(ramBackupUncompressed))
if (uncompress((uint8_t *)&ramBackupRestored, ramBackup->data, ramBackup->size) != sizeof(ramBackupUncompressed))
TRACE("ERROR size");
if (memcmp(&ramBackupUncompressed, &ramBackupRestored, sizeof(ramBackupUncompressed)) != 0)
TRACE("ERROR restore");
@@ -60,10 +65,10 @@ void rambackupWrite()
bool rambackupRestore()
{
if (ramBackup.size == 0)
if (ramBackup->size == 0)
return false;
if (uncompress((uint8_t *)&ramBackupUncompressed, ramBackup.data, ramBackup.size) != sizeof(ramBackupUncompressed))
if (uncompress((uint8_t *)&ramBackupUncompressed, ramBackup->data, ramBackup->size) != sizeof(ramBackupUncompressed))
return false;
copyRadioData(&g_eeGeneral, &ramBackupUncompressed.radio);