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.

[参考译文] TMS570LS3137:在启用闪存 ECC 的情况下读取片上闪存

Guru**** 2482225 points
Other Parts Discussed in Thread: TMS570LS3137

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/724936/tms570ls3137-on-chip-flash-memory-read-with-flash-ecc-enabled

器件型号:TMS570LS3137

您好!

我们使用以下工具在 TMS570LS3137微控制器上刷写映像:

XDS200 USB 仿真器

CCS 版本8.0.0

生成的.out 文件大小约为300KB。 当使用仿真器将.out 文件加载到闪存组0时、

案例1:

在二进制数据可用之前,我可以在内存浏览器中看到数据(这是使用函数“_coreEnableFlashEcc_”启用闪存 ECC)如果我尝试访问 binay 数据不可用的闪存,我会看到“目标无法读取0x---- "。

案例2:

在未启用闪存 ECC 的情况下(在启动代码中添加了注释"_coreEnableFlashEcc_"函数调用)、我能够访问所有闪存位置。  当我尝试访问二进制数据不可用的闪存存储器时、我在表达式窗口中看到"0xFFFFFFFF"。

是否有人可以帮助说明这种情况的发生原因?

如果数据不可用且启用了闪存 ECC、是否有任何方法可以访问闪存?  

提前感谢。

此致、

Kalyan

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

    您是否在对代码进行编程之前擦除整个闪存? 如果是、则可以向链接器使用"vfill"指令、使其即使在闪存存储器中未被程序占用的位置也能生成正确的 ECC 值。 这是您看到的错误的原因。

    有关更多详细信息、请参阅此主题: e2e.ti.com/.../2569327

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

    检查这个并返回给您。

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

    我通过添加 vfill 指令修改了 cmd 文件、但仍然没有被程序数据占用的闪存位置显示为"???????? "、在表达式窗口中、我看到"Target failed to read 0x0018000 (example memory location)"。 但是、当我使用 fill 指令时、没有此类问题。

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

    即使只使用300KB、链接器命令文件是否会将整个可用闪存定义为程序存储器的一部分?

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

    您好、Sunil、

    是的、链接器文件将整个闪存定义为程序存储器的一部分。

    谢谢、

    Kalyan

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

    当使用调试器连接到部件时、通过工具->片上闪存打开"片上闪存"属性。 确认"Auto ECC Generation"(自动 ECC 生成)框已选中。

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

    是的、选中"Auto ECC Generation"复选框。

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

    "片上闪存"配置中还有另一个选项、允许您仅擦除应用所需的闪存部分。 请检查以确保您正在擦除整个闪存。 这是正确使用 vfill 所必需的。

    此致、
    Sunil