主题中讨论的其他器件:MSP430FR2433
我在该板中发现了一个设计缺陷。 当您在 NMI 模式下尝试调试一个 ISR、该 ISR 绑定到 RST/NMI 引脚时、目标的 PC 会加载错误的地址并强制崩溃。 PC 应加载 ISR 的地址。
这就是原因。 开关 S3连接到仿真器芯片和目标芯片上的 RST/NMI 引脚。 因此、当您关闭开关时、仿真器芯片感测到一个复位信号、而目标芯片感测到一个 NMI。
目标芯片将仅在加载程序且关闭调试器后正确执行 ISR。
你们知道吗?
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.
我在该板中发现了一个设计缺陷。 当您在 NMI 模式下尝试调试一个 ISR、该 ISR 绑定到 RST/NMI 引脚时、目标的 PC 会加载错误的地址并强制崩溃。 PC 应加载 ISR 的地址。
这就是原因。 开关 S3连接到仿真器芯片和目标芯片上的 RST/NMI 引脚。 因此、当您关闭开关时、仿真器芯片感测到一个复位信号、而目标芯片感测到一个 NMI。
目标芯片将仅在加载程序且关闭调试器后正确执行 ISR。
你们知道吗?
尊敬的 Thomas:
FR2433 Launch Pad 中的 S3仅连接到 MSP430FR2433 RST 引脚。 您可以 在 用户指南中看到原理图
FR2433 RST 引脚具有另一个 SBWTDIO 功能、仿真器将通过此引脚进行通信、因此当您按下 S3时、它将影响仿真器的通信。
是的、在发布帖子之前、我看到过这一点、但我对 RST 和 EZFET_RST 是否是同一信号没有信心。
我在测试以下代码时遇到了这个问题。 它将 RST/NMI 引脚配置为 NMI 模式、并将 LED 配置为 P1.0。 中断应切换 LED。 当我在 ISR 内部放置一个断点、运行程序、然后按 S3时、程序崩溃、CCS 会显示以下消息:
在地址"0x4"处中断、没有可用的调试信息、或者在程序代码之外。
我还看到 PC 加载了0x4、这是不对的。
但是、当我加载程序、退出 CCS 调试模式、然后按 S3时、ISR 会正确执行。 您是否知道当断点在此 ISR 中时 CCS 为什么会崩溃?
。
#include <msp430.h> int main(void) { WDTCTL = WDTPW + WDTHOLD; SFRRPCR |= SYSNMI; SFRRPCR |= SYSNMIIES; SFRIE1 |= NMIIE; P1DIR |= BIT0; P1OUT &= ~BIT0; PM5CTL0 &= ~LOCKLPM5; LPM0; return 0; } #pragma vector = UNMI_VECTOR __interrupt void UNMI_ISR(void){ if ((SFRIFG1 & NMIIFG) == BIT4){ P1OUT ^= BIT0; SFRIFG1 &= ~NMIIFG; } if ((SFRIFG1 & OFIFG) == BIT1){} }