STM32G474CE flash errasing after power on
Hi,
I save my configuration structure to flash memory. It work. Data is stored in flash. But after unplug ang plug power memory page is writen by 0xFF.
int eepromSaveConfig() {
uint32_t error;
uint64_t *configPtr;
uint32_t address;
FLASH_EraseInitTypeDef erase;
HAL_FLASH_Unlock();
__HAL_FLASH_CLEAR_FLAG(FLASH_FLAG_ALL_ERRORS);
erase.Banks = FLASH_BANK_1;
erase.NbPages = 1;
erase.Page = 127;
erase.TypeErase = FLASH_TYPEERASE_PAGES;
__HAL_FLASH_CLEAR_FLAG(FLASH_FLAG_ALL_ERRORS);
if (HAL_FLASHEx_Erase(&erase, &error) != HAL_OK){
logging("Eeprom save error -1", DEBUG);
return -1;
}
__HAL_FLASH_CLEAR_FLAG(FLASH_FLAG_ALL_ERRORS);
configPtr = (uint64_t*) &controllerConfig;
address = 0x0803F800;
for (uint16_t i = 0; i < (sizeof(ControllerCfg_t) - 8); i += 8) {
if (HAL_FLASH_Program(FLASH_TYPEPROGRAM_DOUBLEWORD, address,
*configPtr))
return -2;
address += 8;
configPtr++;
}
HAL_FLASH_Lock();
logging("Eeprom save OK", DEBUG);
eepromReadConfig();
return 1;
}
int eepromReadConfig(){
uint8_t *configPtr;
configPtr = (uint8_t*) 0x0803F800;
memcpy( &controllerConfig, configPtr, sizeof(ControllerCfg_t));
return 1;
}
What could be the reason for this?
