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.

[参考译文] 无法通过硬件监视点停止 CPU

Guru**** 2582535 points
Other Parts Discussed in Thread: C2000WARE

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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/1081156/cannot-halt-cpu-by-hardware-watchpoint

“线程:测试C2000WARE”中讨论的其它部件

您好,

我正在尝试了解为什么在 F28379D 中的 EPWM10中将 OST 设置在 CPU2控制下的 controlCARD 上。

我已按照本手册操作:

https://software-dl.ti.com/ccs/esd/documents/ccs_breakpoint_watchpoint_c2000.html#Configure_a_Hardware_Watchpoint

...并尝试为 EPwm10Regs.TZFLG.OST 添加监视点,但这无法停止 CPU。 我正在使用 XDS100v2。

一切似乎都是正确的:

请告诉您为什么 CPU2无法停止?

谢谢你。

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

    您好,

    监视点似乎配置正确(假定0x4993对应于正确的地址)。 其他硬件断点和监视点是否触发正确? 如果是,您能否提供测试用例? 我只需要一个可以写入同一位置的可执行文件。

    谢谢

    Ki

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

    谢谢 Ki。 是断点似乎正常工作。

    我已仔细检查 EPwm10Regs.TZFLG 的地址0x4993是否正确。 OST 标志为位2。

    我认为以下代码应作为设置 TZFLG.OST 的测试用例:

            EPWM_clearTripZoneFlag( EPWM10_BASE, EPWM_TZ_FLAG_OST );
            EPWM_forceTripZoneEvent( EPWM10_BASE, EPWM_TZ_FORCE_EVENT_OST);

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

    我在 C2000Ware 的一个示例中添加了上述代码片段。 虽然人们的构造很好,但当我走过上述两条线时,我看不到国旗被设置了。 我想知道我是否缺少一些附加初始化。 我的专业知识仅限于工具本身,而不是设备,因此,如果你能给我一个我可以运行的示例,我会感到很惊奇。

    谢谢

    Ki

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

    好的,让我们来试试。

    我在这里构建了该项目,并在 controlCARD 上运行:

    C:\ti\C2000\C2000Ware_4_00_00_00\driverlib\f2837xd\examples\CPU1\led

    我在 for 循环的末尾添加了上述行。 以下是 ePWM_forceTripZoneEvent()前后的寄存器状态:

    我希望你们也能这样做。

    根据最初的问题,即使我将监视点设置为在写入此寄存器时停止,LED 仍会闪烁。

    我附上了我的整个 project.e2e.ti.com/.../led_5F00_ex1_5F00_blinky.zip

    (笑声)

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

    我在运行示例时遇到问题。 一旦解决问题,我会尝试一下。

    https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1081972/tms320f28377d-can-t-get-driverlib-examples-from-c2000ware-to-work/

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

    我正与 C2000团队就上述问题合作,这只是一个小问题。

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

    谢谢 Ki。 与此同时,我正在解决这一问题。

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

    感谢您的耐心等待。 我收到更新后,会尽快通知您。

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

    我有人建议解释这个问题。 有关寄存器(TZFLG)为只读,因此只能通过硅逻辑进行修改。 在这种情况下,数据写入监视点可能没有意义,因为用户代码无法写入数据。

    我这样说是因为注册 TBPRD 的监视点对我有效。 这是一个可写寄存器,因为用户代码需要修改它。

    如果 ePWM 外设设置 OST 标志,则似乎无法停止 CPU,除非有人知道如何执行此操作?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="479799" url="~ë/support/tools/code-composer-studio -group/CCCS /f/code-composer-studio -forume/1081156/no-halt-cpu-by-hardware-watchpoint/4015470#4015470"]在该上下文中,数据写入监视点可能没有意义,因为用户无法写入/引用代码。]

    您在这里可能是正确的。 数据监视点将监视数据总线是否写入特定地址。 如果以其他方式更改该值,那么这可能解释为什么监视点没有触发。

    我会将此主题提请设备专家注意。 他们可以提供进一步的援助。

    谢谢

    Ki

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

    你好,Kier,

    我也能在我身边重复你的调查结果。 硬件监视点适用于非只读位,但适用于 TZFLG,因为它是只读的,插入断点后 CPU 将不会停止。 可能是您和 Ki 的建议所致。

    [引用 userid="479799" url="~ë/support/tools/code-composer-studio -group/CCCS /f/code-composer-studio -forume/1081156/Cannot -halt-cpu-bi-hardware-watchpoint/4015470#4015470"]当 ePWM 设置了外围设备时,似乎无法停止 CPU [除非有人设置了此选项?]

    请提供您的申请中为何需要这种情况的背景资料吗? 也许我可以建议另一种调试方法。

    此致,

    Marlyn

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

    您好,Marlyn,

    感谢您的确认。

    环境是,当条件表明一切正常时,OST 意外触发。 所以,我自然想看看我的代码中设置了什么标志,因此是监视点。

    在触发停止之前,我使用了一种无礼的方法来注释代码。 我最终找到了原因并解决了问题,因此除非您考虑到更明智的方法,否则寻找替代方案的必要性就不复存在了?

    吉尔。

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

    你好,Kier,

    [引用 userid="479799" url="~ë/support/tools/code-composer-studio -group/CCCS /f/code-composer-studio -forume/1081156/no-halt-cpu-by-hardware-watchpoint/4017900#4017900]',我使用了无目的注释代码方法,直到触发停止。 我最终找到了原因并解决了问题,因此除非您有更明智的方法,否则寻找替代方案的必要性就不复存在了?

    我很高兴您能找到问题。 不幸的是,对于这种使用案例,您所做的只是找出这种情况的唯一方法,除了可能是单步通过代码查看哪个代码行影响 OST 位。

    此致,

    Marlyn