您好专家,
之前的 ERTM 操作将随机进入以下两个中断中的一个:(然后它们将导致芯片进入一个无限循环并且无法正常运行。)
中断空 EMUINT_ISR (空)
中断空 User1_ISR (空)
对上述两个中断的访问是随机的、进入上述中断的条件是什么?
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.
您好专家,
之前的 ERTM 操作将随机进入以下两个中断中的一个:(然后它们将导致芯片进入一个无限循环并且无法正常运行。)
中断空 EMUINT_ISR (空)
中断空 User1_ISR (空)
对上述两个中断的访问是随机的、进入上述中断的条件是什么?
大家好,
(6) TMS320F28032:将 ERTM 添加到主函数的第一行会影响芯片的功能? ︎ 微控制器论坛- C2000微控制器- TI E2E 支持论坛
问题来自上述问题,但与上述问题不同。
您好、绍兴凯、
EMUINT 不会在正常应用中触发、请参阅此帖子。
基于 EMUINT 和 User1 ISR 都被触发的事实、应用程序可能正在执行意外代码。 我找不到任何将 ERTM 链接到这些中断中的任何一个的文档。
以下是一些用于确定触发这些 ISR 的指令的建议:
1.如果您能够重现连接的调试器问题、如上述 E2E 博文中所建议、for 循环可从 ISR 代码中删除、当内核在 ESTOP0处停止时、用户可以单步执行 ESTOP0以查看应用程序返回的位置。
2.如果只有在调试器断开连接的情况下才会出现这种情况、则需要反向跟踪栈以查找返回地址。 C28 CPU 文档的第3.5.2节显示了在进入 ISR 之前、返回地址在堆栈中的保存位置。 另请参阅为 ISR 生成的汇编、因为编译器可能还会将一些寄存器入栈并更新栈指针。 可以更新 ISR 代码以查找栈中的返回地址、并将其保存到全局变量中、该全局变量可以通过 COM 端口输出或通过连接调试器进行回读(在连接 CPU 之前删除 GEL 文件以防止调试器发出 CPU 复位命令)并加载符号。
谢谢、
Ashwini
您好、 Ashwini、
当连接到仿真器时、芯片将不会出现这样的问题。 然后 反向跟踪堆栈以查找返回地址是指向什么?
检查退货地址是否可以执行任何操作? ERTM 被添加到 Main 的第一行
绍兴、您好!
[引用 userid="493195" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1043441/tms320f28032-what-causes-the-following-two-interrupts-to-enter/3866922 #3866922"]并 反向跟踪栈以查找返回地址是指向?的内容我们可以看到触发 ISR 的地址/指令、看看它是否为我们提供了任何线索。
我将尝试与一些专家讨论 ERTM 行为。 同时、是否需要在 main 的开头添加 ERTM -我们最好了解这种情况的用例。
谢谢、
Ashwini
绍兴
您所解释的内容并不能直接让我找出问题的根源。 那么、还有几个问题要问。
我假设您在没有连接调试器的情况下运行时会继续使用这些 ISR。
如果是、
答:在尝试连接之前、您是否会在 ISR 中看到这种情况 (我的意思是、您可以通过某种方法来确保代码是否通过 GPIO 切换或任何通信正常运行、或者通过某种方法来显示代码在您尝试连接之前已被击中)
或
b.每当您尝试连接时,您会看到它最终出现在这些 ISR 的中?
如果上述问题的答案是"A"、则当发现问题时、请帮助我们了解从0x800到0x810的存储器位置内容。