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.

[参考译文] CCS/AM5728:系统重置后调试控制台"不工作。

Guru**** 2600495 points


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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/623563/ccs-am5728-debug-console-not-working-after-system-reset

部件号:AM5728

工具/软件:Code Composer Studio

你好。

我在使用我的AM572主板的CCS AM572 7.2 .0.0.0013万 时遇到问题。

启动目标配置,连接到主板并加载我的程序时,控制台正在打印并显示错误。 稍后, 我执行系统重置,再次连接到主板,然后重新加载我的程序。 重新加载后,控制台不工作(它不打印,也不显示来自我的程序的错误消息)。

当再次启动目标配置时,控制台似乎工作正常,但我希望找到一种更简单的方法,因为有时我忘记重新启动目标配置,然后在测试过程中错过重要信息。

感谢您的帮助和建议。

安德斯

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

    我正在使用Blackhawk USB560v2系统跟踪部分进行调试。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Anders,

    有趣;您并不是最近报告此问题的第一位。 在第二次运行时(CIO不工作时),当您打开“脚本控制台”视图(菜单视图-->脚本控制台)并发出以下命令时,您会看到什么:

    Eval("debug_DumpBreakpoints()");

    这应该会在控制台视图上输出大量信息。 正确加载代码并在main()处停止后,您应该能够看到至少一个启用的断点:C$io$$(如果代码使用TI编译器)或SVC_Handler (如果使用GCC)。

    如果激活了断点但没有输出,我怀疑存在错误。

    同时,我将尝试在此重现这一问题。

    对此造成的不便,我深表歉意。
    拉斐尔
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好Rafael:

    感谢您的快速响应。

    以下是第一次运行时eval("debug_DumpBreakpoints()));的输出。
    CortexA15_0:断点管理器转储:分配的逻辑断点总数:76
    CortexA15_0:断点管理器转储:分配的软件物理断点总数:90
    CortexA15_0:断点管理器转储:分配的传统硬件物理断点总数:0
    CortexA15_0:断点管理器转储:分配的硬件物理断点总数为55:0
    CortexA15_0:断点管理器转储:分配的线程物理断点总数:0
    CortexA15_0:断点管理器转储:
    CortexA15_0:断点管理器转储:已启用:2
    CortexA15_0:断点管理器转储:
    CortexA15_0:断点管理器转储: 硬件配置
    CortexA15_0:断点管理器转储: 位置:"c$exit"(0x801a190c)
    CortexA15_0:断点管理器转储: 调试器响应
    CortexA15_0:断点管理器转储: 条件:
    CortexA15_0:断点管理器转储: 跳过计数:0
    CortexA15_0:断点管理器转储: 当前计数:0
    CortexA15_0:断点管理器转储: 操作:终止程序执行
    CortexA15_0:断点管理器转储: 杂项
    CortexA15_0:断点管理器转储: 组:默认组
    CortexA15_0:断点管理器转储: 名称:
    CortexA15_0:断点管理器转储: 系统设置的断点
    CortexA15_0:断点管理器转储:
    CortexA15_0:断点管理器转储: 硬件配置
    CortexA15_0:断点管理器转储: 位置:"Svc_Handler"(0x8016.8434万)
    CortexA15_0:断点管理器转储: 调试器响应
    CortexA15_0:断点管理器转储: 条件:
    CortexA15_0:断点管理器转储: 跳过计数:0
    CortexA15_0:断点管理器转储: 当前计数:0
    CortexA15_0:断点管理器转储: 操作:半自动托管
    CortexA15_0:断点管理器转储: 杂项
    CortexA15_0:断点管理器转储: 组:默认组
    CortexA15_0:断点管理器转储: 名称:
    CortexA15_0:断点管理器转储: 系统设置的断点
    CortexA15_0:断点管理器转储:
    CortexA15_0:断点管理器转储:已禁用:3
    CortexA15_0:断点管理器转储:
    CortexA15_0:断点管理器转储: 硬件配置
    CortexA15_0:断点管理器转储: 位置:"c$EXITE"
    CortexA15_0:断点管理器转储: 调试器响应
    CortexA15_0:断点管理器转储: 条件:
    CortexA15_0:断点管理器转储: 跳过计数:0
    CortexA15_0:断点管理器转储: 当前计数:0
    CortexA15_0:断点管理器转储: 操作:终止程序执行
    CortexA15_0:断点管理器转储: 杂项
    CortexA15_0:断点管理器转储: 组:默认组
    CortexA15_0:断点管理器转储: 名称:
    CortexA15_0:断点管理器转储: 系统设置的断点
    CortexA15_0:断点管理器转储:
    CortexA15_0:断点管理器转储: 硬件配置
    CortexA15_0:断点管理器转储: 位置:"C$IOE$$"
    CortexA15_0:断点管理器转储: 调试器响应
    CortexA15_0:断点管理器转储: 条件:
    CortexA15_0:断点管理器转储: 跳过计数:0
    CortexA15_0:断点管理器转储: 当前计数:0
    CortexA15_0:断点管理器转储: 操作:流程CIO
    CortexA15_0:断点管理器转储: 杂项
    CortexA15_0:断点管理器转储: 组:默认组
    CortexA15_0:断点管理器转储: 名称:
    CortexA15_0:断点管理器转储: 系统设置的断点
    CortexA15_0:断点管理器转储:
    CortexA15_0:断点管理器转储: 硬件配置
    CortexA15_0:断点管理器转储: 位置:"c$io$"
    CortexA15_0:断点管理器转储: 调试器响应
    CortexA15_0:断点管理器转储: 条件:
    CortexA15_0:断点管理器转储: 跳过计数:0
    CortexA15_0:断点管理器转储: 当前计数:0
    CortexA15_0:断点管理器转储: 操作:流程CIO
    CortexA15_0:断点管理器转储: 杂项
    CortexA15_0:断点管理器转储: 组:默认组
    CortexA15_0:断点管理器转储: 名称:
    CortexA15_0:断点管理器转储: 系统设置的断点



    以下是第二次运行时eval("debug_DumpBreakpoints()));的输出。
    CortexA15_0:断点管理器转储:分配的逻辑断点总数:76
    CortexA15_0:断点管理器转储:分配的软件物理断点总数:90
    CortexA15_0:断点管理器转储:分配的传统硬件物理断点总数:0
    CortexA15_0:断点管理器转储:分配的硬件物理断点总数为55:0
    CortexA15_0:断点管理器转储:分配的线程物理断点总数:0
    CortexA15_0:断点管理器转储:
    CortexA15_0:断点管理器转储:已启用:1.
    CortexA15_0:断点管理器转储:
    CortexA15_0:断点管理器转储: 硬件配置
    CortexA15_0:断点管理器转储: 位置:"c$exit"(0x801a190c)
    CortexA15_0:断点管理器转储: 调试器响应
    CortexA15_0:断点管理器转储: 条件:
    CortexA15_0:断点管理器转储: 跳过计数:0
    CortexA15_0:断点管理器转储: 当前计数:0
    CortexA15_0:断点管理器转储: 操作:终止程序执行
    CortexA15_0:断点管理器转储: 杂项
    CortexA15_0:断点管理器转储: 组:默认组
    CortexA15_0:断点管理器转储: 名称:
    CortexA15_0:断点管理器转储: 系统设置的断点
    CortexA15_0:断点管理器转储:
    CortexA15_0:断点管理器转储:已禁用:4
    CortexA15_0:断点管理器转储:
    CortexA15_0:断点管理器转储: 硬件配置
    CortexA15_0:断点管理器转储: 位置:"c$EXITE"
    CortexA15_0:断点管理器转储: 调试器响应
    CortexA15_0:断点管理器转储: 条件:
    CortexA15_0:断点管理器转储: 跳过计数:0
    CortexA15_0:断点管理器转储: 当前计数:0
    CortexA15_0:断点管理器转储: 操作:终止程序执行
    CortexA15_0:断点管理器转储: 杂项
    CortexA15_0:断点管理器转储: 组:默认组
    CortexA15_0:断点管理器转储: 名称:
    CortexA15_0:断点管理器转储: 系统设置的断点
    CortexA15_0:断点管理器转储:
    CortexA15_0:断点管理器转储: 硬件配置
    CortexA15_0:断点管理器转储: 位置:"Svc_Handler"(0x8016.8434万)
    CortexA15_0:断点管理器转储: 调试器响应
    CortexA15_0:断点管理器转储: 条件:
    CortexA15_0:断点管理器转储: 跳过计数:0
    CortexA15_0:断点管理器转储: 当前计数:0
    CortexA15_0:断点管理器转储: 操作:半自动托管
    CortexA15_0:断点管理器转储: 杂项
    CortexA15_0:断点管理器转储: 组:默认组
    CortexA15_0:断点管理器转储: 名称:
    CortexA15_0:断点管理器转储: 系统设置的断点
    CortexA15_0:断点管理器转储:
    CortexA15_0:断点管理器转储: 硬件配置
    CortexA15_0:断点管理器转储: 位置:"C$IOE$$"
    CortexA15_0:断点管理器转储: 调试器响应
    CortexA15_0:断点管理器转储: 条件:
    CortexA15_0:断点管理器转储: 跳过计数:0
    CortexA15_0:断点管理器转储: 当前计数:0
    CortexA15_0:断点管理器转储: 操作:流程CIO
    CortexA15_0:断点管理器转储: 杂项
    CortexA15_0:断点管理器转储: 组:默认组
    CortexA15_0:断点管理器转储: 名称:
    CortexA15_0:断点管理器转储: 系统设置的断点
    CortexA15_0:断点管理器转储:
    CortexA15_0:断点管理器转储: 硬件配置
    CortexA15_0:断点管理器转储: 位置:"c$io$"
    CortexA15_0:断点管理器转储: 调试器响应
    CortexA15_0:断点管理器转储: 条件:
    CortexA15_0:断点管理器转储: 跳过计数:0
    CortexA15_0:断点管理器转储: 当前计数:0
    CortexA15_0:断点管理器转储: 操作:流程CIO
    CortexA15_0:断点管理器转储: 杂项
    CortexA15_0:断点管理器转储: 组:默认组
    CortexA15_0:断点管理器转储: 名称:
    CortexA15_0:断点管理器转储: 系统设置的断点

    两个输出之间的区别似乎是在第二次运行时禁用了SVC_Handler断点(如果我错了请更正我)。

    我已在程序/内存加载选项(CortexA15)中勾选“启用semihosting (需要在SVC_Handler处设置断点)”。

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

    我可以在GCC生成的代码上重现此问题-使用TI编译器似乎不会引发此问题。

    我将在今天晚些时候提交一份错误报告,但遗憾的是,此时没有解决方法可以使控制台I/O在核心重置后正常运行。

    对此造成的不便,我深表歉意。
    拉斐尔
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Anders,

    我刚刚尝试了7.3 的,但是我的AM571x主板上不能再现。 我需要借用一个"真正的"AM572x主板,然后重试-我的AM572x主板使用预发行硅,这可能会影响结果。  

    请检查以下短片中的步骤-也许您注意到一些不同的事情,我可能没有像您那样做。  

    e2e.ti.com/.../2017_2D00_09_2D00_08_5F00_16h47_5F00_53.mp4

    (对延迟表示歉意;我的计算机今天正在运行)

    此致,

    拉斐尔

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

    拉斐尔

    您好,感谢您的帮助。

    我在观看视频时注意到,在您单击"系统重置"后,您单击暂停按钮,然后收到消息"Cortexa15_0:凝胶输出:已发生核心重置"。

    但是,当我单击"系统重置"时,我在控制台中收到一条错误消息。
    这是消息:"CortexA15_0:JTAG Communication Error:(error -1044@ 0x3458) The debug probe reported an error (CortexA15_0:JTAG通信错误:(错误-1044 0x3458)。调试探测器报告了错误。 确认调试探测器配置和连接,重置调试探测器,然后重试此操作。 (仿真软件包7.0 .48.0)"。
    (我刚才假设我应该在执行系统重置时收到JTAG通信错误消息)。

    您可以在下面的视频中看到我的步骤。

    e2e.ti.com/.../Video_5F00_For_5F00_TI_5F00_Forum_5F00_11_2D00_09_2D00_17_5F00_AV_5F00_Compressed.mp4

    再次感谢您的支持。

    安德斯

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您对我可以尝试解决此问题的方法有什么更深入的了解吗?

    我组中的其他开发人员都收到相同的错误消息"CortexA15_0: JTAG Communication Error:(error -1044@ 0x3458) The debug probe reported an error. 确认调试探测器配置和连接,重置调试探测器,然后重试此操作。 (仿真软件包7.0 .48.0)"。
    再次感谢您的帮助。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Anders,

    请为延误道歉;我外出旅行。

    您看到的错误消息很可能是由于系统重置实际上重置了电路板的PMIC,从而完全折叠JTAG通信(当器件和整个电路板被关闭并重新通电时)。 此主板/设备应具有此功能。

    尽管如此,我仍可以看到CIO在重置之间的问题,这是意料之外的。 我将为此生成一个错误号。

    遗憾的是,此时除了重新启动调试会话外,没有其他解决方法。 抱歉。

    对此造成的不便,我深表歉意。
    拉斐尔