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.

[FAQ] [参考译文] [常见问题解答] TMS570LC4357:擦除后、闪存内容应变为0xFFFFFFFF。 为什么 CCS 存储器浏览器中的闪存内容不是0xFFFFFFFF?

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1138207/faq-tms570lc4357-after-erasing-the-flash-contents-should-become-0xffffffff-why-the-flash-content-in-ccs-memory-browser-is-not-0xffffffff

器件型号:TMS570LC4357

在闪存被擦除后、为什么闪存内容不变为0xFFFFFFFF?

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

    您好!

    Flash 存储器受单纠错双纠错(SECDED)保护。   此保护由 CPU 内部的 SECDED 电路实现。   对于基于 TMS570LC43x 和 RM57Lx ARM Cortex-R5的 MCU、默认情况下会永久启用 CPU 内的 SECDED 逻辑。 但对于 基于 TMS570LSx ARM Cortex-R4F 的器件、闪存 ECC 在默认情况下不启用、并且必须由应用启用。

    每 64位数据有一个8位 ECC。  闪存区域的 ECC 存储在闪存本身中、并映射到 一个从0xF0400000开始的区域、用于主闪存组0。  

    当闪存被擦除时、它的 ECC 区域也被擦除。 两个区域中的内容都是0xFFFFFFFF、这意味着 ECC 区域对于主闪存区域中的内容(0xFFFFFFFF)具有错误的 ECC 值(0xFF)。 当从闪存区域读取数据时、SECDED 逻辑将检测 ECC/数据错误并纠正单位错误。 这就是 CCS 浏览器中的一些内容被翻转的原因。  

    一种解决方案是使用链接器 CMD 文件生成 ECC。 请参阅我关于使用 Linker CMD 文件生成 ECC 的说明:

    https://software-dl.ti.com/hercules/hercules_docs/latest/hercules/How_to_Guides/HowToGuides.html#launchxl2-570lc43-rm57l-linkereccrecommendation