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 下载到专用存储器区域时出现问题(使用 UNIFlash)

Guru**** 1624225 points
Other Parts Discussed in Thread: UNIFLASH, NOWECC, SEGGER, TMS570LS3137
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1250940/tms570ls3137-problem-downloading-flash-ecc-into-dedicated-memory-region-using-uniflash

器件型号:TMS570LS3137
主题中讨论的其他器件:UNIFLASHNOWECCSEGGER

大家好!

我们目前在地址 0xF0400000 (spnu499c、 2.2.3.2针对闪存访问的 ECC 保护)中下载闪存 ECC 时遇到问题。 ´re 收到以下错误 消息:

[ERROR] CortexR4:在长度为0x7ff0的页0上的0xf0400000写入内存块时遇到问题:WriteMem 失败!  就像无法写入该存储器地址一样、因此我们的问题是是否有必要在 UniFlash 中启用任何标志/权限、以便可以在此存储器地址中写入 ECC?

值得一提的是、我们  使用 nowECC 工具生成了 ECC、我们使用 J-Flash 回读功能提供了从器件闪存组0和组1读取的数据、并且我们将 微控制器的存储器映射指定为 带有地址位的 F021 16 MB、 根据   spnu499c 的第5章 F021闪存模块控制器(FMC)。  应该注意的是、文档没有明确提及这是微控制器的 存储器映射、因此问一下这是否是我们应该用来计算 ECC 的存储器映射类型也很好?

任何帮助都是受欢迎和感激!  

提前感谢您。  

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

    您好、Horalia、

    我们已开始处理您的问题、并将尽快提供更新。

    --

    谢谢。此致、
    Jagadish。

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

    谢谢! 您是否有任何更新?

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

    您好、Horalia、

    能否请取消选中 Uniflash 中的"Auto ECC Generation"选项并尝试下载代码?

    --

    谢谢。此致、
    Jagadish。

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

    你好, 

    ´m 我使用  SEGGER J-Link 下载代码、因此设置和实用程序窗口不会显示任何需要配置的参数。  

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

    您好! 你关于这个主题的任何意见将有很大的帮助。  我会 很感激

    非常感谢

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

    您好、Horalia、

    您是否在 CCS 上试用过 Segger J-Link 仿真器?

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

    目标未连接。 Uniflash 是否能够识别该 J-Link 调试器? 您是否在其他器件上尝试过这个 J-Link 调试器?

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

    我没有。 我将 Eclipse/IAR 用于我的应用。 我只是想使用另一个工具将 ECC 下载到闪存、  

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

    是的、在 屏幕截图时未连接目标。 但连接目标后、设置和实用程序窗口不显示任何要配置的参数。  

    回答您的另一个问题、是的、我在其他器件上也尝试过这款 J-Link、没有任何问题。  

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

    您好、Horalia、

    我正在尝试查找 J-Link 调试器并运行测试

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

    您好、Horalia、

    我在一个 TMS570 HDK 上尝试了 Segger J-Link (8.0版)调试器。 使用 CCS 和 Uniflash 将应用程序映像加载到器件闪存中没有问题。 但使用 J-Link 调试器时、不支持片上闪存设置(CCS 和 Uniflash)。

    1.使用 J-Link 调试器(CCS)

    2.使用 XDS110或 XDS100V2调试器(CCS)

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

    感谢您花时间完成测试、

    我知道使用 J-Link 调试器时 Uniflash 的片上闪存设置不可用、但我很好奇、您是否在闪存 ECC 的专用区域中编写了内容? 如果是、您能否解释一下您的程序?   

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

    您好、Horalia、

    将程序加载到闪存中时、默认情况下会启用 ECC 计算、因此 ECC 也会加载到闪存中(从0xF0400000开始)。 您不需要加载 ECC 文件(由 nowECC 生成)。

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

    您可以使用链接器 cmd 脚本为整个闪存生成 ECC。  

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

    e2e.ti.com/.../7802.sys_5F00_link.cmd

    在编译该工程之前、请按如下所示开启 ECC 生成:

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

    您好、QJ:

    感谢您的回复、我没有提及我们不对我们的应用使用 Code Composer IDE、我们在 eclipse 中使用 IAR Embedded Workbench、因此我们需要使用外部工具生成和下载 ECC (我们使用 nowECC)。

    我做了一些研究,我发现了为什么我有问题下载计算的 ECC ,这是因为计算的 ECC 是在内存范围0xF0400000 - 0xF045FFFF ,但专用的 ECC 内存区域是  0xF0400000 - 0xF04FFFFF 所以我得到了这个错误, ECC 数据不适合 ECC 闪存扇区

    下面是我在 nowECC 上使用的命令行:

    nowecc -I Input.hex -f021 16M_Add -R4 -o ECC_Output.hex

    对于如何生成 ECC 以使其适应 ECC 专用区域、您有什么想法吗?

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

    另外、这里还有 nowecc 上的命令行屏幕截图、

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

    TMS570LS3137的闪存大小为3MB (从0x0000-0000到0x0030-0000)、ECC 空间从0xF040-0000到0xF046-0000)。

    nowecc -I Input.hex -f021 16M_Add -R4 -o ECC_Output.hex -->  改正

    您的 ECC 文件应适合此器件的 ECC 空间。

    您能否尝试使用 TI uniflash 来加载该 ECC 文件?

    https://www.ti.com/tool/UNIFLASH#downloads

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

    II 进行了测试、发现 uniflash 无法将仅 ECC 的数据加载到闪存(来自0xf0400000)。 权变措施是将 ECC 数据附加到输入文件的末尾。 nowECC 用 '-a'命令支持此功能:  

    用于使用 ECC 数据加载文件的 uniflash 设置:

     

    具有 ECC 的文件可正常加载、但不会出现任何问题:

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

    您好、QJ:

    我如上所述将 ECC 数据附加到输入文件中、并成功 进行了更改 (在 j link 网络控制面板中、因为使用 J-Link 调试器时不支持 Uniflash 上的片上闪存设置。) JLlink 设置以避免对闪存下载进行验证和比较、但最终的验证过程仍在运行、因此闪存下载失败。

    我´m 不知道我应该考虑哪些其他配置来避免最终验证过程。  

    您是否有机会使用 J Llink 调试器重复您的练习?  

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

    编程期间需要跳过闪存验证、因为现在将以单独的步骤对数据区域和 ECC 区域进行编程。

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

     QJ 您好

    感谢您关注此主题。 我意识到、我需要一个调试器来允许我正确配置过程、以避免导致闪存下载过程失败的最后一次检查、因为使用 JLink 是无法实现的。

    我想询问您是推荐适用于 TMS570LS3137的特定调试器、还是使用 UNIFLASH 中列出的任何调试器可以做到

    提前感谢

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

    xds110或 xds200正常。

    https://www.ti.com/tool/TMDSEMU110-U

    https://www.ti.com/tool/TMDSEMU200-U