if (FLASH_If_Write(APPLICATION_ADDRESS, (uint32_t*) &UpdateFileBuffer[StartPos], (EndPos - StartPos) / 4) == FLASHIF_OK)
{
//Success
}
//uint32_tFLASH_If_Write(uint32_t FlashAddress, uint32_t* Data ,uint32_t DataLength){
uint32_t i = 0;
for (i = 0; (i < DataLength) && (FlashAddress <= (USER_FLASH_END_ADDRESS-4)); i++)
{
/* Device voltage range supposed to be [2.7V to 3.6V], the operation will
be done by word */if (HAL_FLASH_Program(TYPEPROGRAM_WORD, FlashAddress, *(uint32_t*)(Data+i)) == HAL_OK)
{
/* Check the written value */if (*(uint32_t*)FlashAddress != *(uint32_t*)(Data+i))
{
/* Flash content doesn't match SRAM content */return(FLASHIF_WRITINGCTRL_ERROR);
}
/* Increment FLASH destination address */
FlashAddress += 4;
}
else
{
/* Error occurred while writing data in Flash memory */return (FLASHIF_WRITING_ERROR);
}
}
return (FLASHIF_OK);
}
ㄹ) 플래쉬 Lock
HAL_FLASH_Lock();
uint8_tFlash_If_DeInit(void){
/* Lock the internal flash */HAL_FLASH_Lock();
return0;
}