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.
工具与软件:
您好!
我有一个在编程后可以正常运行的代码、并通过连接的 JTAG 运行。 但是、一旦它被下电上电并允许独立运行、内存测试就会失败、并卡在"testFail"汇编指令中。 (屏幕截图如下)
我正在使用 LaunchPad LaunchXL-570LC4357卡。 CCS 版本 10.1.0.00010.
我已附上我的项目、能否建议代码中出现了什么问题?
e2e.ti.com/.../Autoboot_5F00_Test.zip
谢谢你。
Gobind Singh
尊敬的 Gobind Singh:
[quote userid="448206" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1418559/tms570lc4357-memory-test-fails-when-run-in-standalone-mode 通过重启并允许其独立运行后、内存测试就会失败、并卡在"testFail"汇编指令中。 (下面的屏幕截图)如何在没有 JTAG 的情况下知道它卡住了什么?
——
谢谢、此致、
Jagadish。
我知道是因为:
1.下电上电后启动 ccxml 文件、选择"connect target"并加载符号(无重新编程)。 它会向我显示代码卡住的位置。 这是我在第一篇文章中分享的屏幕截图。
2.在步骤1之后,如果我进行了软重置并尝试重新运行,测试会失败。 它无法在内存中写入模式。 某些存储器甚至不能在 CCS 的"Memory"(存储器)窗口中写入。
3.重新编程代码并运行时(不重启),运行正常。
尊敬的 Jagadish:
请提供有关此问题的任何更新?
谢谢你。
Gobind Singh
尊敬的 Gobind Singh:
对不起延误,我被其他问题所困扰。 我将在本周向您提供最新情况。
——
谢谢、此致、
Jagadish。
尊敬的 Gobind Singh:
我对延迟答复深表歉意。
您是否仍然受困于此问题?
——
谢谢、此致、
Jagadish。
尊敬的 Jagadish:
是的、我仍然有这个问题。
谢谢
Gobind Singh
尊敬的 Gobind Singh:
对进一步拖延深表歉意。
今天我有机会对你的项目进行调试。
但在这里,我不能面对你所说的问题。
这是调试器中的执行结果:
我们可以看到、代码卡在主循环的 while (1)处、汇编指令位于地址0x46AC 处。
现在我所做的是、我退出调试模式、对电路板进行上电复位、之后我连接到电路板、而不重新刷写代码以验证代码卡在何处。
结果如下:
它只执行0x46AC 指令、这意味着代码再次停留在主循环中的 while (1)上。
我不会面对你所说的问题。
——
谢谢、此致、
Jagadish。
尊敬的 Jagadish:
您是断开 USB 电源并重新连接、还是只是使用电路板上的开关进行复位? 我认为当我们使用开关时可以正常工作、但在进行循环通电时无法正常工作
谢谢你
Gobind Singh
尊敬的 Gobind Singh:
您是正确的、断开并重新连接 USB 电缆后、我可以看到问题:
即使我尝试直接写入存储器也会产生问题。 我怀疑内存权限问题可能导致了此问题。 由于此代码不是从 HALCoGen 生成的、因此我无法轻松找到根本原因。
我正在尝试自己的方式、同时也要求您将此代码与我们 HALCoGen 生成的启动代码进行比较、而后者没有此问题。
——
谢谢、此致、
Jagadish。
尊敬的 Jagadish:
我也尝试过使用 HALCoGen 代码、但当我添加内存测试时、发现代码显示相同的行为。
谢谢。
Gobind Singh
尊敬的 Jagadish:
有任何相关更新?
谢谢你。
Gobind Singh
尊敬的 Gobind Singh:
问题在于、此代码不是 TI 代码、而且不是从 HALCoGen 或使用 SDL (SafeTI 诊断库)生成的。
而这段代码是以汇编语言编写的。 所以、理解和调试这种逻辑需要花费大量的时间。
我们有 SDL 来测试存储器和外设、您为什么不使用此 SDL 代码进行测试?
SAFETI_DIAG_LIB 驱动程序或库| TI.com
——
谢谢、此致、
Jagadish。
尊敬的 Jagadish:
我现在已经使用 Halcogen 生成的代码文件"HL_sys_core.asm"来初始化寄存器。 我现已将代码简化为仅进行三次函数调用、其中两次是 halcogen 创建的。 第三种方法只是测试写入和从 RAM 读回。 我已经附加了构建以便复制该问题。
问题是、仅在下电上电后才出现问题时、无法进行调试。 当我重新连接仿真器时、问题已经发生了。 我甚至不使用定制板、这是 TI 评估板。 现在、代码也是 Halcogen 生成的。
谢谢你。
Gobind Singh
尊敬的 Gobind Singh:
我的道歉,因为节日,我离开了几天。
您可以一次参考以下主题吗:
(8) nPORRST 之后的 TMS570 RAM 状态-基于 Arm 的微控制器论坛-基于 Arm 的微控制器- TI E2E 支持论坛
(8) RM57L843:SYSESR 寄存器中的 EXTRST 和 PORST 位-基于 Arm 的微控制器论坛-基于 Arm 的微控制器- TI E2E 支持论坛
我认为断电和 PORRST 在 RAM 上有不同的运行方式影响、正如上面的线程所提到的、即使对于 PORRST 也是 如此、RAM 的内容将不会生效并且只有在真正断电情况下、RAM 将包含垃圾值。
我怀疑由于这种行为、只有我们遇到 RAM 测试失败。
在执行 RAM 测试前、您是否还可以尝试包含 memInit?
——
谢谢、此致、
Jagadish。