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.

[参考译文] MSP430FR2676:在断点周围引入的较大延迟

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1518463/msp430fr2676-large-delay-introduced-around-breakpoint

器件型号:MSP430FR2676
主题中讨论的其他器件:MSP-FET

工具/软件:

我有以下代码:

  1. 全局禁用中断
  2. 禁用看门狗
  3. 初始化 DCO (根据 TI 文档)
  4. 清零端口引脚
  5. NOP  
  6. NOP
  7. NOP
  8. NOP
  9. 设置 PORT 引脚
  10. 清零端口引脚
  11. NOP
  12. NOP
  13. NOP

如果我在13处放置一个断点、并对引脚进行示波、则会得到一个时钟预期的~1.2us 脉冲。 但是、如果我将断点放置在11处(有时是12处)并观察引脚、则脉冲约为~41ms。

(上面的行已编辑、以修正行号参考错误。 键入此陈述后、我向编号列表中添加了商品- DOH)

注意:

  • 我已通过查看反汇编器确认代码符合预期  
  • 该引脚未连接到任何其他硬件。 我尝试过其他引脚、结果是相同的。
  • 我将 EW430 IAR 调试器与 MSP-FET 闪存仿真工具(含最新固件)配合使用
  • IAR 支持团队在这里给我推荐了这个问题、因为他们认为这是一个特定于器件/FET 的问题。
  • 我尝试了 JTAG 速度、内存缓存和 ULP 调试的各种组合、但结果总是相同的。

PIN 代码和断点位置示例:

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

    您是否可以使用 while (1)代替断点、并在自由运行模式下运行代码? 这可以确保它仅与运行/调试模式相关、而不是与执行的代码相关。 调试模式下的代码在运行模式下可能不同。  

    如果您确实想要检查在调试模式下发生的情况、请禁用软件断点函数并重试。  

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

    不确定您在问什么。 我必须假设脉冲是指第9行和第11行之间的正脉冲。

    在第9行设置断点会在设置此引脚之前请求停止 CPU。 你说这会导致一个长脉冲,但我怀疑你真正的意思是你在你继续执行后得到一个长脉冲。

    如果在继续执行后执行的前几个指令中没有奇怪的时间安排、我会感到惊讶。 需要注意的是、在第9行之前、您必须将脉冲时序的断点设置为正常状态。

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

    抱歉、我的陈述中有编号错误、因为我在事实- DOH 之后添加了项目到列表中。 我已经更正了原始帖子

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

    抱歉、我的陈述中有编号错误、因为我在事实- DOH 之后添加了项目到列表中。 我已经更正了原始帖子

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

    仅从如何通过 JTAG 重新启动 CPU 更改为如何设置和字段断点。 后者因 MSP430能够预取指令而变得复杂。