我正在使用 FreeRtos,并且在其中一项任务中我使用以下代码删除闪存的一个扇区
HAL_FLASH_Unlock();
// Fill EraseInit structure
static FLASH_EraseInitTypeDef EraseInitStruct;
EraseInitStruct.TypeErase = FLASH_TYPEERASE_SECTORS;
EraseInitStruct.VoltageRange = FLASH_VOLTAGE_RANGE_3;
EraseInitStruct.Sector = sector;
EraseInitStruct.NbSectors = numOfSectorsToErase;
HAL_FLASHEx_Erase_IT(&EraseInitStruct);
HAL_FLASH_Lock();
我认为这是一个非阻塞调用来删除扇区,但是当调用它时,所有其他线程似乎都被抢占 100 毫秒(如示波器上所示),直到删除完成。我一定做错了什么,因为我使用的是中断版本的删除。它不应该像这样挂起所有东西,对吗?
(我确信我正在删除程序代码不驻留的扇区。扇区6)
最佳答案
关于stm32 - 删除STM32 Flash Sector挂起的程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64578720/