2025-06-19 4:22 PM
I am trying to write a single byte of data to the start of the EDATA area on the H533
I have the EDATA Sector 1 set to active via the option bytes.
static FLASH_EraseInitTypeDef EraseInitStruct;
uint32_t flash_sector_error;
EraseInitStruct.Banks = FLASH_BANK_1;
EraseInitStruct.TypeErase = FLASH_TYPEERASE_SECTORS;
EraseInitStruct.Sector = 24;
EraseInitStruct.Banks = FLASH_BANK_1;
EraseInitStruct.NbSectors =1;
HAL_FLASH_Unlock();
if (HAL_FLASHEx_Erase(&EraseInitStruct, &flash_sector_error) != HAL_OK){
SEND_STRING("FLASH ERASE FAIL\r\n");
}
//HARDFAULT OCCURS HERE |V|
if(HAL_FLASH_Program(FLASH_TYPEPROGRAM_WORD_EDATA, 0x08030000, (uint32_t ) 43210) != HAL_OK){
SEND_STRING("FLASH WRITE FAIL\r\n");
}
HAL_FLASH_Lock();
From my understanding in the reference manual the EDATA starts at 8030000 and is in sector 24 of bank 1.
The erase option works fine, but the HAL_FLASH_Program operation always causes a hard fault.
Suggestions? Next Steps for debugging?