uint8_t i;
/* unlock the flash program/erase controller */
fmc_unlock();
while(fmc_flag_get(FMC_FLAG_BUSY));
/* clear all pending flags */
fmc_flag_clear(FMC_FLAG_END);
fmc_flag_clear(FMC_FLAG_WPERR);
fmc_flag_clear(FMC_FLAG_PGERR);
for(i = 0; i < page_num && (FMC_READY == fmc_state); i++){
fmc_state = fmc_page_erase(FMC_WRITE_START_ADDR + (FMC_PAGE_SIZE * i));
fmc_flag_clear(FMC_FLAG_END);
fmc_flag_clear(FMC_FLAG_WPERR);
fmc_flag_clear(FMC_FLAG_PGERR);
}
while(fmc_flag_get(FMC_FLAG_BUSY));
USART_Printf(USART0,"%x\r\n",REG16(FMC_WRITE_START_ADDR));
fmc_halfword_program(FMC_WRITE_START_ADDR, 0xEEEE);
while(fmc_flag_get(FMC_FLAG_BUSY));
fmc_lock();
USART_Printf(USART0,"%x\r\n",REG16(FMC_WRITE_START_ADDR));
|