各位大神,帮忙看看。今天在用KL46,遇到一个问题。
Erase Flash Sector。
代码:
void FlashErase(void)
{
while(!(FTFA_FSTAT_REG(FTFA_BASE_PTR)&FTFA_FSTAT_CCIF_MASK));
FTFA_FSTAT_REG(FTFA_BASE_PTR) = 0x30;
FTFA_FCCOB0_REG(FTFA_BASE_PTR) = 0x09;
FTFA_FCCOB1_REG(FTFA_BASE_PTR) = 0x01;
FTFA_FCCOB2_REG(FTFA_BASE_PTR) = 0x00;
FTFA_FCCOB3_REG(FTFA_BASE_PTR) = 0x00;
FTFA_FSTAT_REG(FTFA_BASE_PTR) = 0x80;
while((FTFA_FSTAT_REG(FTFA_BASE_PTR)&FTFA_FSTAT_CCIF_MASK));
}
Debug运行发现芯片会复位,在最后一行while((FTFA_FSTAT_REG(FTFA_BASE_PTR)&FTFA_FSTAT_CCIF_MASK));加断点,在此处停下,在继续执行,代码可以执行。
请大家帮忙分析,IDE是IAR6.60.
|