/* Program an 8 bit Byte to FLASH. 
This performs all operations necessary to program an 8 bit byte to FLASH memory. The program error flag should be checked separately for the event that memory was not properly erased. */
void flash_program_byte(uint32_t address, uint8_t data)
/* Program an 8 bit Byte to FLASH. 
This performs all operations necessary to program an 8 bit byte to FLASH memory. The program error flag should be checked separately for the event that memory was not properly erased. */
void flash_program_byte(uint32_t address, uint8_t data)
{
	flash_wait_for_last_operation();
	flash_set_program_size(FLASH_CR_PROGRAM_X8);
	FLASH_CR |= FLASH_CR_PG;
	MMIO8(address) = data;
	flash_wait_for_last_operation();
	FLASH_CR &= ~FLASH_CR_PG;
}