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.

[参考译文] LP-MSPM0G3507:将断点放置在 I2C IRQ 处理程序中会导致不同的程序流程和正常执行失败

Guru**** 2489685 points
Other Parts Discussed in Thread: LP-MSPM0G3507, MSPM0G3507

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1558113/lp-mspm0g3507-placing-breakpoints-within-the-i2c-irq-handler-results-in-different-program-flow-and-failure-to-execute-as-normal

器件型号:LP-MSPM0G3507
Thread 中讨论的其他器件: MSPM0G3507

工具/软件:

您好、  

我目前正在使用 LP-MSPM0G3507 评估板、并提供了 i2c 示例代码来确认操作、目前的评估设置如下所示。

器件:LP-MSPM0G3507

示例工程:I2C_CONTROLLER_RW_multibyte_fifo_interrupts_LP_MSPM0G3507_nortos_ticlang

※默认按原样使用的工程

 

器件:LP-MSPM0G3507

示例工程: I2C_TARGET_RW_multibyte_fifo_interrupts_LP_MSPM0G3507_nortos_ticlang

已启用※Ω 内部上拉电阻器、未对工程进行其他更改

当前的问题是、当我在“i2c_target_rw_multibyte_fifo_interrupts.c"中“中设置断点(或延迟)以便检查工程流程时、工程执行流程/中断顺序会发生变化、结果通常是目标中的 gTxPacket 通常不会使用正确的 0x00~值更新、而永远不会使这些值重新生效。  

问: 出现这种断点导致的 行为的原因是什么?是否有一种解决方法可以使用断点来调试此示例项目而不影响执行?

我目前已经在运行时保存中断并在成功完成 i2c 通信后进行检查、但我更喜欢以更明确的方式在实际执行期间查看代码流。

如果您有任何解决方案/想法、或需要任何其他信息、请告诉我。

谢谢、

Michael

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

    I2C 目标(从器件)由控制器(主器件)提供时钟、因此它在断点处继续运行。 对于控制器也是如此(在较小的程度上)。  

    这种行为并非特定于 MSPM0 --我在许多 MCU 上都遇到过这种情况。  在某些情况下、可能会在某些位置设置断点、但这是命中注定的。

    我通常甚至不会尝试、 而是(如您所做的那样)保留一个循环中断跟踪、然后稍后返回查看发生了什么。