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/TM4C129ENCPDT:调试超时错误

Guru**** 2455560 points
Other Parts Discussed in Thread: TM4C129ENCPDT, SEGGER, EK-TM4C1294XL, TM4C1294NCPDT

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/639575/ccs-tm4c129encpdt-timeout-error-on-debug

器件型号:TM4C129ENCPDT
主题中讨论的其他器件: SEGGEREK-TM4C1294XLTM4C1294NCPDT

工具/软件:Code Composer Studio

大家好、

我使用的是 TM4C129ENCPDT 控制器。 当我调试控制器时,在运行一段时间后,我会收到如下错误:

Cortex_M4_0:错误:在等待目标加电/轮询硬件资源时超时、如果其加电和调试会话结束、则正常工作。

请求您的支持人员了解这种情况的发生原因、代码问题还是硬件问题?

这是否会影响相关性?

谢谢你
此致

Shijin

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

    我在论坛中进行了一些搜索、但没有找到与您报告的问题类似的相关帖子。 您能否连接到同一台 PC 的不同 PC 或不同 USB 端口? 您的 PC USB 端口是否可能无法提供足够的电源? 您是否有任何触发看门狗复位的代码、这些代码可能已断开器件连接? 您是否有另一个电路板可以重现相同问题?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Charles、

    感谢您的建议。
    当我使 PC 保持空闲时、会发生这种情况、例如导致它的节能模式。
    事实上,我的笔记本电脑为定制控制器板评估套件供电,20 x 4 LCD。

    我也会进行进一步分析并分享任何发现。

    非常感谢
    此致
    Shijin
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    很高兴您将问题与 PC 隔离。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    正如海报提到的"20x4"(实际上是4x20) LCD -当"足够长的空闲时间"时关闭 LCD 背光将减少(可能)不需要(不使用时)的电流消耗。

    从任何 USB 端口汲取过多电流可能会"损坏该端口"-虽然这非常"方便"- USB 端口在功耗方面受到很大限制-并且一定不能过载!

    正如供应商查尔斯所说的那样、"从未听说过也从未看到过此类问题"-我们也有这样的新消息。   受干扰的电源很可能会解决此类问题。

    "小心、正确"地配置"实际电源"(这样应用时不会损坏"继续" USB 连接-这种连接可实现调试和编程)证明确认"正确的电源作为解决方案!"的最佳方法

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

    [引用用户="Charles Tsaaaae">我在论坛中进行了一些搜索、但没有真正找到与您报告的问题类似的相关帖子。我之前已经调查过此错误;请参阅 Cortex_M4_0:错误:等待目标加电/轮询硬件资源时超时。 该错误似乎对使用的调试探针类型很敏感。

    我想、当程序运行时、CCS 调试器会定期轮询目标的状态、在某些情况下、状态轮询失败并出现调试错误。

    当正在运行的程序在紧密循环中轮询外设时、最有可能从内存中发生错误。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我可以报告、在(超过) 10年的 J-Link 使用过程中(至少每天有5次使用、仅通过 SWD 过去7年)、公司/我从未注意到过任何这样的"超时"、这似乎证实了 Chester 的"调试探针限制"报告是(可能的)原因...
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引述 USER="CB1_MOBILE]]我可以报告、在(超过) 10年的 J-Link 使用(至少5年在日常使用中、仅通过 SWD 过去7年)中、公司/我(从不)注意到任何这样的"超时"[/QUESPLET]回顾我之前的帖子:

    a) Stellaris ICDI 出现错误("错误:等待目标加电/轮询硬件资源时超时")

    b)遇到 Segger J-Link 错误("错误:STAT [JLINKARM_IsHalted()调用]失败!")

    c) XDS110未出现错误。

    在 Segger J-Link 的情况下、降低 JTAG 频率的行为似乎使问题得以解决-请参阅 https://e2e.ti.com/support/microcontrollers/tiva_arm/f/908/p/518418/1885271#1885271

    [quote user="CB1_MOBIN">似乎确认 Chester 的"调试探针限制"报告是(可能)原因...[/quot]不确定问题是否是"调试探针限制"、而是 CCS 调试器、调试探针和目标上运行的程序之间的交互。 为了获得明确的解释、我认为当错误发生时、我需要尝试捕获 JTAG/SWD 信号。

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

    [引用 USER="Chester Gillon">不确定问题是否是"调试探针限制"、而是 CCS 调试器、调试探针和目标上运行的程序之间的交互。   为了获得明确的解释、我认为当错误发生时、我需要尝试捕获 JTAG/SWD 信号。[/引用]

    这两个点你已经介绍了"山顶!"   高度分析-并完美地描述(两者)"问题"(它实际上看起来是"交互")、然后继续指定"真正的诊断方法(捕获并比较(两者)"正常/失败"事务期间的 JTAG/SWD 事务)...  

    虽然我的报告(没有提到 w/J-Link 的这种"超时")比传闻要多(很少),但它是"长期"(建议),但却未能作为事实得到证实。

    根据您的想法(尝试故意"挑起"(不需要的)超时行为)、我们可以加入以使用(两者)供应商的 ICDI 和现代 J-Link 探针创建相同的"紧密循环(轮询) MCU 外设"代码块。    (我应该能够同时运行至少3个 J 链路-通过不同的 PC -连接到3个'123 LPad.")    这似乎(合理地)具有结论性意义,可以确定通过不同的调查所引入的"有罪程度"(如果有)。   (虽然我们的系统已预先设置为 SWD (仅限)-我们已"解放"了其他2个用于 GPIO 的引脚...)

    正如您和我在这里已经注意到的、该供应商的 MCU 似乎(不好意思)特别容易出现"JTAG 丢失"的情况。   (然而、无论是通过"技能"、运气、还是我们独家使用的"J-Link & SWD"、Fire/I (几乎)从未记录过此类问题。)   

    我曾认为、专门创建各种"JTAG/SWD "事务-可能会让人对"是什么触发了 JTAG 丢失?"有深入的了解   (除了微不足道的事情、"PC0-3的重用 和对 SysClock 的计数。")   同样、通过数字的力量、我们的"独家"J-Link 使用似乎"抵制"了这个问题、但我们却读到(无休止地) ICDI 用户成为受害者。   (虽然... "罗马睡觉" (发誓我听说(有人)说...)

    如果能够识别"JTAG 故障触发器"开发出(部分)防御、则会对许多人"有所帮助"。    (或者我们可以花时间/精力来"像销毁一样!" (笑声) (笑声)  然而-这已经完成了。)

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

    [引用 user="Chester Gillon">回顾我以前的帖子:

    a) Stellaris ICDI 出现错误("错误:等待目标加电/轮询硬件资源时超时")

    b) 遇到 Segger J-Link 错误("错误:STAT [JLINKARM_IsHalted()调用]失败!")

    c) XDS110未出现错误。我使用以下软件进行了另一种查看:

    - Windows 10下的 CCS 7.3.0.00019
    - TI 仿真器7.0.48.0
    - SEGGER J-Link 支持(Windows) 6.20.9.0

    虽然之前显示错误的程序是"在紧密环路中轮询外设"、但它也是以115200波特连续输出来自 UART0的数据。 创建了随附的在 EK-TM4C1294XL 上运行的示例、并通过调用 TivaWare UARTCharPut()在 UART0上输出连续字符。 其中、目标 TM4C1294NCPDT 上的 UART0连接到板载 Stellaris ICDI 上的"Stellaris 虚拟串行端口"。  e2e.ti.com/.../TM4C129_5F00_peripheral_5F00_poll_5F00_tight_5F00_loop.zip

    结果是:

    调试探针 Stellaris 虚拟串行端口在 CCS 终端程序中打开 结果
    SEGGER J-Link EDU 是的 20个调试会话中没有错误
    Stellaris ICDI 是的 在20个调试会话中的14个中获得"Cortex_M4_0:错误:等待目标加电/轮询硬件资源时超时"错误
    Stellaris ICDI 20个调试会话中没有错误

    结论是:

    a)之前曾遇到"错误:STAT [ JLINKARM_IsHalted()调用]失败!" 2016年6月、使用 CCS 6.1.3、使用最新的 CCS 7.3和 Segger J-Link 不再重复该错误。

    b)使用最新的 CCS 7.3仍可通过 Stellaris ICDI 获得"Cortex_M4_0:错误:等待目标加电/轮询硬件资源时超时"、但仅当 Sellaris 虚拟串行端口也被用于接收来自目标的串行字符时。 因此、怀疑错误的原因是 Stellaris ICDI 固件和/或软件驱动程序。

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

    非常感谢-非常"干得好"并进行了报告。

    请注意、每个调试会话的"持续时间"可能会起作用。   (海报仅列出"跑了一段时间后"、这就剥夺了他人(完全)复制他的报告的机会...)

    从正在进行的报告中、"JTAG 已丢失"报告-到目前为止、这是需要注意的领域。   (并继续明显避免(赦免)、这使得"低悬果"(例如禁止激励性"相似")(不必要/不合理)能够吸收供应商时间/资源。)

    您今天的报告使供应商的 ICDI 实施受到怀疑-也指出了 ICDI、因为它"主要可疑"导致可怕的"JTAG 丢失/锁定"。    同样、在(近)日常使用中具有五个 J-Links -我不能忘记我们最后一个、"JTAG/SWD 锁定!"   (公平地说、我们的用法通常通过 SWD 来实现、并且我们(正确的)使用4家供应商的 ARM MCU。然而、'4C123每天(接近)都在使用。)

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

    [引用 USER="CB1_MOBIT)]请注意,每个调试会话的“持续时间”可能会起作用。   (海报仅列出了"运行一段时间后"-这就剥夺了他人(完全)复制他的报告的机会...)在对多少个调试会话执行测试时遇到"Cortex_M4_0:错误: 等待目标加电/轮询硬件资源时超时"错误、设置运行的程序后、使用 CCS GUI 手动刷新 UART0寄存器约一分钟、然后停止并开始另一调试会话。

    在 Stellaris 虚拟串行端口打开的情况下使用 Stellaris ICDI、使程序在 CCS 调试器中运行、CCS 调试器以2Hz 的频率对计数器进行采样(这在目标继续运行时使用 DAP 通过 JTAG 访问存储器)。 在该测试中 、在运行几秒到18分钟后出现"Cortex_M4_0:错误:等待目标加电/轮询硬件资源时超时"错误。

    为了尝试确定问题是在 Stellaris ICDI 固件中、还是 CCS 调试器将测试程序移植到了 IAR Embedded Workbench for ARM 8.11.2 (免费代码大小受限版本)下运行。 该程序在过去的四个小时内无误地运行、并在 Stellaris 虚拟串行端口上输出。 然而、当 IAR 与 Stellaris ICDI 一起使用时、当目标正在运行时、无法访问存储器、"Live Watch"选项呈灰色显示。 因此、使用 IAR 进行的测试没有结果、因为不确定 IAR 调试器是否在程序运行时执行 JTAG 访问。  

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

    再次感谢您-非常详细-非常感谢。

    公司/我拥有付费 IAR 的"多席位"。  (受加密狗保护)  /在接下来的几天内(员工返回时)[我们注意到、通常需要"休假后恢复..." 我们将下载并安装该"code-size LTD。 版本-并查看是否确实阻止了"Live Watch"。

    (我相信在早期版本的"免费"IAR "Kickstart"上、"现场监视"即使在我们(拉住鼻子)启动"行为不良" ICDI 时也会出现并在运行中。   (而不是(性能卓越的) J-Link...)   请注意、我们"无兴趣"仅使用'129系列"(过去使用 LM3S、LX4F)和'123 -我80%确信 IAR 的"实时观察"在"J-Links "全部捆绑"时成功、我们通过 ICDI 运行'123 ...   (注意:防火和防打盹-都准备好了...)

    我们将尝试-然后报告-再次感谢您...