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.
大家好!
我们目前在地址 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。
你好, 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。
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 文件?
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正常。