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.

[参考译文] MSP430F5529:LaunchPad 电源复位时、闪存数据丢失

Guru**** 2619505 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/674690/msp430f5529-flash-memory-data-is-lost-when-launchpad-power-is-reset

器件型号:MSP430F5529

大家好:

我有点问题、希望有人能给我启迪。

我已经检查过以前的帖子、但找不到能够解释发生了什么的帖子。

我使用 TI 演示代码写入闪存(MSP430F552x 演示-单字节闪存系统内编程、将 SegC 复制到 SegD)。 请参阅包含的文件。

一切看起来都很好。 我使用 CCS 中的"Memory Browser"工具查看闪存存储器、其中包含相应的内容。 请参阅图像:

除非我重置 Launchpad 上的电源并再次检查、否则数据将丢失、并且每字节仅显示 FF。 如果我要写入闪存、为什么数据会丢失?

重新加电 Launchpad 时是否会导致某种存储器擦除? 代码中是否有缺失?

或者我解释错误了吗?

如果有任何意见,我将不胜感激。

感谢你能抽出时间。

Ralf。

e2e.ti.com/.../2018.main.c

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    该程序看起来非常像 flashwrite_01 (SLAC300G)、它不仅擦除/写入闪存、还会持续擦除/写入闪存。

    擦除大约需要32ms、写入(128字节)大约需要(128*0.064)=~8ms (另请参见 SLAS590M sec 5.48)。 基于此、点击 RESET 按钮很可能会在 MID 擦除中赶上它。 (写入完成后在断点处停止当然、在 MID 擦除中获得它的可能性约为0%。)

    连接调试器也可能涉及一个或多个 MCU 复位。 由于擦除是该程序执行的第一个重要操作、因此这些操作也很可能进行中擦除复位。

    我建议您将此程序更改为(1)执行一次写入/复制序列,然后进入 LPM0 (永久)或空 while ()循环(2)添加一个延迟--可能在写入/复制序列之前100毫秒,以处理任何调试器复位。

    更一般而言、您可能希望避免非常多地(以这种形式)执行此程序。 我的算术是、它将在持续运行的7分钟内磨损闪存。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Bruce 您好:
    感谢您的注意。
    我将尝试您的建议并告知您。
    谢谢。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Bruce 您好:
    你的钱是对的!
    所需的只是完全写入闪存的时间。
    我按照你的建议推迟了时间,它很好!
    无论我拔下/重新插上 Launchpad 的次数是多少、都有数据。
    是的、我将避免连续写入闪存。