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.

[参考译文] CCS/TMS320F2.8379万D:用于跟踪未插接中断的典型调试提示是什么?

Guru**** 2556880 points
Other Parts Discussed in Thread: SYSBIOS

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/630799/ccs-tms320f28379d-what-are-typical-debugging-tips-for-tracking-down-unplugged-interrupts

部件号:TMS320F2.8379万D
“Thread:SysBIOS”中讨论的其它部件

工具/软件:Code Composer Studio

大家好,

我有一个加载调试器的程序,连接正常。 但是,我的部分测试涉及在运行时重置CPU,当发生这种情况时,我得到了一个拔下的中断#32。

我(想我)知道的:

  • 当发生中断但没有附加功能时,就会发生已拔下的中断。 在我的情况下,可能是某个地方写了错误的分支或内存(我以前曾经遇到过这个问题)。
  • INTR #32是ACA1_ISR,对我来说,它只是Default_ISR.c中的默认值,因为我没有使用它
  • intr #32的内存地址是0x88B3B
  • 仅当我在设备最初开始后重置设备时(如上所述)才会出现此问题。

您使用哪些调试方法来跟踪此类问题? 是否有好的寄存器可供查看,或有方便的位置可放置断点? 我还不熟悉这款处理器,所以我尝试自己调试它,但我觉得我只是看不到正确的位置。

非常感谢!

Mike

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

    如何重置CPU然后重新启动? 用于重新启动CPU的引导模式是什么?

    此致,

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

    您好,Vivek,

    感谢您的回复! 第一次连接调试器时,我必须在CPU2上执行CPU重置(Ctrl-Shift-R),然后重新启动(菜单栏)两个内核,然后同时运行两个内核。 要在稍后的测试中模拟重置,我使用类似的流程,而是使用CPU重置两个内核,然后执行上述操作。

    浏览“参考手册”中的“bootmode”部分,我发现有些东西可能是不正确的-我从未对引导模式感到失望,所以这对我来说是新的。 我的最终产品将使用闪存中的GET模式 (S1=110),当然没有附加调试器,但由于调试器已正确连接以进行测试,因此看起来似乎TRSTn较高,并且可能无法按我想要的方式启动。

    当程序运行时,EMUBOOTCTRL (0xD00)读取0x0008B1D9,Z1-BOOTCTRL读取0xFFFFFFFF。

    您是否有任何建议来解决此问题? 很抱歉-我通读了引导模式部分,但我仍然对所有内容的组合方式有点迷失。 谢谢!

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

    我了解了更多有关引导模式的知识并检查了它,这似乎是我们想要的方式。

    我在_ti_SysBIOS_family_c28_HWI_dispatchPie处放置了一个断点,并检查了几次RPC寄存器,看看什么叫“已拔下”的中断。 每次,RPC都指向*_Idle_loop__E或*_TaskSupport_Glue。 我曾尝试将这些函数移动到RAM,但没有解决问题。 有任何提示?

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

    我最终让它发挥作用。 我意识到只有一个调试配置(我有4个)正在运行,因此我查看了其他配置之间的不同之处。 在自动运行设置下有一个复选框,用于在CPU重置时自动转到main()。 我没有注意到这一点,一切似乎都很好。

    我当时使用的是TI-RTOS,我的一个函数发布了一些memcpy来将闪存程序复制到RAM,我猜这些函数要么没有正确复制,要么在重置时直接转到main()时被覆盖。

    不管怎样,它都能正常工作! 希望此信息在未来对其他人有所帮助。