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.

[参考译文] MSPM0G3519:CCS 20.5、LP-MSPM0G3519 (XDS110) SysCtl_resetDevice 断开调试器...的连接 (纠正-断点失败)

Guru**** 2966500 points

Other Parts Discussed in Thread: MSPM0G3519

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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/1659949/mspm0g3519-ccs-20-5-lp-mspm0g3519-xds110-sysctl_resetdevice-disconnects-debugger-correction--breakpoints-fail

器件型号: MSPM0G3519

>>编辑添加>>基线问题是,在引导重置后调试器正在运行,可以暂停 — 并正确报告值和寄存器。  但是、 在引导复位后、断点会失败、直到“线程“中手动断开和连接 MSPM0 内核

______

当调试器在 SysCtl_resetDevice 上断开连接后、我们需要它自动重新连接(或未完全断开)。   

手动重新连接/附加到正在运行的目标是有效的,但它不能足够快地完成,无法在我的 Check_SDI_Restart () 中触发断点。

我们的代码调用重新启动的原因有几个,并在重新启动尝试恢复或收集指标。  这也是将来进行自定义重新编程的切入点。

我已经浏览了几个小时的属性和设置,但没有找到我要找的。

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

    行为刚刚发生变化、即使调试窗口显示“threads>CORTEX_M0P running“、硬件断点也会被忽略。   调试属性已更改为添加  

     <property id=\“AutoRunToLabelOnReset\“>设置为 launch.json
    但断点和监视仍然不可用。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好:

    调试器在 SysCtl_resetDevice 上断开连接后、我们需要它自动重新连接(或未完全断开连接)。   [/报价]

    根据复位的处理方式、您可以尝试 OnResetDetected () 回调 来调用 GEL_Connect () 以重新连接到 CPU。 同样、它将取决于 SysCtl_resetDevice 的工作方式、但值得一试。

    谢谢

    Ki

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    行为刚刚更改、即使调试窗口显示“threads>Cortex-M0P running“、硬件断点也会被忽略。   已更改调试属性以添加 

    CPU 是否仍然断开连接? 如果是、则不会触发硬件断点。

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

    在  启动过程中添加<property id=\“AutoRunToLabelOnReset\“>后、CPU “据报已连接“、即调试面板显示“线程>CORTEX>CORTEX_M0P Running。

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

    该操作仅通知调试器在程序加载后运行到 main(或其他指定标签)。 它仅在首次启动工程调试会话时适用。

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

    嗯?   没有道理。   老实说、我不知道 OnResetDetected () 回调 调用 GEL_Connect ()的建议。 是源代码还是脚本?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我不确定  调用 GEL_Connect ()的建议 OnResetDetected () 回调。 该源代码或脚本是否位于某个位置?

    用户可以将其添加到器件 GEL 启动脚本中:

    https://software-dl.ti.com/ccs/esd/documents/users_guide_ccs/ccs_debug-gel.html

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

    我  昨晚在凝胶学习曲线最基本的部分工作

    不幸的是,OnResetDetected () 不会在调用软件复位的情况下触发 — 但它似乎在调试会话启动期间多次触发。    

    我觉得很难相信我们是唯一需要对复位后产生的问题进行调试的团队。

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

    我仍在寻找 way...in mspm0g3519.gel、诸如 Ctl_Wait ()“和 Mailbox_Wait Debug_Auto ()“的例程。请注意这些例程。   还有其他类似的功能。   这些是否相关?

    最坏的情况 — 如果 xds110 调试器无法工作、是否有更高端的调试器可以进行更好的控制?

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

    我应该添加一些额外的信息 这是一个 FreeRTOS 项目。   在进行除 POR 类型之外的任何复位后、我们看到调试器仍在运行 、尽管与目标不同步。  我不知道为什么我花了这么长时间才知道如果我暂停调试器会发生什么。   

    调试器位于 FreeRTOS 焊盘中、卡在循环中... <<edit No(不编辑)、它正在执行它所支持的操作、只是忽略所有断点。

    静态 void prvCheckTasksWaitingTermination( void )
    ...
    Whid(DeletedTasksWaitingCleanUp >( UBaseType_t ) 0U )
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    摘要: 对于系统复位、在 Reset_Handler stop 处设置断点显示调试器正在跟踪复位、并且流程可以一直步进到 main()。

    引导 重置是导致问题的原因。  永远不会到达我放置在 Reset_Handler 处的断点。  不触发 OnResetDetected。

    从引导复位返回时、CCS 仍然将内核视为“正在运行“、但断点不起作用。   置于 BOOT_RESET 之前的断点和新放置的断点不会跳闸。

    引导复位后、可以成功暂停并重新启动调试器、并且更新变量、调用栈、寄存器和线程、因此调试器知道目标在那里、只是断点失败。

    可能的解决方法(未进行深入测试)...  右键点击 “CORTEX_M0P“和“DISCONNECT“、然后右键点击“CONNECT“。  GEL 将响应“存储器映射初始化完成“、并且断点似乎已修复。

    同样、可以重新连接 POR 复位。

     不过、我们仍然无法足够快地恢复调试操作以在 GET_RESET_CAUSE 和下拉关断状态字节处停止。   

    更糟糕的是、在这些情况下、#ifdef debug __BKPT ()#endif 将导致硬故障。