/* Program a 32 bit Word to FLASH. 
This performs all operations necessary to program a 32 bit word to FLASH memory. The program error flag should be checked separately for the event that memory was not properly erased. */
void flash_program_word(uint32_t address, uint32_t data)
/* Program a 32 bit Word to FLASH. 
This performs all operations necessary to program a 32 bit word to FLASH memory. The program error flag should be checked separately for the event that memory was not properly erased. */
void flash_program_word(uint32_t address, uint32_t data)
{
	flash_wait_for_last_operation();
	flash_set_program_size(FLASH_CR_PROGRAM_X32);
	FLASH_CR |= FLASH_CR_PG;
	MMIO32(address) = data;
	flash_wait_for_last_operation();
	FLASH_CR &= ~FLASH_CR_PG;
}