add mass erase menu

This commit is contained in:
King Kévin 2024-04-17 06:22:34 +02:00
parent 880916166b
commit d17bc7b3a4
1 changed files with 19 additions and 0 deletions

View File

@ -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