Обновление
This commit is contained in:
parent
d543c67e5f
commit
7fc05c077e
|
|
@ -7,10 +7,12 @@
|
|||
|
||||
#include "stddef.h"
|
||||
#include "StorageIO.h"
|
||||
#include "LoggerInterface.h"
|
||||
|
||||
typedef struct {
|
||||
uint32_t mainFlashPageAddress;
|
||||
uint32_t recoveryFlashPageAddress;
|
||||
tLoggerInterface *logger;
|
||||
} tStorageOnFlashFlagchip;
|
||||
|
||||
void vStorageOnFlashFlagchip_Init(
|
||||
|
|
|
|||
|
|
@ -4,6 +4,9 @@
|
|||
#include "InternalFlashPage.h"
|
||||
#include "StorageOnFlashFlagchip.h"
|
||||
|
||||
#define LOGGER env->logger
|
||||
#define LOG_SIGN "Storage"
|
||||
|
||||
static uint32_t xStorageOnFlashArtery_Crc(uint8_t *data, size_t len) {
|
||||
uint32_t crc = 0;
|
||||
|
||||
|
|
@ -101,9 +104,15 @@ eStorageStatus xStorageOnFlashFlagchip_Load(tStorageOnFlashFlagchip *env, void *
|
|||
uint32_t recoveryCrcCalc = xStorageOnFlashArtery_CrcFlash((uint8_t *) env->recoveryFlashPageAddress, size);
|
||||
uint32_t recoveryCrcReed = iInternalFlashPage_ReadWord(env->recoveryFlashPageAddress + dataSizeOnFlash);
|
||||
|
||||
LoggerFormatInfo(LOGGER, LOG_SIGN, "Crc recovery page (calc): 0x%08X", recoveryCrcCalc)
|
||||
LoggerFormatInfo(LOGGER, LOG_SIGN, "Crc recovery page (flash): 0x%08X", recoveryCrcReed)
|
||||
|
||||
uint32_t mainCrcCalc = xStorageOnFlashArtery_CrcFlash((uint8_t *) env->mainFlashPageAddress, size);
|
||||
uint32_t mainCrcReed = iInternalFlashPage_ReadWord(env->mainFlashPageAddress + dataSizeOnFlash);
|
||||
|
||||
LoggerFormatInfo(LOGGER, LOG_SIGN, "Crc main page (calc): 0x%08X", mainCrcCalc)
|
||||
LoggerFormatInfo(LOGGER, LOG_SIGN, "Crc main page (flash): 0x%08X", mainCrcReed)
|
||||
|
||||
bool recoveryCrcOk = (recoveryCrcCalc == recoveryCrcReed);
|
||||
bool mainCrcOk = (mainCrcReed == mainCrcCalc);
|
||||
|
||||
|
|
@ -112,14 +121,17 @@ eStorageStatus xStorageOnFlashFlagchip_Load(tStorageOnFlashFlagchip *env, void *
|
|||
sInternalFlashPage_Read(env->mainFlashPageAddress, 0x0, data, size);
|
||||
return STORAGE_OK;
|
||||
} else {
|
||||
LoggerInfoStatic(LOGGER, LOG_SIGN, "Data recovery main page ")
|
||||
sInternalFlashPage_Read(env->recoveryFlashPageAddress, 0x0, data, size);
|
||||
return xStorageOnFlashFlagchip_DumpOn(env, recoveryCrcCalc, env->mainFlashPageAddress, data, size);
|
||||
}
|
||||
} else if (recoveryCrcOk || mainCrcOk) {
|
||||
if (recoveryCrcOk) {
|
||||
LoggerInfoStatic(LOGGER, LOG_SIGN, "Data recovery main page")
|
||||
sInternalFlashPage_Read(env->recoveryFlashPageAddress, 0x0, data, size);
|
||||
return xStorageOnFlashFlagchip_DumpOn(env, recoveryCrcCalc, env->mainFlashPageAddress, data, size);
|
||||
} else {
|
||||
LoggerInfoStatic(LOGGER, LOG_SIGN, "Data recovery recovery page")
|
||||
sInternalFlashPage_Read(env->mainFlashPageAddress, 0x0, data, size);
|
||||
return xStorageOnFlashFlagchip_DumpOn(env, mainCrcCalc, env->recoveryFlashPageAddress, data, size);
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue