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.

[参考译文] MSPM0L1306:使用闪存 ECC 检测存储器损坏。

Guru**** 2447710 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1249229/mspm0l1306-using-flash-ecc-to-detect-memory-corruption

器件型号:MSPM0L1306

您好、TI!

我尝试从闪存进行读取和写入、希望使用 ECC 功能来检测数据损坏。

我正在使用 mspm0_SDK_1_00_01_03、 dl_flashctl.h。  

 有人能 检查一下理解情况吗?:

1.要向闪存写入一个带 ECC 的64位字、我需要 调用

DL_FlashCTL_unprotectSector、然后调用

DL_FlashCTL_programMemoryFromRAM64WithECCGenerated、允许我将64位数据写入闪存地址。 该函数还为我生成一个 ECC、然后将其写入 ECC 存储器。

2.要读取一个 64位的字,并确保没有内存损坏,

 使用指针从闪存回读数据、  然后调用

DL_FlashCTL_readVerifyFromRAM64WithECC 已生成。 该函数基于数据输入(回读值)生成 ECC、并将 ECC 和回读 值与闪存中的值进行比较。 如果所有项都匹配、则该函数返回 true。 错误时返回 false。

3. 默认情况下启用 ECC 代码的硬件生成功能。 是否有办法检查/配置此项?

4. 默认情况下禁用 ECC 代码编程、但只要调用上述两个函数就会启用 ECC 代码编程

非常感谢!

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

    尊敬的 Xiaofeng:

    你对理解是正确的。 顺便说一下、我建议您将 SDK 1.10版与 CCS12.4一起使用。 在以前的版本中、闪存的使用问题更少。

    Unknown 说:
    3.  默认情况下启用 ECC 代码的硬件生成。 是否有办法检查/配置此项?

    如果不希望生成 ECC 代码、可以使用"DL_FlashCTL_programMemoryFromRAM32"。 如果您不生成 ECC、请注意不要通过 ECC 检查读取数据。 所有操作代码都可以在 driverlib 中找到。(dl_flashctl.c)。

    Unknown 说:
    4.  默认情况下、ECC 代码编程被禁用、但只要调用上述2个函数就会启用[/引号]

    您可以调用能够生成 EEC 或不能生成 ECC 的 APII 函数。

    B.R.

    萨尔