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.

[参考译文] TMS320F28374D:CPU2断点中的问题

Guru**** 2432790 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/994438/tms320f28374d-issues-in-breakpoints-on-cpu2

器件型号:TMS320F28374D

大家好,

我在 CPU2中设置一个中断内的断点、在另一个中断内设置另一个断点。 第一个断点暂停程序、因此正常、但第二个断点不暂停程序。 这两个断点属于同一文件的不同中断。 两个都在 CPU2上  

CPU1中遵循的相同步骤不会出现任何问题。

我认为它与代码操作无关、因为使用 CCS10时、它有时会进入、而不使用 CCS7进入。

此问题仅在调试模式下出现。

我还尝试 在不同的代码行中设置断点,但无法解决 CPU2 问题

我可以通过测试/执行哪些操作 来解决此问题?

谢谢你  

BR
卡洛

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

    卡洛、

    让我看看我是否理解正确。

    CPU2上有2个中断。  将断点正确放置在一个暂停位置。  在第二个断点内放置一个断点不会停止。  在两种情况下、它都会停止。

    您能否确认第二个中断(断点未停止)实际上正在被处理?  即、如果您在其中放置一个 while (1)循环、然后停止它卡在循环中。  即、这是 CCS 未正确设置断点的问题、还是在这种情况下不会发生中断。

    检查两个内核上是否使用了相同代码的另一个因素是确保在正确的上下文中设置断点。  如果调试多核器件、我要设置断点视图、以按"调试上下文"对断点进行分组。  这可以通过单击断点视图中的3个虚拟点并选择 Group By -> debug context 来完成。

    此致、

    John

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

    您好、Carlo、

    [引用 userid="6487" URL"~/support/microcontrollers/c2000/f/c2000-microcontrollers-forum/994438/tms320f28374d-issues-in-breakpoints-on-cpu2 ]我认为它与代码操作无关、因为使用 CCS10时有时会输入、而不使用 CCS7输入。

    您提到它有时可以与 CCS10配合使用。 我认为这意味着它仍将定期失败。 对吧? 并且它始终无法与 CCS7搭配使用?

    如果客户可以提供小型、可重现的测试案例、这将非常有帮助。 该示例应该是通用且基本的、足以支持各种目标(我有一个28377d controlCARD 可供使用)。

    谢谢

    Ki

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

    您好、Johns、

    我在中断开始时运行 LED 闪烁代码(在设置断点时不会停止)、并且似乎没有在调试模式下处理中断。 因此、在5次试验中、LED 没有闪烁3次。 让我知道、对于其他测试用例、我可以运行以进一步调试问题。

    谢谢你。  

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

    嗯、当使用调试器时、可能导致该情况的一个原因是暂停。  例如、如果代码中有 printf 语句会导致临时停止。  当到达该语句时、内核将停止、数据被传输到主机、然后内核再次运行。  如果您的中断是在内核停止期间触发的、则不会为其提供服务。  

    在 F28x 上、即使在暂停时、也可以启用称为实时模式的功能并为关键中断提供服务。

    在 CCS 中、您可以在此处的项目设置中启用实时模式:

    您还可以在活动的调试会话中打开此功能、方法是单击下面左侧的按钮:

    有关这方面的更多信息、请访问以下链接:

    https://e2e.ti.com/support/microcontrollers/c2000/f/c2000-microcontrollers-forum/22881/f28x-real-time-mode---interrupts

    https://software-dl.ti.com/ccs/esd/documents/users_guide/ccs_debug-main.html#real-time-mode

    此致、

    John

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

    尊敬的 John:  

    我执行了您建议的步骤以及链接、

    我遵循的建议之一是:  我在两个内核上刷写了代码,然后按1) Debug configurations->program->load symbols only,2) target->Autorun and launch options-- >启用实时模式(关键中断...)、 但在所有情况下都无法加载程序、并显示所附图片中的错误。

    此外、代码中没有任何 printf 语句。  

    BR、  

    Vidhi   

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

    Vidhi、

    尝试正常加载程序、然后使用工具栏上的按钮完成加载后打开实时模式。

    您是否有机会为我们提供重现此问题的测试案例?  如果您不想在公共论坛中发布、可以通过私人消息发送。  KI 具有 F28377D、而我有 F28379D。

    此致、

    John

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

    您好、Vidhi、

    [引用 userid="6487" URL"~/support/microcontrollers/c2000/f/c2000-microcontrollers-forum/994438/tms320f28374d-issues-in-breakpoints-on-cpu2命令]CPU2中一个中断内部的断点和另一个中断内部的另一个断点。 第一个断点暂停程序、因此正常、但第二个断点不暂停程序

    在使用多个中断时需要记住的一个事项:如果一个中断 ISR 正在执行、则在此期间不会执行任何其他中断。 一个 ISR 中断另一个 ISR 的唯一方法是使用嵌套中断。 有关更多信息、请参阅嵌套中断的以下主题: https://software-dl.ti.com/C2000/docs/c28x_interrupt_nesting/html/index.html

    确保在第一个中断完全执行完毕后发生第二个中断。

    此致、

    Vince

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

    尊敬的 John:  
    我共享 了脱机 代码  :如果 您需要其他信息,请告诉我  

    谢谢你  

    BR
    卡洛

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

    谢谢。  我们将对此进行尝试。

    此致、

    John

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

    继续离线工作