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.

[参考译文] MSP430G2402:将闪存存储器编程为 EEPROM

Guru**** 2513185 points


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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/673735/msp430g2402-programming-flash-memory-as-eeprom

器件型号:MSP430G2402

goog Morning TI 社区!

今天、我有一个关于闪存存储器 MSP430处理器编程的问题。

我使用信息存储器的某些段作为 EEPROM 来存储数据、因此在执行代码期间我对其进行多次写入。

在您看来、信息存储器段上的写入操作可能会修改闪存程序存储器的保护位、从而使闪存不再受保护?

在这种情况下、我认为采取行动的最佳方法是引入外部 EEPROM、这样我就不会对闪存产生任何问题。

你有什么看法? 我非常感谢对这一问题的任何答复和建议。

此致、

Maria Angela

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

    尊敬的 Maria Angela:

    当显示"Flash 不再受保护"时、您是否指的是 Flash 存储器不再被锁定?

     在写入信息内存段时、请注意以下事项:

    信息 A 由 FCTL3寄存器中的 LOCKA 位保护和锁定;LOCK 位无法解锁信息 A、但 LOCKA 的另一种方法将解锁整个闪存存储器、包括信息段和主存储器。 因此、如果您解锁 InfoA 并对其进行写入、您的主存储器也将被解锁。 使用 LOCK 解锁闪存将解锁除 InfoA 之外的所有闪存。

    有关详细信息、请参阅 《MSP430x2xx 系列用户指南 》第7节"闪存存储器控制器"。

    如果您的程序代码适合信息 A、那么您可以通过这种方式进一步 保护您的程序代码、使其在写入闪存的其他部分时不会被意外访问。

    请告诉我这是否回答了您的问题。

    此致、

    Britta

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

    在信息中、2xx 闪存器件的一个段被存储出厂校准数据(DCO、ADC...)、因此有 LOCKA。

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

    大家早上好、非常感谢您的回答!!

    为了更加具体:我将信息存储器的段 D 用作 EEPROM、为此、我设置和清除了 TI MSP430x2xyz 系列产品说明书中所述的 LOCK 位(在她的帖子中提到的第7节)。

    擦除 D 段后、我将数据写入其中、以便在机器关闭时也可以存储这些数据。 为此、我使用 TI 数据表中描述的相同过程(第7章、第3段)

    我认为这是擦除和写入 D 段的正确过程、不是吗?

    那么、以这种方式对闪存进行编程、闪存存储器是否有可能不再被锁定?

    我非常感谢对这一特定问题的任何答复。

    非常感谢、此致

    Maria Angela

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

    尊敬的 Maria Angela:

    正如您所说的、根据用户指南擦除和写入段 D 应该是可以的。

    如前所述、在擦除和写入段 D 时、整个闪存被解锁(信息存储器 A 除外)、直到您完成擦除/写入操作并且您再次锁定闪存。

    如果您说的是 Flash 存储器、您是否专门讨论了主存储器? 您何时会看到保护位未锁定而不希望它被解锁?

    此致、
    Britta

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

    你好,布里塔!

    非常感谢您的回答。 这确实让我明白了问题的根源。

    是的、当我说闪存存储器时、我将讨论处理器的闪存主存储器。

    我强调的问题与过去几周离线讨论 Uwe 的问题相同:存储在复位矢量位置中的地址随机变化。

    我的老板 Luigi 认为、如果闪存被解开、任何类型的静电干扰都会出现、那么正是这种情况导致了对复位矢量的错误重新编程。

    在这种情况下、保护被保留给向量的闪存存储器部分不被意外编程的最佳方法是什么?

     非常感谢、此致

    Maria Angela  

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

    请在回答问题之前解释延迟、我与团队核实了问题的可疑根源是否可以从我们的一方得到确认。 专家们不同意静电干扰会导致上述行为、因此我们认为应用中必须存在另一个导致复位矢量位置变化的问题。

    当您发现问题发生时、您是否可以将实例固定在应用程序执行中? 此时的电压和频率设置是多少? 此外、您能否告诉我、在将复位矢量设置为其他位置之前、执行了哪些代码?

    如果愿意、我们也可以返回使此应用程序相关问题脱机。

    此致、
    Britta