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.

[参考译文] MSP432E401Y:程序在调试模式下冻结而没有断点、但在出现断点时不会冻结

Guru**** 2553450 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1050537/msp432e401y-program-freezes-without-breakpoint-in-debug-mode-but-does-not-freeze-when-there-s-a-breakpoint

器件型号:MSP432E401Y

您好!

正如线程标题所示、我正在使用 Code Composer 并在特定行设置断点、在该行中、我将在计时器生成的时钟的上升沿执行 GPIO 引脚读取。 我使用 MSP432与 eMMC 闪存存储器件通信、该器件能够从连接到 GPIO 引脚的传感器读取/写入数据、并使用 eMMC 进行数据记录。 实际上、我要将"1"或"0"保存到长度为4096字节的无符号字符数组中(这是我计划进行优化以提高存储器存储的效率)、为了转换数据块、eMMC 将发送回 MSP432。 当我在执行 GPIO 引脚读取的行设置断点时、我能够单步执行引脚读取操作或取消断点、并允许我的程序以我设置的时钟频率继续读取。 但是、如果此行上没有断点、程序将冻结、并且我只能在调试模式下挂起或执行程序(暂停然后恢复程序仍会使程序保持冻结和不变)。 我假设在此行上没有断点时、会发生一些意外的中断、使我的程序一直处于此状态。 因此、我想知道是否有人对允许我的程序恢复或单步执行程序的断点可能正在解决什么有任何见解、以及为什么没有断点可能导致我出现此问题? 此外、有关我的程序可能在没有断点的情况下冻结的任何想法也会非常有帮助! 谢谢

TM

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

    在进一步检查之后,我注意到我的程序在 Default_Handler()内进入了一个无限 while 循环,有人知道在我的程序中发生意外中断的位置/原因会传达什么信息吗?  

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

    请参阅 [常见问题解答]如何调试进入 FaultISR 的程序 、该程序链接自 TM4C Arm Cortex-M4F 微控制器的[常见问题解答]常见问题解答。

    第一个常见问题解答链接到 http://www.ti.com/lit/spma043 ,该链接描述了如何查找调用 Default_Handler()的原因。

    虽然常见问题解答是针对 TM4C 器件编写的、但它应该与 MSP432E 相关、后者与 TM4C129器件共享相同的 Cortex-M4F CPU 和外设。