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.

[参考译文] CC3220SF:XDS110调试探针问题。

Guru**** 2595770 points
Other Parts Discussed in Thread: CC3220SF, UNIFLASH, SYSCONFIG

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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/1027290/cc3220sf-xds110-debug-probe-problem

器件型号:CC3220SF
主题中讨论的其他器件: UNIFLASHLAUNCHCC3220MODASFSysConfig

您好的支持团队。
我在使用 XDS110和 CC3220SF 进行调试时遇到问题。
我的应用程序在"MCU +映像"配置下运行、但在"Debug"模式下、它会显示以下消息:

Cortex_M4_0:JTAG 通信错误:(错误-1170 @ 0x0)无法访问 DAP。 重置设备、然后重试此操作。 如果错误仍然存在、请确认配置、对电路板进行下电上电和/或尝试更可靠的 JTAG 设置(例如、较低的 TCLK)。 (仿真包9.3.0.00058)
Cortex_M4_0:在断开连接之前无法从目标中删除调试状态。 程序存储器中仍可能嵌入了断点运算代码。 建议您在连接之前重置仿真器、并在继续调试之前重新加载程序

我已经多次重新启动目标、调试器和计算机、但始终会出现相同的问题。

我使用的 Code Composer Studio 版本是10.3.1.00003;
SimpleLink CC32xx SDK 版本为5.10.0.02。

