当我写入(int) 0而不是(char) 0来启动 INFOD 存储器擦除时、擦除 INFOD 存储器时遇到问题。
下面将擦除 INFOD:
FCTL3 = FWKEY; //清除锁定位
FCTL1 = FWKEY + ERASE; //设置擦除位、不允许中断
*(char *) SegmentDstartPtr = 0; //虚拟写入以擦除闪存(SegmentDstartPtr = 0x1800)
FCTL1 = FWKEY + WRT; //为写入操作设置 WRT 位
下面的不会擦除 INFOD:
FCTL3 = FWKEY; //清除锁定位
FCTL1 = FWKEY + ERASE; //设置擦除位、不允许中断
*(int *) SegmentDstartPtr = 0; //虚拟写入以擦除闪存(SegmentDstartPtr = 0x1800)
FCTL1 = FWKEY + WRT; //为写入操作设置 WRT 位
我不是只写一个字符而不是字有任何问题、只是我之前的 MSP430系列代码中相当一部分似乎可以正常编写一个字。
您能否告诉我、如果使用字写入擦除 INFOD 与 MSP43-f6736a 不正确? 我在勘误表 CPU36中看到了一个 INFOD 问题、尽管这似乎是不相关的。
感谢您的观看!
-Rich Mullen