/* Program a 64bits word to FLASH. 
Program a 64bit word to FLASH memory. Flash programing error must be checked and cleared if needed before starting programming. */
void flash_program_double_word(uint32_t address, uint64_t data)
/* Program a 64bits word to FLASH. 
Program a 64bit word to FLASH memory. Flash programing error must be checked and cleared if needed before starting programming. */
void flash_program_double_word(uint32_t address, uint64_t data)
{
	flash_wait_for_last_operation();
	FLASH_CR |= FLASH_CR_PG;
	MMIO32(address) = (uint32_t)data;
	MMIO32(address+4) = (uint32_t)(data >> 32);
	flash_wait_for_last_operation();
	FLASH_CR &= ~FLASH_CR_PG;
}