This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

MSP430I2040: FLASH写入卡死问题

Part Number: MSP430I2040

Fullscreen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
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 bit
FCTL1 = FWKEY + ERASE; // Set Erase bit
*Flash_ptr = 0; // Dummy write to erase Flash segment
FCTL3 = FWKEY;
FCTL1 = FWKEY + WRT;
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
这是我写的flash部分的代码,当运行到19行这里的时候,改位置的数据被擦除了,当运行到第29行时,已经将我需要写的数据写到了flash中,但是当我继续运行,当运行到32行,然后再点下一步运行的时候,然后芯片就直接卡死了,在仿真的时候,会导致IAR也卡死

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

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

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

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