add mass erase menu
This commit is contained in:
parent
880916166b
commit
d17bc7b3a4
|
@ -448,6 +448,25 @@ void cdc_task(void)
|
|||
}
|
||||
}
|
||||
break;
|
||||
case 'E': // mass erase to restart STM32 bootloader
|
||||
{
|
||||
|
||||
FLASH_OBProgramInitTypeDef ob;
|
||||
HAL_FLASHEx_OBGetConfig(&ob);
|
||||
if (OB_RDP_LEVEL_2 == ob.RDPLevel) {
|
||||
str = "\r\ncan't mass erase: device locked\r\n";
|
||||
} else {
|
||||
HAL_FLASH_Unlock();
|
||||
FLASH_EraseInitTypeDef EraseInitStruct;
|
||||
EraseInitStruct.TypeErase = FLASH_TYPEERASE_MASSERASE;
|
||||
uint32_t error;
|
||||
if (HAL_FLASHEx_Erase(&EraseInitStruct, &error) != HAL_OK) {
|
||||
printf("mass earse failed\r\n");
|
||||
}
|
||||
HAL_FLASH_Lock();
|
||||
HAL_FLASH_OB_Launch(); // just to restart
|
||||
}
|
||||
}
|
||||
case '\r':
|
||||
case '\n':
|
||||
break; // nothing to do
|
||||
|
|
Loading…
Reference in New Issue