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.

[参考译文] MSPM0G3107:无法读取/写入闪存上的特定区域

Guru**** 2395365 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1435462/mspm0g3107-cannot-read-write-to-certain-areas-on-flash

器件型号:MSPM0G3107

工具与软件:

你(们)好

我正在尝试访问闪存上的某些区域、例如.intvec 和 intvec 所在的整个扇区。
执行 intvec 的读取只会从每个字节中读取0xFF、但我可以通过调试器读取访问数据、而不会出现任何问题
问题是,我需要从该区域读取,然后通过擦除它使它无效,但我似乎不能这样做

有没有遗漏的内容?

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

    高 Isac、
    您能否确认、当您从函数读取闪存时、只读取0xFF、但当您使用调试器时、它会读取所需的数据?  
    此外、您使用的是我们 SDK 中的哪个示例? 我想看看我是否可以重现您遇到的问题。
    此致、
    Diego Abad

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

    我实际上没有使用任何示例、但我使用的函数是  

    DL_FlashCTL_eraseMemoryFromRAM
    和  
    DL_FlashCTL_programMemoryFromRAM64WithECCGenerated

    如果我编辑链接器文件并将.intvec 放在其他地方、似乎可以从该特定区域读取
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    高 Isac、

    我将与我们的软件团队一起查看这一点以进行确认。

    此致、

    Diego Abad

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

    高 Isac、

    您能告诉我您想从哪个地址读取吗?

    此致、

    Diego Abad

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

    好的、我们认为我们发现了这个问题。
    我们已经将一个代码库移植到 MCU 上、发现它在一个地方执行了写入操作、而没有先进行擦除、这导致了奇怪的 ECC 故障。

    现在、我们可以从闪存上的所有地址读取数据、还能正确执行写入操作、而不会出现故障。

    我们尝试读取的地址为0x000A000至0x000A0FF、该地址仅返回0xFF、但在解决 ECC 问题后、该地址现在返回正确的数据

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

    高 Isac、
    我很高兴您找到了答案。 很抱歉、我花了太长的时间才回答。  

    此致、

    Diego Abad

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

    不用担心、毕竟这是我们自己的代码