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.

[参考译文] MSP430F5438A:不能单步执行

Guru**** 2538950 points


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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1193235/msp430f5438a-cannot-single-step

器件型号:MSP430F5438A

大家好、

我正在使用 MSP-EXP430F5438、在调试 TI 的例程时遇到错误:

基本上、它是在退出 ISR 时发生的。 此外、如果我没有设置断点、它将在我按下"暂停"后中断。

我认为关于 GIE 设置和清除存在一些问题,所以我添加了一些__no_operation()行,但它没有帮助。

首先、我想在退出 ISR 后看到 GIE 位被置位、但现在我遇到了这个问题。

此致、

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

    你(们)好

    请执行 hlep 以尝试此代码。

    您可以在这2行设置断点。

    _bis_SR_register (LPM3_bits | GIE);    //输入 LPM3
    __no_operation();                      //进行调试

    MSP430器件可在第一行 BP 处停止、因为 MCU 在此行处于激活模式。

    由于 MCU 在此线路处于睡眠模式、器件无法在第二行(__no_operation();)停止。

    谢谢!

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

    您好、Xiaodong、

    它将按相同方式断开:

    最棒的

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

    你(们)好

    我知道您使用的 CCS 版本吗?

    您能否尝试运行 MSP430F543xA、MSP430F541xA 代码示例的基本示例代码 msp430x54xA_LPM3_1.c (修订版 K)

    请检查 PC 是否可以在此示例代码的断点处停止。

    谢谢!

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

    您好、Xiaodong、

    感谢你的帮助。

    CCS 版本:12.0.0.00009  

    程序在第二个 BP 时停止:

    似乎它没有进入 LPM。

    最棒的

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

    你(们)好

    在第二个 BP 上的程序停止是正常现象。

    此时、MCU 处于工作模式。

    该 BP 之后。 MCU 将进入 LPM 模式。 在 LPM 模式下、不支持调试功能。

    谢谢

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

    您好、Xiaodong、

    但我使用这个示例 msp430x54xA_rtc_01,它具有 ISR,程序在第一个 BP 处停止:

    按下 RESUME (恢复)按钮后、它在第一个 BP 时停止、然后按下 RESUME (恢复)按钮运行、然后按下 SUSPEND (暂停)按钮并断开:

     

    我在 ISR 中设置 BP、然后在该 BP 之后执行单步操作、然后在 ISR 结束时得到该错误。

    我无法理解、因为我使用其他板、它运行良好。

    谢谢、

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

    你(们)好

    >>但我使用这个示例 msp430x54xA_RTC_01,它具有 ISR,程序在第一个 BP 处停止:

    PC 可以在此 BP 处停止、因为 MCU 此时处于激活模式

    >>按下 RESUME (恢复)按钮后、它会在第一个 BP 时停止、然后按下 RESUME (恢复)按钮运行、然后按下 SUSPEND (暂停)按钮并断开:

    按下"run"、器件将进入 LPM 模式。 此时、器件无法执行调试命令。 按下"SUSPEND (暂停)"。 调试功能中断。

    >>我在 ISR 中设置 BP、然后在该 BP 之后执行单步操作、然后在 ISR 结束时得到此错误。

    您在中断处理中从 BP 中按单步执行。 在此处理结束时、MCU 将返回 LPM 模式。 因此、错误发生在处理结束时。

    谢谢!

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

    您好、Xiaodong、

    我想我知道你的意思。

    但是在这个 示例 中、msp430x54xA_RTC_01、RTC 应该保持触发中断、这将唤醒 MCU。 在这种情况下、我在处理结束时按单步执行、它应该返回 LPM 线。 我的理解是否正确?

    最棒的

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

    你(们)好

    >>在这种情况下、我在处理结束时按单步执行、它应该返回 LPM 线

    处理完成后、MCU 将返回 LPM 模式。 但它不会返回 LPM 线、因为 LPM 线实际上是激活模式。

    正如我们所讨论的、一旦 MCU 进入低功耗模式、调试就会"中断"。

    谢谢