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.

[参考译文] MSP430F6736:关于闪存覆盖

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1037496/msp430f6736-about-flash-overwriting

器件型号:MSP430F6736

各位专家、您好!

请让我确认 MSP430F6xxx 的闪存控制器。

如果我对闪存存储器区域(0x21200至0x2127F)执行字节访问写操作而不擦除、写入过程是否会执行? 或者、写入访问本身是否不会被执行?

例如、将不 带擦除的0x01写入存储在0x55的位置。 它将从0x55变为0x56。

在用户指南(SLAU208Q)中的7.3.1偏置闪存中、似乎可以以位单元重新写入数据。 我知道在写入新值时应始终执行擦除、但如果根据段等不同处理方式存在差异、我希望您能告诉我。

7.3.1擦除闪存
被擦除的闪存存储器位的逻辑值为1。 每个位可被单独设定为1至0、但是要从0至1重新编程、需要一个擦除周期。 可被擦除的最小闪存量是一个段。 表7-2列出了由 ERASE 和 MERAS 位选择的三种擦除模式。

此致、
还不错

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

    您好、哦、

    因此、您可以写入闪存的一个字节而不擦除、但存在问题。  已擦除的闪存存储器位的逻辑值= 1。  然后、每个位都可以从"1"编程为"0"、但要将某个位从"0"重新编程为"1"、必须将其擦除。   第7.3.1节对此进行了说明。   

    因此、如果您的字节为0x55 = 0101 0101b 并写入0x01、则只能写入零。  它基本上将与两个字节一起运行。  0x55 & 0x01 = 0x01。  它不会保留其他非零位、并且肯定不会将它们加在一起来生成0x56。   

    希望这对您有所帮助。   

    谢谢、

    JD

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

    除了写入只能将"1"变为"0"这一事实之外、您还会遇到时序问题。 编程电压可应用于特定存储器块的时间有严格的限制。 (请参阅数据表) 限制太小、无法使此类型的位明显变宽。

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

    您好!

    我能够确认上述行为是实际操作。

    感谢你们的支持。

    此致、
    还不错