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.

[参考译文] MSP430FR2433:信息存储器(FRAM)批量擦除

Guru**** 2478765 points
Other Parts Discussed in Thread: MSP430FR2433, UNIFLASH

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1300990/msp430fr2433-information-memory-fram-mass-erase

器件型号:MSP430FR2433
主题中讨论的其他器件: UNIFLASH

您好!

我使用的是 内置的引导加载程序、它会在密码错误时擦除信息 FRAM 部分。  是否有办法可以防止此存储器部分被擦除?

此致、

-迈克

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

    尊敬的 Mike:

    MSP430FR2433系列确实为 FRAM 的用户程序和数据段提供了写保护、也称为信息存储器。

    请参阅 用户指南中的第1.9.3节

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

    您好、Dennis、

    我本来想我已经这么做了、但在使用 BSL 之后数据会丢失。 当我使用这些 API 命令写入存储器时。

    SYSCTL_enableFRAMWrite (SYSCTL_FRAMWRITEPROTECTION_DATA);
    FRAMCTL_write8 ((uint8_t*) str_buf、ptr、tmp_u16);
    SYSCTL_protectFRAMWrite (SYSCTL_FRAMWRITEPROTECTION_DATA);

    是否有实用的测试方法、例如使用 Uniflash?

    此致、

    -迈克

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

    Dennis、

    下面是一个示例、说明 如何在代码中设置变量指针。  这是问题吗?

    #pragma 位置(SN、0x1800)
    char SN [32];

    此致、

    -迈克

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

    我想答案是否定的。 《MSP430FR BSL 用户指南》(SLAU550AB)第4.1.5.2节规定:"对于 MSP430FR2xx 和 MSP430FR4xx 器件、这意味着包括信息存储器在内的所有代码 FRAM 都将被擦除。" 我没有看到提到任何例外情况。 (根据第4.1.5.3条、对于请求的批量擦除也是如此。)

    当我在 F2系列中遇到这个问题时(在这种情况下、它将擦除出厂校准常量)、我在某个地方看到一个建议、即这是一个安全功能、以防有人将一些机密信息存入 InfoA 中。

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

    谢谢 Bruce。  校准数据也是我存储在器件中的数据。  我想我们必须保存/恢复数据。

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

    有人能在用户指南中对此条目发表评论吗?  有适合它的 API 吗?

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

    我认为这个概念是、如果您安排将0xaaaaaaaa 放置在0xFF84处、这将使 BSL 行为更改为在 PW 故障发生时不进行批量擦除。

    我没有这样做、但我怀疑它看起来会像:

    #pragma DATA_SECTION(bsl_signature, ".bslsignature") // Section name from linker .cmd
    #pragma RETAIN(bsl_signature)                        //I'm not sure this is needed
    const unsigned long bsl_signature = 0xAAAAAAAA;      // No mass-erase on BSL PW failure (SLAU445I Table 1-5)

    [编辑:更正了拼写错误]