谢谢你。

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

    尊敬的 Carlos:

    当器件处于生产模式时、JTAG 被禁用。

    尝试将器件置于开发模式以启用 JTAG。 请 参阅此处的 CC3220 UniFlash 用户指南

    BR、

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

    非常感谢您的参与。

    我的项目已处于开发模式、如下所示。

    我可以加载程序并将其运行到错误消息弹出的位置。

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

    尊敬的 Carlos:

    您似乎没有对 sFlash 进行编程。 请阅读此文档

    BTW... 您使用自己的硬件还是 LaunchPad?

    1月

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

    您好、Jan、非常感谢您的回复。

    我通过 Uniflash 访问器件以确认当前模式。 它表示它处于开发模式。
    我出了什么问题?

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

    您好!

    您使用什么硬件? 它是具有 CC3220SF (CC3220MODSF)或 LaunchPad 的自己的硬件? 在使用 LaunchPad 的情况下、请确保 JTAG 跳线(TDI、TDO、TCK、TMS 等)已正确连接、并且使用了正确的 SOP 模式(SWD 与4引脚 JTAG)。

    如果您使用的是自己的硬件、请提供有关配置的更多详细信息。

    1月

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

    您好、Jan

    我使用的硬件是配备 CC3220MODASF12MONR 模块的定制板。
    我在这个目标上已经开发了超过八个月、所以我相信这不是配置错误。
    该应用程序在调试模式下启动并正常运行、我可以分步运行、放置断点、但当它到达程序的某个部分时、会显示该错误消息。
    我尝试用另一个板替换它、奇怪的是、程序甚至不加载、并且出现一个窗口、显示相同的错误。
    我开始怀疑探头可能已损坏。 遗憾的是、我没有另一个要测试的测试。
    我有 LAUNCHCC3220MODASF、我注意到电路板上有 J4连接器"XDS110 OUT"、我认为我可以使用它进行测试、但首先我需要使用电缆来连接电路板。

    您能告诉我、我是否可以对我的探头进行任何测试以检查它是否损坏?

    谢谢你。

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

    您好!

    调试探针不可能损坏。 当由于调试而导致 JTAG 连接中断时、可能是电源问题或由于进入省电模式而导致连接中断。 您是否通过示波器检查电源电压是否有压降? JTAG 连接断开的位置是什么(它在 sl_Start() API 附近)?

    我不确定您的第二块电路板为什么不工作。 也许您可以通过 X 射线检查模块的焊接情况。

    对于 LAUNCHCC3220MODASF 的 JTAG 输出、您无需使用 XDS110 OUT 连接器。 您可以断开跳线 TDI、TDO、TCK、TMS 的连接、并使用标准 跳线。 但也不要忘记连接 GND。

    1月

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

    感谢您在1月的回复
    我一直监控电源电压、直到出现错误消息、并且没有发现任何异常。
    我将电缆插入 XDS110 OUT 连接器、因为我在目标上使用同一连接器。 使用 LAUNCHCC3220MODASF 会发生相同的情况。 它实际上不是损坏的探头。
    在我的测试中、错误消息在循环内发生、我在循环中读取和写入 I2C FRAM 存储器、请参阅图1。 在此图中、您可以看到循环控制变量"dbg_RLs_idx"、您可以看到循环已运行10次。 有时问题在第9回合中表现出来。
    我尝试对循环进行注释、并注意到稍后会出现该消息。 我不认为这是应用程序代码中的错误、因为消息会在不同的点出现、就像一些 JTAG 资源用完了一样。 当我在没有 JTAG 的情况下运行相同的代码时、在 CC3220中写入映像、一切看起来都正常。 我需要 JTAG、因为我想调试新功能。
    我不知道它是否可能与它相关、 但我在项目中插入了一个"cfg"文件、因为我想使用"Execution Analysis"功能、这种包含在大约五个月前完成、我成功使用了该工具、到目前为止没有问题。 我看到有一个定义日志记录区域大小的设置、它可能会产生一些影响、我将 cfg 文件作为附件发送。  我插入了 cfg 文件并进行了更改、但对我所做的操作一无所知。 可能是我做了一些错误。 可以检查 cfg 文件吗?

    非常感谢您的帮助。

     e2e.ti.com/.../5700.release.cfg

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

    您好!

    如果不调试真实代码、很难说出您的案例中发生的情况。

    您似乎已禁用 c.cfg 文件中的硬故障处理程序。 也许您可以尝试启用默认操作并查看正在进行的操作。 也许您有例外、您没有注意到这一点、因为您已禁用了骑手。

    m3Hwi.enableException = true;

    不正确配置的 RTOS 诊断工具可能会影响代码的功能。 另一个原因可能是由于未初始化变量或 JTAG/SWD 调试期间的不同时序以及从 sFlash 加载的执行代码而导致的行为。 谁知道。 如果出现此类问题、很难给出准确的答案。 也许您可以在代码正常工作的地方使用备份、并将更改与当前代码进行比较。

    1月

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

    您好、Jan

    很抱歉耽误你的时间。
    我忙于其他活动、现在才恢复。
    我逐步运行代码、尝试找出 JTAG 崩溃的确切代码点。

    图1显示了对 I2C_transferTimeout 函数的调用;
    I2C_transferTimeout 函数在到达图2所示的行之前正确执行;
    在 SemaphoreP_pend 函数图3中、调用 Semaphore_pend 函数、在这里我设法到达图4中指示的行;

    当我通过按 F6 (单步执行)运行 Task_restore 函数时、调试 崩溃 、如图5所示;
    使用 F5运行 Task_restore (步入)、我可以转到 Idle_loop 函数、如图6所示;

    在 Idle_loop 函数中、分步执行似乎卡在等待循环中、我尝试在 I2C_transferTimeout 函数下方的行中放置一个断点、然后按 Resume、令人惊讶的是它运行和停止正确、如图7所示。

    图1.

    图2.

    图3.

    图4.

    图5.

    图6.

    图7.

    我不知道该测试是否对我有所帮助、但如果您能为我提供更多的技巧来解决我的问题、我很感激。

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

    尊敬的 Carlos:

    您是否尝试过使用 最新 SDK?  

    您使用的 TCLK 速度是多少? 您是否尝试将其从默认的8MHz 降低到2.5MHz?

    BR、

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

    您好、Jan

    我在上一帖子中提到的测试是在最新版本的开发工具上完成的。

    我使用的是 CCS 版本10.4.0.00006、SDK 5.20.0.06和 SysConfig 1.0.0。

    我最初使用默认的 TCLK 运行测试、TCLK 看起来是5.5MHz、请参阅图1。

    我将 TCLK 速度降低到了2.5MHz、如图2所示、但它不起作用。

    图1.

    图2.

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

    很抱歉,Seong,我把你和 Jan

    我将借此机会并通过 JTAG 连接测试的消息:

    [开始:德州仪器 XDS110 USB 调试探针]

    执行以下命令:

    %CCS_base%/common/uscif/dbgjtag -f %boarddatafil文件%-RV -o -S 完整性

    [结果]


    ---- [打印电路板配置路径名]---------------

    C:\Users\Carlo \AppData\Local\TEXASI~1\CCS\
    ccs1040\0\BrdDat\testBoard.dat

    ---- [打印重置命令软件日志文件]-----------------

    此实用程序已选择100或510类产品。
    此实用程序将加载适配器'jioxds110.dll'。
    库构建日期为"2021年6月25日"。
    库构建时间为'11:45:30'。
    库软件包版本为'9.4.0.00129'。
    库组件版本为'35.0.0'。
    控制器不使用可编程 FPGA。
    控制器的版本号为'5'(0x00000005)。
    控制器的插入长度为"0"(0x00000000)。
    此实用程序将尝试重置控制器。
    此实用程序已成功重置控制器。

    ---- [打印重置命令硬件日志文件]-----------------

    扫描路径将通过切换 JTAG TRST 信号进行复位。
    控制器是具有 USB 接口的 XDS110。
    从控制器到目标的链路是直接的(不带电缆)。
    该软件配置为 XDS110功能。
    控制器无法监控 EMU[0]引脚上的值。
    控制器无法监控 EMU[1]引脚上的值。
    控制器无法控制输出引脚上的时序。
    控制器无法控制输入引脚上的时序。
    扫描路径链路延迟已精确设置为"0"(0x0000)。

    ---- [对 JTAG IR 执行完整性扫描测试]-----

    此测试将使用64个32位字的块。
    该测试将仅应用一次。

    使用0xFFFFFFFF 进行测试。
    扫描测试:1、跳过:0、失败:0
    使用0x00000000执行测试。
    扫描测试:2、跳过:0、失败:0
    使用0xFE03E0E2执行测试。
    扫描测试:3、跳过:0、失败:0
    使用0x01FC1F1D 进行测试。
    扫描测试:4、跳过:0、失败:0
    使用0x5533CCAA 进行测试。
    扫描测试:5、跳过:0、失败:0
    使用0xAACC3355进行测试。
    扫描测试:6、跳过:0、失败:0
    所有值均已正确扫描。

    JTAG IR 完整性扫描测试成功。

    ---- [在 JTAG DR 上执行完整性扫描测试]-----

    此测试将使用64个32位字的块。
    该测试将仅应用一次。

    使用0xFFFFFFFF 进行测试。
    扫描测试:1、跳过:0、失败:0
    使用0x00000000执行测试。
    扫描测试:2、跳过:0、失败:0
    使用0xFE03E0E2执行测试。
    扫描测试:3、跳过:0、失败:0
    使用0x01FC1F1D 进行测试。
    扫描测试:4、跳过:0、失败:0
    使用0x5533CCAA 进行测试。
    扫描测试:5、跳过:0、失败:0
    使用0xAACC3355进行测试。
    扫描测试:6、跳过:0、失败:0
    所有值均已正确扫描。

    JTAG DR 完整性扫描测试成功。

    [结束:德州仪器 XDS110 USB 调试探针]

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

    尊敬的 Carlos:

    中提供的信息我无法说明问题的原因。 但我认为这个问题与 JTAG 的物理连接无关。 仅用于测试。 是否可以在 SWD 模式(2线制 JTAG)下检查?

    如果我听说过类似的问题、我会想到这些变体:

    • JTAG 高时钟出现问题或由于进口商接线而造成干扰(在您的情况下不是这样)
    • 由于电源不足导致的问题(根据您之前的声明、您已经测试了电源)
    • 省电模式实施不当
    • 运行时的 Pinmux 问题(这意味着在运行时将 JTAG 的引脚切换为备用功能)
    • 由于 WDT 复位、JTAG 连接丢失

    1月

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

    您好、Jan

    我的定制板上没有提供 SWD 接口(2线 JTAG)、我无法访问 CC3220MODASF12MONR 模块的引脚21和22。 因此、我无法参加您请求的测试。
    我进行了几次测试、将 IDE CCS 版本与 SDK 一同降级、甚至将 XDS110和 LauchPad 的固件从版本3.0.0.16降级到版本3.0.0.15、问题仍然存在。
    我注意到错误信息交替出现,有时出现错误-1170,有时出现错误-241和-242。
    这个项目、我最初是从2021年1月提供的开箱即用示例创建的。
    我再次尝试使用最新版本的开箱即用项目来重新创建项目、但也没有解决问题。
    问题始终与 I2C_transferTimeout 函数的连续调用有关、正如我在上一个帖子中提到的那样。
    探针似乎存在某种溢出、是否有可检查的 JTAG 日志来尝试查看导致此问题的原因?
    我尝试在 LauchPad 上的调试模式下运行开箱即用示例、当我按下 SW2开关时、会出现下图中的错误消息。 我不知道开箱即用示例是否可以在调试模式下运行、但我决定进行注释、因为出现了错误-242和-1170、我认为它可能是相关的。

    非常感谢。

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

    您好!

    您确切将哪些引脚用于 JTAG? 如何在未连接引脚21和22的情况下使用4引脚 JTAG (TDI、TDO、TCK、TMS)?

    1月

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

    你是1月对的

    我讲了胡说。
    SWD 的管脚与4管脚 JTAG 的管脚相同。
    我执行了测试、将调试接口更改为 SWD。
    如图1所示、发生了错误-615:

    Cortex_M4_0:JTAG 通信错误:(错误-615 @ 0x0)目标无法看到正确格式的 SWD 报头。 与目标的连接可能不可靠。 尝试降低 TCLK 设置、然后再试一次。 (仿真包9.4.0.00129)
    Cortex_M4_0:断点管理器:删除作业失败:寄存器/存储器写入失败[22005]

    我尝试将 TCLK 降低至2.5MHz、但发生了如图2所示的相同问题。
    我还使用1.0MHz TCLK 对其进行了测试、但它也不起作用、如图3所示。

    我分步运行程序并验证了执行进度、问题在4线制 JTAG 测试中进一步出现、但问题仍然是对 I2C_transferTimeout 函数的调用、如图4所示。

    关于我在上一篇文章中所做的其他评论、您能告诉我一些什么吗?

    非常感谢。

    图1.

    图2.

    图3.

    图4.

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

    您好!

    是否为 SWD 调试设置了正确的 SOP 模式?

    您是否能够像在 SDK 中一样在硬件上执行 OOB 示例? 但是、当您将代码添加到该示例中时、JTAG 会出现问题、对吧?

    遗憾的是、上面的屏幕截图未向我们提供任何新信息。 您是否以某种方式在代码中使用省电模式(使用电源管理框架)? 您可以暂时禁用此代码吗?

    1月

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

    您好、Jan

    是的、我将 SOP 引脚设置更改为:
    SOP0 =高电平;
    SOP1 =低电平;
    SOP2 =低电平。
    根据我上一帖子图1中的连接测试、SWD 模式看起来是正确的。
    我的硬件和 Launchpad 完全不同、我甚至可以在硬件上加载 OOB、但由于硬件差异、OOB 无法正常运行。
    我注意到、在调试模式下在 LaunchPad 上运行 OOB 示例、按下 SW2时会发生错误。 在 SWD 模式下、出现错误615、在4引脚 JTAG 模式下、出现错误-242和-1170。
    我注意到、在我的硬件上、SW2等效引脚最终处于活动状态、因此它具有与 LaunchPad 相同的错误。
    OOB 示例是否可以在调试模式下运行?
    您能否在调试模式下测试 OOB 示例并告诉我按下 SW2是否也会导致错误?
    关于节能问题、我没有添加任何内容。 我认为这不是问题。

    关于 I2C_transferTimeout 函数、这只是巧合吗?

    非常感谢。

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

    您好!

    在我的计算机上、我安装了旧版 CCS (8.3.1)、因此我现在无法运行 OOB 示例、因为此示例使用 SysConfig。 我已快速检查5.20 SDK 中 OOB 示例的源代码。 在 OOB 示例中按下 SW2时、器件切换至 AP 模式并重新引导。 可能会丢失预期的 JTAG 连接。 在 OOB 丢失 JTAG 连接之前,您可以在日志中预期... "[控制任务]设备以 AP 角色启动、正在重启设备..."

    如果需要,可以通过在处理程序 pushButtonInterruptHandler2()内通信消息队列来取消激活 SW2的功能

    在您的案例中、我无法说出 I2C 和 JTAG 断开之间的连接是什么。 如果这只是巧合、或者存在一些硬件或软件连接。

    1月

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

    您好、Jan

    我不确定是否正确理解、在以调试模式运行的 OOB 示例中、按下 SW2时、不应显示错误消息 SWD 模式下为615、4引脚 JTAG 模式下为-242和-1170?

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

    尊敬的 Carlos:

    JTAG 在复位、进入 LPDS 或休眠时断开。 OOB 演示中的控制任务将器件复位。

    您再次将哪些引脚用于 I2C? 我在您之前的帖子中看不到这一点。

    此致、

    Sarah

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

    你好,Sarah

    非常感谢您的答复。
    在这种情况下、我理解在这种情况下讨论错误消息毫无意义。 但是、我正在寻找 LP 和探测器工作方式方面的差异、这些差异可以帮助我确定导致调试中断的原因、因为这些错误代码非常相似、我认为它们可能是相关的。
    直到上个月、JTAG 一直运行良好、这个问题没有对代码进行任何重大的更改、并且硬件保持不变。
    我怀疑这可能是一些最新的开发工具更新。
    我尝试降级到以前运行的版本、但没有成功、可能还缺少一些内容。
    具体而言、调试工具存在问题、即使使用最新版本的 IDE (10.4.0)、SDK (5.20.0)、在 MCU+Image 中生成的映像也能正常运行。
    我没有太多线索可以跟踪、因此很抱歉坚持这么做。

    非常感谢。

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

    尊敬的 Carlos:

    这些错误代码看起来不像软件工具问题。 应用程序中的某项操作会中断 JTAG (例如进入低功耗模式、切换 JTAG 也使用的引脚)、或者 JTAG 硬件可能发生故障。 您是否尝试过另一个 JTAG 调试器? 您可以将跳线连接到 LaunchPad 上的跳线。

    此致、

    Sarah