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.

[参考译文] MSP430FR6045:在地址"0x33ffe&quot 处中断、没有可用的调试信息、或者超出程序代码。

Guru**** 2481465 points
Other Parts Discussed in Thread: MSP430FR6045

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1281260/msp430fr6045-break-at-address-0x33ffe-with-no-debug-information-available-or-outside-of-program-code

器件型号:MSP430FR6045

正在使用 MSP430FR6045进行开发。
该源代码基于 Water_Demo TI 提供的 USS_STO 源代码开发。

有时、操作会以"在地址"0x39b5c"处中断、没有可用的调试信息、或在程序代码之外"停止。 这里的地址是随机生成的。

调试的结果是、假定当__ bis_SR_register (mode)函数在 commonWaitForconversion 函数(LPM0)内运行时发生计时器中断时、MCU 操作停止。

执行路径:USSLibGUCPi App_Engine -> USS_startLowPowerUltrasonicCapture -> USS_commonTriggerSingleCapture -> commonWaitForconversion ->_bis_SR_register (mode)

如果在操作停止时检查 USSSWLIB_USS_INTERRUPT_STATUS 变量、则会设置 USS_SAPH_SEQ_ACQ_DN_INTERRUPT。
计时器使用 USS 中使用的计时器 A1的 CCTL2。

请告诉我如何解决

使用的 CCS 版本为11.2.0.00007。

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

    尊敬的 Jung:

    您在这里提到的函数已经过很好的测试、我怀疑函数本身就是问题所在。 这不是不可能的,但我们应该先看看其他地方。

    您的程序跳转到的地址不是器件的有效地址(  有关存储器映射、请参阅数据表中的第9.16节)。 您的堆栈是否已损坏?

    您是否编辑过您提到的示例代码? 或者您是否正像下载的那样运行该示例?

    关于进入和退出此器件的某些 LPM、我们有一些勘误表。 您确定它使用的是 LPM0吗? 请参阅我们的 勘误表 以检查您所做的任何更改是否违反了勘误表。

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

    我现在使用的源仅从下载的源中添加了一个计时器。

    我不直接访问或更改堆栈。

    即使您查看勘误表、也不会确认违规。

    您测试过它吗? 如果您还没有尝试过、请进行测试。

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

    您是否正在使用计时器中断? 如果是、您是否使用了正确的矢量?

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

    是的、我正在使用 TA1 CCTL2和 CCR2。

    它在计时器中断中不会无条件停止、仅在上述情况下发生。

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

    Jung

    我想再次询问您是否可以确认您进入了 LPM0或其他 LPM。 PMM31和 PMM32可以用于您进入 LPM2/3/4的情况。

    您是使用 USS Gas 演示还是使用模板示例?

    我刚刚用 USS GAS 演示对我自己的器件进行了编程、并添加了 TA1 CCR2外设。 我仍然可以使用 USS 设计中心、程序不会挂起。

    您说您添加了计时器、这是否意味着您也添加了中断矢量? 演示代码已经定义了其中的大部分内容、因此我想知道您所做的更改。

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

    大家好。

    我没有实现进入另一个 LPM 的功能。
    我确认的是、MCU 停止工作的点是 commonWaitForconversion 中的_ bis_SR_register 函数部分。

    我正在使用 USS 水演示。

    我没有自己添加计时器。 正在使用 USS_lib_HAL 源代码中的 USSLIB_HAL_TIMER_INT_CCRn。

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

    所示的代码会错误我、因为它禁用了中断、然后执行_ bis_SR_register (mode)。 仅保留不可屏蔽中断以导致退出低功耗模式。

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

    您能否分享您具体更改了什么? 我可以看到、此中断向量、特别是 TA1CCR2、已用于演示中的关键函数。 这可能是问题所在、具体取决于您所做的更改。

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

    我通过一封私人信息与您分享。

    我没有找到使用 TA1CCR2的方法、除非我在 USS 水演示源中更改了定义条件。

    有没有地方在使用?

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

    对于遇到此帖子的其他人:  

    我们继续以私人信息进行讨论、因为其中包括私人项目的详细信息。 当我们达到一个目标时、我将更新此主题、为未来的读者提供一个一般解决方案。