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.

msp430g2332 Flash丢失

几个产品在客户手里用了几个月,不能开机的情况,也出现过 (CALBC1_1MHZ ==0xFF || CALDCO_1MHZ == 0xFF)的问题;也出现过,上电没问题,但是按键触发中断就重启;

返修时使用readcode,以上出问题的产品发现和原文件相差较大,应该是代码区的Flash数据丢失了;

请教:

1.什么问题会造成数据丢失;

2.能从软件或硬件上做什么保护;

3.在g2332的型号上能用那个寄存器判断重启的类型,好像没有IFG1寄存器;

谢谢!

  • 一般都是程序跑飞才会造成数据丢失。比如跑飞到擦除操作的代码,就会执行擦除操作。

    G2332是有IFG1寄存器的

  • 非常感谢你的答复,程序是有涉及到写flash的代码,不过真正执行很少,基本就生产时保存ID号;另外有看门狗,跑飞会重启吧?

    是有IFG1,在头文件中看到了定义;

     

     

  • 跑飞不一定跑到哪里去。看门狗只是管没按时喂狗就复位,不管之前跑飞干了什么。
  • 对于 MCU产品FLASH丢失的问题是经常被提到的。基本上所有这类问题都牵涉到用户在程序中有使用FLASH来模拟数据存储功能,这样的操作在一定程度上存在风险,但是如果代码可靠性较高,系统供电稳定无干扰也是可以进行的。

    在出现这样的问题时,首先建议先分析这些被认为是flash丢失的失效情况是在怎么样的用户使用模式下产生的,也就是说是否是由于reset,或任何外部干扰引起。第二,在进行数据存储的函数调用和函数里多加一些限制条件,以起到限制误改写的操作。第三,在解锁FLASH进行写入后务必立即重新锁上FLASH

    最后,最好的办法是考虑用FRAM产品,就不会存在类似问题了,写数据和读数据一样容易。