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.

[参考译文] MSPM0G3507:MSPM0G3507闪存操作

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1498490/mspm0g3507-mspm0g3507-flash-operations

器件型号:MSPM0G3507

工具/软件:

尊敬的 TI:

  我观察到了一个情况。  

首先、我要擦除要写入的扇区。 因此、在擦除它所属的扇区后将被锁定(根据数据表)、但我通过给出最大 PROT A、B、C 来显式锁定所有区域 我只关注主闪存区域、没有引导加载程序、什么也不做。

FLASHCTL->GEN.CMDWEPROTA = FLASHCTL_CMDWEPROA_VAL_MASK | FLASHCTL_CMDWEPROTA_VALA_MAXIMUM
  FLASHCTL->GEN.CMDWEPROTB = FLASHCTL_CMDWEPROTB_VAL_MASK | FLASHCTL_CMDWEPROTBB_VAL_MAXIMUM;
  FLASHCTL->GEN.CMDWEPROTC = FLASHCTL_CMDWEPROTC C_VAL_MASK | FLASHCTL_CMDWEPROTC_VAL_MAXIMUM;

然后、我在验证区域是否为 true 时空白、然后我在写入 API 中尝试写入一些数据。当我检查闪存是否已锁定、然后我会将其设置为 false 时  

返回((FLASHCTL->GEN.CMDWEPROTA == FLASHCTL_CMDWEPROTA_VAL_MAXIMUM)
      &&(FLASHCTL->GEN.CMDWEPROTB == FLASHCTL_CMDWEPROTB_VAL_MAXIMUM)
      &&(FLASHCTL->GEN.CMDWEPROTC == FLASHCTL_CMDWEPROTC_VAL_MAXIMUM);
 为什么没有发生锁定。
此外、为什么闪存的最后8个字节无法进行操作。?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、

    我和你做了同样的测试。 结果如下:

    当您使用 MSPM0G3507器件时、闪存为单个存储体、闪存大小为128KB (128个扇区)。  

    ~、CMDWEPROTA 用于扇区1~扇区32、CMDWEPROTB 用于扇区33 扇区128。 因此、仅  使用 CMDWEPROTB 的低12位、每个位用于8个扇区。 而 CMDWEPROTB 和 CMDWEPROTC 的其他未使用位无效。

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

    检查机制是错的。 感谢您的澄清。

    为什么最后8个字节的闪存无法访问? 到底是什么原因呢?

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

    您好、

    这是因为、在 MSPM0中、当 CPU 执行程序时、它将预取下一个闪存字的闪存数据(8字节)。 因此、如果最后一个闪存字中有程序、则可能会由于错误地访问闪存地址而出现异常。  

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

    因此、如果是代码闪存、则表明预取问题正确。 但我想使用最后的扇区来存储一些数据。 不是命令或代码的一部分。 只是一些数据。 您可以假设类似的数据日志信息。 因此、我也可以使用最后8个字节、因为如果我省略最后8个字节并执行闪存操作、扇区对齐等可能会出现故障。?

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

    ??