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/MSP430FR2100:LOCKLPMS 位清零时调试崩溃。

Guru**** 1769905 points
Other Parts Discussed in Thread: MSP430FR2100, MSP-EXP430FR2433, MSP430FR2433
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/713470/ccs-msp430fr2100-debug-crashes-when-locklpms-bit-cleared

器件型号:MSP430FR2100
主题中讨论的其他器件: MSP-EXP430FR2433MSP430FR2433

工具/软件:Code Composer Studio

我计划使用 MSP430FR2100器件来替换一组序列发生器逻辑。 我使用 MSP-EXP430FR2433开发套件测试了这一概念、一切似乎进展顺利。 因此、我获得了一些 MSP430FR2100器件、更改了一些 I/O 以适应较小的器  件、并使用 MSP-EXP430FR2433板对 MSP430FR2100进行了编程(拔下跳线并连接了 GND、3V3、SBWTDIO 和 SBWTCK 引脚)。 遗憾的是、新器件只是在 DUT 固定装置中放置时就坐在那里、并且没有通过序列。

因此、我将 MSP430FR2100重新连接到 MSP-EXP430FR2433板、并通过 CCS 启动调试器。  

我的程序的开始是:  

//********

int main (空)

int j;

WDTCTL = WDTPW | WDTHOLD;//停止看门狗计时器
initGpio();

PM5CTL0 &=~LOCKLPM5;//禁用 GPIO 上电默认高阻抗模式

CSCTL4 = SELMS_REFOLCLK | SELA_REFOLCLK;//使用内部32.768kHz 时钟

//********

initGpio()子例程为

//

空 initGpio()

P1DIR = 0xF0;// P1.7到 P1.4为输出。 其余为输入

P2DIR = 0x80;// P2.7是一个输出 P2.6到 P2.0是输入。
P1REN = INT_PULLUP;//低半字节上的上拉
P2REN = 0x00;//无上拉 P2输入

P1OUT = INT_PULLUP;//与 P1REN 结合使用以获取上拉。
P2OUT = 0x00;//第二个 RESET_SYS_L (也被置为有效)。

//

我可以单步执行程序、直到我单击"PM5CTL0 &=~LOCKLPM5;"行、然后在控制台上得到以下结果:

"MSP430:不能单步执行目标程序:不能单步执行器件"

东西都不会出现。  

如果我注释掉"PM5CTL0 &=~LOCKLPM5;"这一行、调试器将继续工作并更改 MSP430FR2100的输出、但输入似乎不起作用。 我还在 DUT 装置中看到类似的行为(对 LOCKLPM5线路进行了注释)-输出会经过适当的序列、但芯片不会对输入做出响应。 我有几个问题:  

1) 1)为什么我的程序可以与 MSP430FR2433芯片配合使用、而不是 与 MSP430FR2100配合使用?

2) 2)为什么在调用 LOCKLPM5线路时 CCS 挂起?  

3) 3)如果我注释了 LOCKLPM5线路、为什么输出完全正常-芯片的 I/O 是否被认为停留在"只输入"模式?  

如有任何信息、请提供。  

谢谢!

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

    我正在研究这一点、并将尽快提供更多信息。

    谢谢、

    Mitch
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我的第一个猜测是引脚上发生了一些事情(短路?)。

    一个简单的诊断是移动 LOCKLPM5清零以在 InitGpio 调用之前进行、然后单步执行。 这可能有助于您了解触发事件的设置。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    宾戈! 接受诊断建议后、我发现将一个特定 I/O 设置为输出会导致单步执行失败。 仍在寻找物理短路、但欧姆表显示测试装置(某处)中存在该短路。  

    感谢帮助新员工!