cancel
Showing results for 
Search instead for 
Did you mean: 

Minimal Write Single Byte to Flash EDATA on H533

TG_APCD
Associate

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?

0 REPLIES 0