void find_prepare_sector(unsigned cclk, unsigned dst) { unsigned i; __disable_irq(); for(i = USER_START_SECTOR; i <= MAX_USER_SECTOR; i++) { if(dst < sector_end_map[i]) { if(dst == sector_start_map[i]) { prepare_sector(i, i, cclk); } prepare_sector(i , i, cclk); break; } } __enable_irq(); if(result_table[0] != CMD_SUCCESS) { serial_writestr("Error: preparing to write data\n"); } }
void erase_user_flash(void) { prepare_sector(USER_START_SECTOR,MAX_USER_SECTOR,SystemCoreClock/1000); erase_sector(USER_START_SECTOR,MAX_USER_SECTOR,SystemCoreClock/1000); if(result_table[0] != CMD_SUCCESS) { while(1); /* No way to recover. Just let OS report a write failure */ } }
void erase_user_flash(void) { prepare_sector(USER_START_SECTOR,MAX_USER_SECTOR,SystemCoreClock/1000); erase_sector(USER_START_SECTOR,MAX_USER_SECTOR,SystemCoreClock/1000); if(result_table[0] != CMD_SUCCESS) { serial_writestr("Error: erasing data\n"); } }
void find_erase_prepare_sector(unsigned cclk, unsigned dst) { unsigned i; __disable_irq(); for(i = USER_START_SECTOR; i <= MAX_USER_SECTOR; i++) { if(dst < sector_end_map[i]) { if(dst == sector_start_map[i]) { prepare_sector(i, i, cclk); erase_sector(i, i, cclk); } prepare_sector(i , i, cclk); break; } } __enable_irq(); }