华大MCU擦flash时候,无法屏蔽全局中断,导致程序跑飞,一直会进can中断
华大MCU 32F460JEUA
/* Unlock EFM. */
__set_PRIMASK(1);
__set_FAULTMASK(1);
NVIC_ClearPendingIRQ(Int000_IRQn);
NVIC_DisableIRQ(Int000_IRQn);
CAN_IrqCmd(CanRxIrqEn, Disable);
EFM_Unlock();
for (u8Cnt=0; u8Cnt<u16PageNum; u8Cnt++)
{
u8Ret = EFM_SectorErase(start_addr + (u8Cnt * PAGE_SIZE));
if ( Ok!= u8Ret)
{
/* Lock EFM. */
EFM_Lock();
return Error;
}
}
/* Lock EFM. */
EFM_Lock();
__set_PRIMASK(0);
__set_FAULTMASK(0);
CAN_IrqCmd(CanRxIrqEn, Enable);
//NVIC_ClearPendingIRQ(Int000_IRQn); //如果不屏蔽还是会跑飞,一直进can中断
//NVIC_EnableIRQ(Int000_IRQn);
return Ok;
|