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:对闪存的1个字节进行编程

Guru**** 2614265 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/1464285/mspm0g3507-program-1-byte-of-flash

器件型号:MSPM0G3507

工具与软件:

我想写入闪存的一个字节。  据我所知、G3507使用72位闪存字(即64位数据)和8位 ECC (即 SEC DED)。  从表面上看、似乎无法对单个字节进行编程?  您必须重新计算 ECC 字节并写入:必须擦除该页;为此、您必须在 RAM 中创建该页的镜像、以便复制回该页时修改单字节及其 ECC 字节。  我有权利吗?  听起来很痛苦!   

我见过有关"EEPROM 仿真"的文档。  这只是实现我刚才描述的功能的闪存的软件包装器吗?  如果是这样、我在 EEPROM 仿真文档中搜索"ECC"、发现没有提到它、那么在不处理 ECC 的情况下、EEPROM 仿真是如何工作的?

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

    您好、 

    Unknown 说:
    从表面上看、似乎无法编程一个字节?

    在 MSPM0SDK driverlib 中、我们不提供程序1字节 API。

    Unknown 说:
    您必须重新计算 ECC 字节并写下您必须擦除页面的内容、为此、您必须在 RAM 中创建页面镜像、以便复制回单个字节并修改 ECC 字节。  我有权利吗?  听起来很痛苦!   [报价]

    您需要至少有一个闪存字副本、64位在 RAM 中、当完全64位进行编程时、ECC 应使用最后一个字节进行编程。

    Unknown 说:

    是的、闪存操作的软件层(具有 TYPEA 和 TYPEA)文档可在 MSPM0G3507的页面上找到。

    Unknown 说:
    ]如果是这样、我在 EEPROM 仿真文档中搜索"ECC"、但没有看到任何提及、那么如果 EEPROM 仿真没有处理 ECC、它是如何工作的?

    EEPROM 在 dirverlib 中使用完全64位的程序 API、与您想要执行的操作不同。

    Unknown 说:
    我想写一个闪存字节。

    使用 driverlib API 对闪存字的第一个字节进行编程。

    或者、您需要参阅 TRM 的以下部分: 7.3.3.2编程少于一个闪存字

    我编写了这方面的演示、但还没有完成、您可以将其用作参考。

    我是基于 L1306编写此代码的、因为 L1306没有 ECC、我不需要使用最后一个字节的程序来处理 ECC。

    e2e.ti.com/.../flashctl_5F00_multiWrite_5F00_inOneWord_5F00_LP_5F00_MSPM0L1306_5F00_nortos_5F00_ticlang.zip

    此致、

    Helic

    [/quote]