|
@@ -147,13 +147,14 @@ static void _fmc_read_data(uint32_t addr, uint8_t *data, int len){
|
|
|
data[i] = REG8(addr + i);
|
|
data[i] = REG8(addr + i);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
|
|
+extern void wdog_reload(void);
|
|
|
static void _fmc_erase_addr(uint32_t addr, int len){
|
|
static void _fmc_erase_addr(uint32_t addr, int len){
|
|
|
fmc_unlock();
|
|
fmc_unlock();
|
|
|
uint32_t pages = len/one_page_size + (((len % one_page_size) > 0)?1:0);
|
|
uint32_t pages = len/one_page_size + (((len % one_page_size) > 0)?1:0);
|
|
|
for (int i = 0; i < pages; i++){
|
|
for (int i = 0; i < pages; i++){
|
|
|
fmc_flag_clear(FMC_FLAG_PGERR | FMC_FLAG_WPERR | FMC_FLAG_END);
|
|
fmc_flag_clear(FMC_FLAG_PGERR | FMC_FLAG_WPERR | FMC_FLAG_END);
|
|
|
fmc_page_erase(addr + i * one_page_size);
|
|
fmc_page_erase(addr + i * one_page_size);
|
|
|
|
|
+ wdog_reload();
|
|
|
}
|
|
}
|
|
|
fmc_lock();
|
|
fmc_lock();
|
|
|
}
|
|
}
|