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/TM4C1297NCZAD:执行此代码时调试器消失。 无法运行目标CPU;错误;20次尝试后无法确定目标状态。

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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/666783/ccs-tm4c1297nczad-debugger-goes-away-when-i-execute-this-code-can-t-run-target-cpu-error-unable-to-determine-target-status-after-20-attempts

部件号:TM4C1297NCZAD
主题中讨论的其他部件:DK-TM4C129X

工具/软件:Code Composer Studio

我几乎使用Code Composer 6.2 .0.0.005万 和TM4C129X开发板来设置开发环境,这些开发板连接到我们的控制器板。  我能够构建代码并将其下载到目标,没有任何问题(据我所知)。  我连接了一个直流电源来运行我们的主板(而不是嘈杂的开关电源)。

在我收到这些消息之前:

Cortex_M4_0:错误:发生调试端口错误

Cortex_M4_0:停止目标CPU时出现问题

第一个解决方法是在我的硬盘上找到源代码(不是我们的源代码)所在的文件,因为我从其他人的计算机上导入了这个项目,而他人的计算机具有不同的文件目录结构。

现在我可以走一段距离,直到找到第一个屏幕截图中的代码。  再次按F5键后,它就会消失,我不再能控制调试器。

有什么想法?

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

    Mark,您好!

    现在我可以走一段距离,直到我在第一个屏幕截图中找到代码。  再次按F5键后,它就会消失,我不再拥有调试器的任何控制权。[/QUOT]

    您是否可以继续单步完成该说明,而不是运行?

    谢谢

    KI

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

    我以为我已经是单步走了,但我能够进一步完善它。  F5是"步入",这就是我所使用的。  现在我尝试了Ctrl+Shift+F5 (装配体步进),我能够走得更远,更远。  我分支到了一些我没有源代码的其他代码,在下面的屏幕截图中,汇编中的下一个指令会导致我失去对调试器的控制。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我要明确一点,在这之后,它会运行我们的程序。 我们的仪器可以完全正常工作,但我无法再调试。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    抱歉,是的,我询问了有关ASM步入的问题。

    当您越过最后一个ASM指令时,能否显示调试视图的屏幕截图? 实际上,您可以提供整个CCS IDE的屏幕截图。

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

    好的,下面是几个屏幕截图。  希望这能有所帮助。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我的笔记本电脑上的配置或实际安装可能有任何问题吗? 我认为这不太可能,因为它在消失的地方是如此重复。 公司中的其他人能够使用相同的代码运行调试器,并在程序执行时监视变量的变化。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    由于某种原因,调试器在该点失去与目标的调试连接。 这会导致调试器与目标断开连接。 因此,您将失去调试可见性。 您是否尝试重新连接? 我感觉由于最初的调试连接问题迫使断开连接而无法正常工作。 但好奇会发生什么。

    您提到同事可以运行相同的代码并调试到失去连接的点。 他们是否使用与您相同的目标板? 如果没有,您能否让他们在PC上尝试相同的硬件?

    谢谢
    KI
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    没错,我无法再次连接。 我唯一能做的就是使用红色方块来停止调试器接口。 我的同事尚未尝试帮助我解决此问题,但我已在我的系统上使用了他的硬件,我仍然在我的系统上看到此问题,而他在他的上没有看到此问题。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    很有趣 启用调试服务器日志记录后,是否可以重现该问题? 将生成的日志附加到此线程:
    processors.wiki.ti.com/.../Troubleshooting_CCSv7

    请注意上述链接中的以下警告:
    "从调试器记录的数据可能会变得非常大,因此最好只在发生相关事件之前启用调试服务器记录。"

    因此,您可能需要在导致问题的下一个ASM步骤之前启用日志记录。

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

    e2e.ti.com/.../Debugger-hangs_2C00_-test-1.logOkay,我能够 重现启用调试服务器日志记录的问题,并且我正在附加日志文件。

    请注意,其他开发人员和我之间的一个差异可能是我们使用不同的CCS版本。  如上所述,我正在使用6.2。  很快我就会试着从他那里得到他正在使用的东西。  另一位同事正在使用版本7,我认为比我取得了更好的成功。

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

    e2e.ti.com/.../Debugger-hangs_2C00_-test-2.logI进行了第二次测试。  这一次我在问题发生之前启用了几个指令,这一次可能运行时间更长。  文件较大。

    另一张感兴趣的笔记。  当我第一次尝试连接到目标时,我根本无法连接。  我从该USB端口拔下了电缆并将其插入另一个端口,然后我至少能够连接。  调试器仍会在同一点挂起。

    感谢您的帮助!

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

    与链接程序命令文件内存限制相比,寄存器R0和R3值是否有任何问题?

    我的版本可能有问题吗?  我的机器(不工作)与其他两位同事的机器(工作)之间的区别在于,我是在我的机器上构建,而他们是在他们的机器上构建。  我在我的设备上试用过他们的硬件等

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

    与链接器命令文件内存限制相比,寄存器R0和R3值是否存在任何问题?[/QUOT]根据地址,程序正在尝试写入 GPIO端口B的GPIO方向(GPIODIR)寄存器

    如果发生问题的源语句是ROM_GPIOPinTypeGPIOOutput (GPIO_PORTB_BASE,GPIO_PIN_6),则需要地址。

    收到这些消息之前:

    Cortex_M4_0:错误:发生调试端口错误

    Cortex_M4_0:停止目标CPU时出现问题如何配置系统时钟?

    提出问题的原因是可能引发"Cortex_M4_0:错误: Debug Port error occurred (发生调试端口错误)”程序通过将外部晶体频率传递给 SysClockFreqSet(),使CPU超频,使之低于实际晶体频率,从而导致 SysClockFreqSet()将CPU时钟频率设置为大于允许的最大值。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    在这里,我们设置时钟频率并初始化其他内容:

    ui32SysClock = SysCrtlClockFreqSet(((sysctl_XTal_25MHz|)
    sysctl_OSC |
    sysctl_use_pll |
    sysctl_CFG_VCO_480),1.2亿); //从PLL以120 MHz运行。
    PinoutSet();// 配置设备引脚。
    Kentec320x240x16_SSD2119Init(ui32SysClock); //初始化显示驱动程序。
    GrContextInit (&sContext,&g_sKentec320x240x16_SSD2119); //初始化图形上下文。
    TouchScreenInit(ui32SysClock); //初始化触摸屏驱动程序。
    TouchScreenCallbackSet (WidgetPointerMessage); //设置触摸屏事件处理程序。
    SysCtlPeripheralEnable(sysctl_Periph_UDMA); //配置并启用UDMA
    delay_ms (500);//延迟500 ms
    uDMAControlBaseSet (&psDMAControlTable[0]);
    uDMAEnable();
    TouchScreenInit(ui32SysClock);
    TouchScreenCallbackSet (WidgetPointerMessage); //初始化触摸屏驱动程序,并让其将其消息路由到小组件树。


    请记住,公司中的另外两个人能够使用相同的目标硬件和代码成功地进行调试。 只有我在调试时遇到了问题--我的笔记本电脑上的东西可能有所不同。 一位同事认为这可能与我的机器上的boot.asm不同有关。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Mark -感谢您提供日志。 我会将它们发送给客户进行分析

    请记住,公司中的另外两个人可以使用相同的目标硬件和代码成功地进行调试。 只有我在调试时遇到了问题--我的笔记本电脑上的东西可能有所不同。 一位同事认为这可能与boot.asm在我的计算机上不同有关。

    我记得您在使用CCS 6.2 时有一位同事在使用7.0。 您是否知道您的其他同事使用的是什么版本?

    谢谢

    KI

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    编译器的原始开发人员版本为TI 5.1 v.1。 他总是说他在使用5.5 ,但我下载了5.5 并安装在我的笔记本电脑上,我无法打开他的项目。 我可以使用6.2 打开它。

    另一位同事正在使用编译器19.6 0.0 STS (在CCSV7下),他也能够很好地进行调试,而不是在我停止的地方停止。

    在我的系统上,向端口B针脚6写入失败,这是打开系统上的触摸屏LCD显示屏的说明

    错误始终以完全相同的指令出现。
    调试器将逐步执行许多指令,以实现该点,而不会出现任何问题。

    是否没有足够的功率来运行显示器? 这是否会导致JTAG引脚出现问题? 我们认为,董事会的权力是足够的。

    我的笔记本电脑上同时安装了CCSV6和CCSV7,结果也是一样的。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Mark sheats 说:
    另一位同事正在使用编译器19.6 0.0 STS (在CCSV7下),他也能够很好地调试,而不是在我停止的地方停止。[/QUOT]

    您是否尝试提取同事创建的*。out文件并将其加载到您的环境中(不要重建它)? 如果您还没有,您可以尝试吗?

    在我的系统上,写入端口B的针脚6是失败的地方,这是打开系统上的触摸屏LCD显示屏的说明

    错误始终以完全相同的指令出现。
    调试器将逐步执行许多指令,以实现该点,而不会出现任何问题。

    是否没有足够的功率来运行显示器? 这是否会导致JTAG引脚出现问题? 我们相信董事会拥有足够的权力。[/QUOT]

    由于您的同事使用相同的硬件设置,因此可以排除目标电源的问题。 什么是调试连接? 我在前面的屏幕截图中看到您有Stellaris ICDI连接。 您使用的是具有集成ICDI连接的TIVA开发套件(如DK-TM4C129x)还是使用ICDI的定制板? 您是否通过USB集线器的USB端口连接到目标?

    谢谢

    KI

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

          我的同事今天已经离开了,但也许我明天可以尝试。  我是否只需要从他的计算机中接管一个文件?  将其拖放到输出文件所在的同一目录中并覆盖它?

    我提供了一些测试设置的图片。  这是通过USB直接连接到我的笔记本电脑。

    请随时对此设置的任何方面进行评论并提出改进建议。

    再次感谢您为此所做的一切工作。

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

    是的,看起来像 直接连接到您的(ThinkPad?)的DK-TM4C129X 使用标准USB电缆并使用集成Stellaris ICDI连接的笔记本电脑。  

    在查看照片时,一切看起来都很好。

    我的同事现在已经离开了,但也许明天我可以尝试。  我是否只需要从他的计算机中接管一个文件?  将其拖放到输出文件所在的同一目录中并覆盖它?

    是的,您只需取出他的*。out文件。 您可以覆盖现有的一个。 我建议您先备份现有的备份。

    我建议 手动启动调试器,连接目标,并从同事那里显式加载*。out文件。

    请告诉我这是怎么做的

    谢谢

    KI

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    注意笔记本电脑类型。 我复制了*.out文件并查看了说明。 这些说明不会将*.out文件与运行相关联。 如何使新的目标配置显示为可用? (必须立即运行状态更新会议。)
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我有一个类似的ThinkPad和坞站几年了,所以我认出了它。

    当您查看说明时,您的意思是什么? 您所指的ASM安装是否与您所期望的不符-他的代码不同?

    关于Target Configuration (目标配置)视图,有一个简短视频可以澄清问题:
    dev.ti.com/.../

    谢谢
    KI
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我指的是你发给我的指示页。 我看到不同的目标配置可用,但我尚未看到如何创建它们。 我正在查看,你的下一篇文章就来了。

    很抱歉我对这些工具缺乏了解。 这是我第一次使用这些工具,也是第一次处理*.out文件。 我们点击了调试图标,进入了运行模式并对闪存进行了编程。 然后,我们单击运行,加载,加载程序,并选择新的*。out文件。 也许有更好的方法去做。

    但在运行同事的*.out文件时,调试器仍会以完全相同的汇编语言指令消失。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    I指的是您发送给我的说明页面。 我看到不同的目标配置可用,但我尚未看到如何创建它们。 我正在查看您的下一篇文章。[/QUOT]

    还不错。 很抱歉,我感到困惑。 您的项目应该有一个。 但是,如果您想要创建新的幻灯片,下面链接的幻灯片6和7将对其进行说明:

    http://software-dl.ti.com/ccs/esd/training/modules/target_configurations/CCSv5-TargetConfigurations.pptx

    然后单击运行,加载,加载程序并选择新的*。out文件。 也许有更好的方法。[/QUOT]

    这也应该起作用。

    Mark sheats 说:
    但运行同事的*.out文件时,调试程序仍会以完全相同的汇编语言指令消失。[/QUET]

    谢谢。 由于您使用的硬件设置和*.out文件与同事环境相同,因此这肯定是您的硬件环境的问题。

    我可以要求您再尝试两件事吗? 第一个是更新到最新的CCS版本(7.4)。 如果这样做不起作用,请同时从您的同事那里获取*。CCXML文件,并使用该文件启动调试器,而不是您创建的调试器。

    对于您发送的日志,已使用以下结果对它们进行了分析:调试器尝试通过有问题的指令,返回了故障。 发生这种情况时,调试器将发出暂停(成功),然后尝试获取目标的当前状态(已中止/正在运行/等),但状态更新尝试失败。 调试器无法获取故障的正确错误字符串,并在尝试20次后才会中断。 因此,我们不知道真实的错误消息。

    这里没有什么突破性的东西,因为我们在某种程度上知道这些信息。 遗憾的是,我们仍然不知道下一步尝试失败的原因。 仍有一个机会是在更高版本的CCS中修复了某些已知的驱动程序问题-这就是我建议更新的原因。 此外,确保目标配置与已知工作环境相同也是一个好主意-因此,为什么值得尝试一下您同事的*。CCXML文件

    谢谢

    KI

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

    我现在已经在使用7.4 了,昨晚我进行了更新,以确保我获得了所有内容的最新信息。

    我刚刚做了一个测试。  我们拿起他的调试(接口)板和目标板,然后转到我的办公桌。  我在项目列表中重命名了*。CCXML文件,并将其拖到项目中,然后选择链接到该项目的选项(不复制文件)。  然后我单击调试按钮,看到了与以前相同的行为。  我的笔记本电脑似乎无法执行他的电脑可以执行的操作,至少在打开显示屏的一条指令之后没有。

    我们尚未讨论项目属性,如包括文件和ARM链接器选项。  我的设置至少与此同事的设置不同。  是否可能是某个原因导致了问题?

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

    我有两种不同的Tivaware版本的大量混合物。  这是否会导致问题?  有些东西是指向的

    2.1 3.156

    有些人指着

    2.0

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

    我创建了一个新的工作区,导入了我以前的v7项目(复制的文件),并尝试将所有内容设置为指向2.1 3.156 。  似乎我们仍然需要 来自2.0 的几个文件。

    我可以编译,但链接过程现在不干净。  我可以下载一些,但无法完成下载并开始调试。

    现在,不同的*。CCXML文件似乎正在发挥作用。  如果我使用不同的*.CCXML文件,我可以完全下载并开始运行,但不能调试。