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.

[参考译文] CCS/MSP430FR2311:当处于 LPM 3.5模式时、调试器进入 RTC ISR 并在那里循环、而 RTC 尚未初始化!

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/855613/ccs-msp430fr2311-when-in-lpm-3-5-mode-debugger-enters-rtc-isr-and-loops-there-whereas-rtc-is-not-yet-initialised

器件型号:MSP430FR2311

工具/软件:Code Composer Studio

您好!

我已在 main 中初始化 GPIO、并在启用全局中断的情况下进入 LPM 3.5模式。 我已经在端口1 ISR (按钮- P1.1)中初始化了 RTC。 我的代码中包含 Port1 ISR、计时器 ISR 和 RTC ISR。

我使用的是 TI 编译器 CCS Cloud。

根据我的理解、当我进行调试时、它从 main 开始、初始化 GPIO 并进入 LPM 3.5模式、直到 Port1中断、这将在按下按钮时发生。   

但实际情况是、在初始化 GPIO 后、调试器进入 RTC ISR 并在那里循环。  

我的疑问是、在进入 LPM 3.5 模式之前、我没有初始化 RTC、这意味着 RTC 尚未启动、因此 RTC 中断未启用、调试器如何进入 RTC ISR?

如果有人能给它一些光亮,我将不胜感激。

谢谢你。

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

    您好!

    请记住、如果您进入 LPM3.5并触发 GPIO、器件将不会直接跳转到端口 ISR。 每次从 LPMx.5唤醒都会触发一个 BOR 复位、这意味着 RST 矢量被首先执行。 因此、在您的应用中需要考虑这种行为。 另请参阅用户指南第1.4.3.2章从 LPMx.5退出。

    作为一项简单的检查、我建议首先尝试 LPM3、看看如果不能正常工作、请告知我们。

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

    您好!

    上述信息是否有用、如果不是、请告知我、否则我将在本周结束(2019年11月15日)之前关闭此主题。

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

    您好!

    感谢你的答复。

    代码执行时工作良好、给出了预期结果。

    但是、当我尝试使用调试器检查代码流时、我只是在 RTC ISR 中吸收了指针循环、而 RTC 尚未初始化。 但执行时代码工作正常。

    我只是想知道为什么调试器会在  _bis_SR_register (LPM3_bits + GIE)执行后立即在 RTC ISR 中循环 !

    谢谢你。

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

    您好!

    如果这是"唯一的"调试问题、则最可能与 FR2311中的 EEM 是不支持数据表中提到的 LPMx.5调试的小型版本相关。

    以 FR5969器件为例、数据表支持 LPMx.5调试:

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

    谢谢、这真的很有帮助。