TI中文支持网
TI专业的中文技术问题搜集分享网站

MSP430I2040: FLASH写入卡死问题

Part Number:MSP430I2040

void Flash_Write(void)
{int16  *data_ptr;uint16 *Flash_ptr;uint8 i;__disable_interrupt();Flash_ptr = (uint16 *)Flash_default;data_ptr = &product_info.vref_ad_zero;if(FCTL3 & LOCK)FCTL3 = FWKEY | LOCK;//信息段解锁FCTL3 = FWKEY;// Clear Lock bitFCTL1 = FWKEY + ERASE;// Set Erase bit*Flash_ptr = 0;// Dummy write to erase Flash segmentFCTL3 = FWKEY;FCTL1 = FWKEY + WRT;for (i = 0; i < CHECK_P_NUM; i++){while((FCTL3 & BUSY) == BUSY);//Wait Busy*Flash_ptr++ = *data_ptr++;// Write value to flash}FCTL1 = FWKEY;// Clear WRT bitFCTL3 = FWKEY | LOCK;// Set LOCKSEG bit__enable_interrupt(); 
}

这是我写的flash部分的代码,当运行到19行这里的时候,改位置的数据被擦除了,当运行到第29行时,已经将我需要写的数据写到了flash中,但是当我继续运行,当运行到32行,然后再点下一步运行的时候,然后芯片就直接卡死了,在仿真的时候,会导致IAR也卡死

Y T:

我写入的地址为0xFC00,这部分我的代码并没有占用

,

Cherry Zhou:

您好我们已收到您的问题并升级到英文论坛,因感恩节假期在即,预计答复您的时间将稍晚。敬请谅解!

,

Y T:

问题已解决,之前用的是2041这一款芯片,flash较大,使用0xFC00没有影响,现在换为2040,flash较小,而在flash最后一段会有一段芯片内部的数据,现在使用0xFC00会将这一段数据擦除

,

Cherry Zhou:

好的,如您有任何问题欢迎您随时来论坛讨论!

赞(0)
未经允许不得转载:TI中文支持网 » MSP430I2040: FLASH写入卡死问题
分享到: 更多 (0)