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.

[参考译文] LP-MSPM0C1104:无法放置软件断点

Guru**** 2455490 points
Other Parts Discussed in Thread: LP-MSPM0C1104, SYSCONFIG

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1494225/lp-mspm0c1104-unable-to-place-software-breakpoints

器件型号:LP-MSPM0C1104
主题中讨论的其他器件: SysConfig

工具与软件:

我使用的是 LP-MSPM0C1104、但我无法高效调试、因为一旦我启动调试器、所有软件断点都会被禁用。

例如、如果我打开示例项目  timix_timer_mode_one_shot_standby  并使用它编译 无优化 (-o 0):

但是、我启动调试器后、第一个断点就会"转换"为硬件断点、所有其他断点都将被删除:


因此、程序不会在第40或51行停止执行、但会在第53行的__BKPT ()指令处停止

此外、如果我尝试单步执行、没有任何反应、并且出现以下错误:

断点管理器:_JobHardwareBreakpoint ::: ARM_DEBUG_V6M_BPU_ADD_breakpoint : FPB :所有资源都在使用中。[22062]

使用的软件版本:

  • Theia CCS v.20.1.0.445
  • MSPM0 SDK v.2.4.0.06
  • SysConfig v.1.22.0
  • 编译器:TI Clang v4.0.2LTS
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Bruno、您好!
    C 系列仅提供两个硬件断点。  如果要使用更多的断点,我建议在代码前添加_NOP()并在该行中添加断点,或使用软件断点__BKPT()。

    此致、

    Diego Abad

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

    您好!

    很遗憾、我只能使用1个硬件断点。

    此外, 在代码之前添加_NOP()以及在该行添加断点也不起作用,如第51行的附加图片所示。

    我缺少什么吗? CCS 中是否需要进行设置以进行调整?

    谢谢!
    Bruno

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

    Bruno、您好!
    我复制了您的问题、您是正确的。 似乎 断点已经在 main 中默认发生(在程序启动时)。 但是、我不确定如何删除该断点。 我们的 CCS 专家暂时不在办公室。 目前、我建议坚持使用软件断点。
    此致、
    Diego Abad

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

    就是这样!

    此注释解决了我的问题、我没有想到"似乎 断点已经在 main 中默认发生"。

    要解决此问题、请执行以下 操作:在 Project -> Properties -> Debug 内 禁用了  "TI 编译器的程序退出时暂停(需要断点)"设置

    现在、我能够同时使用两个硬件断点

    非常感谢!

    Bruno