diff --git a/Inc/StorageOnFlashFlagchip.h b/Inc/StorageOnFlashFlagchip.h index a1c8d76..3d29d89 100644 --- a/Inc/StorageOnFlashFlagchip.h +++ b/Inc/StorageOnFlashFlagchip.h @@ -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( diff --git a/Src/StorageOnFlashFlagchip.c b/Src/StorageOnFlashFlagchip.c index abafd0e..d60e540 100644 --- a/Src/StorageOnFlashFlagchip.c +++ b/Src/StorageOnFlashFlagchip.c @@ -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); }