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.

[参考译文] MSP-EXP432E401Y:[CCS]调试挂起

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1115544/msp-exp432e401y-ccs-debugging-went-hanging

器件型号:MSP-EXP432E401Y
Thread 中讨论的其他器件:SYSBIOS

您好!

我将 tcpecho 示例导入 ns 文件夹下的 CCS 工程、并验证其工作正常。

然后、我添加了一些新内容:

  -通过 TCP 套接字接收一些命令和数据。

  -通过查找命令查找表来查找它是否是注册命令。

  -然后执行查找表中定义的相应服务函数。

在编译后没有错误并启动"Debug As > Code Composer Debug Session"、

我在"Debugging"视图屏幕中看到。 根据它、我想执行程序时不会进入调试会话。

但是、执行结果不是预期的。

      

它的"Memory Allocation"(内存分配)屏幕、但它提供了任何线索、说明了发生这种情况的原因:

   

目前、我不知道这个问题、只是我想它可能是内存问题、但引脚指出失败。

感谢您提供任何帮助/建议、以找到有助于解决此问题的起点或线索。

非常感谢您的参与、

HaeSeung

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

    您好!

    我发现、如果出现任何错误(断言失败、超出任务堆栈大小等)、代码将跳转到 ti_sysBIOS_family_arm_m3/hwi_exHandlerAsm__i、并在以下位置永久循环:

    b 1美元;无限期地在这里旋转

    如果您单击"Run"菜单-"Suspend"、您是否发现代码卡在那里?

    如果您从工具菜单中打开运行时对象视图、这会提供一些线索。 打开"任务"选项、然后选择详细视图-这将显示每个任务、其堆栈大小和堆栈使用情况-这是任何超出堆栈限制的任务的良好线索。

    在任务页面中选择调用栈选项将显示暂停执行时每个任务的函数调用列表。 通常、这会显示在  ti_sysbios_family_arm_m3/hwi_exHandlerAsm__i 结束的任务 、以及它执行到那里的函数。 如果这还不足以猜测问题、它可能会建议一个设置断点的位置、以便您可以单步执行崩溃。

    希望这会有所帮助。

    Jim

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

    您好、Jim、

    感谢您的快速回复。

    遗憾的是、工具栏中除运行和 ROV 之外的所有调试按钮都被禁用。
    因此、我无法使用"Suspend"按钮来查找最后一个代码卡滞。
    如果我单击 ROV 按钮、则会弹出"Connect Target"窗口并等待调试器启动....
    无法连接到调试器。

    调试器启动时、我在 调试视图中看到3条消息:

      第2个屏幕截图中括号之间的消息,正在运行:目标上发生重置,可能有助于猜测问题?

    进入 ROV 失败、我找不到它的堆栈大小和任务的最大堆栈使用量等
    总之、您认为此问题与堆栈使用有关吗?

    您的建议对我非常有帮助、但在本例中、我无法使用 ROV。

    欢迎并感谢任何其他建议/线索。

    HaeSeung  
     

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

    您好!

    如果这些调试函数都不起作用、似乎会让人感到非常沮丧! 它们是否可以与未修改的演示项目一起正常工作? 此外、您能否在让项目运行之前或在代码中运行断点时对项目运行 ROV?

    我不知道任务堆栈大小是否是您的问题、但这是一个很容易的错误-我已经来过很多次了。 或许值得尝试使它们更大。 您的更改是否包括会使用大量堆栈的任何内容? 函数中声明的大型缓冲区?

    #ifdef 可以排除您的更改并返回到工作演示、然后一次将其放回一个位置吗?

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

    您好、Jim、

    我发现导致此问题的原因、并将很快发布。

    我使用了 Release 项目作为我的依赖项项目。 这就是 ROV 不在调试会话中启动的原因。
    在我使用 Debug Project 更改了它之后、ROV 工作正常、它可以帮助我在任务中跟踪堆栈使用情况。

    再次感谢您的建议、我想解决这个问题。

    HaeSeung