add mass erase menu
This commit is contained in:
parent
880916166b
commit
d17bc7b3a4
|
@ -448,6 +448,25 @@ void cdc_task(void)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
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 '\r':
|
||||||
case '\n':
|
case '\n':
|
||||||
break; // nothing to do
|
break; // nothing to do
|
||||||
|
|
Loading…
Reference in New Issue