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.

[参考译文] CC2640R2F:无法对 CC2640R2F 进行编程:无法访问 DAP

Guru**** 2668275 points

Other Parts Discussed in Thread: LAUNCHXL-CC2640R2, CC2640R2F, UNIFLASH, SYSCONFIG

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1582236/cc2640r2f-cannot-program-cc2640r2f-unable-to-access-the-dap

器件型号: CC2640R2F
主题中讨论的其他器件: LAUNCHXL-CC2640R2UNIFLASH、SYSCONFIG

您好:

我们开发了一款采用 CC2640R2F SoC 的定制板、可通过 LAUNCHXL-CC2640R2 板上的 XDS110 进行编程。  一段时间前、我可以顺利地对芯片进行编程和调试。 这对该电路板的最新版本以及前一个版本都有效。 突然、我无法再对任何定制电路板进行编程。 当我通过使用跳线将程序写入 LaunchPad 上的板载 CC2640R2F 以连接涉及相同目标配置 (CC2640R2F.ccxml) 的电路板上使用的相同信号 (+3.3V、GND、TCK、TMS、RESET) 时、它的工作正常。 但当我连接电路板后、电路板将无法正常工作、并显示一个重复错误、无法访问 DAP:

Flashloader:启用详细输出。
写入长度 0x00007ff0 的闪存@地址 0x00000000
将闪存加载程序加载到目标:FlashLoaderCC26x0/out  
 块 1:Addr=0x00000000、length=4096、CRC=0x1938B2EE(使用块 0)
错误:(错误–1170 @ 0x0)无法访问 DAP。 重置器件、然后重试此操作。 如果错误仍然存在、请确认配置、对电路板进行下电上电、和/或尝试更可靠的 JTAG 设置(例如下 TCLK)。 (仿真包 20.3.0.3656)  
停止目标 CPU 时出现问题:(错误–2064 @ 0x0)无法读取器件状态。 重置器件、然后重试此操作。 如果错误仍然存在、请确认配置、对电路板进行下电上电、和/或尝试更可靠的 JTAG 设置(例如下 TCLK)。 (仿真包 20.3.0.3656)  
错误:(错误–1170 @ 0x0)无法访问 DAP。 重置器件、然后重试此操作。 如果错误仍然存在、请确认配置、对电路板进行下电上电、和/或尝试更可靠的 JTAG 设置(例如下 TCLK)。 (仿真包 20.3.0.3656)  
停止目标 CPU 时出现问题:(错误–2064 @ 0x0)无法读取器件状态。 重置器件、然后重试此操作。 如果错误仍然存在、请确认配置、对电路板进行下电上电、和/或尝试更可靠的 JTAG 设置(例如下 TCLK)。 (仿真包 20.3.0.3656)  

 

Flashloader:启用详细输出。
写入长度 0x00007ff0 的闪存@地址 0x00000000
将闪存加载程序加载到目标:FlashLoaderCC26x0/out
  块 1:Addr=0x00000000、length=4096、CRC=0x1938B2EE(使用块 0)
  块 2:Addr=0x00001000、length=4096、CRC=0x1FAA55EF(使用块 1)
  块 3:Addr=0x00002000、length=4096、CRC=0x508BA633(使用块 0)
  块 4:Addr=0x00003000、length=4096、CRC=0xB74B9D9B(使用块 1)
  块 5:Addr=0x00004000、length=4096、CRC=0x747317C8(使用块 0)
  块 6:Addr=0x00005000、length=4096、CRC=0x1BECAEA5(使用块 1)
  块 7:Addr=0x00006000、length=4096、CRC=0x410894F7(使用块 0)
  块 8:Addr=0x00007000、LENGTH=4080、CRC=0xEACB68DE(使用块 1)
写入闪存@长度为 0x00007ff0 的地址 0x00007ff0
  块 1:Addr=0x00007FF0、length=4096、CRC=0xA10FBAB4(使用块 0)
  块 2:Addr=0x00008FF0、length=4096、CRC=0x1FECFA8B(使用块 1)
  命令=20 --地址=0x00008FF0 --长度=0x00001000
停止目标 CPU 时出现问题:(错误–2064 @ 0x0)无法读取器件
链路状态。 重置器件、然后重试此操作。 如果错误仍然存在、
确认配置、对电路板进行下电上电、和/或尝试更可靠
JTAG 设置(例如下 TCLK)。 (仿真包 20.3.0.3656)
错误:(错误–1170 @ 0x0)无法访问 DAP。 复位器件、
然后重试此操作。 如果错误仍然存在、请确认配置、
对电路板进行下电上电、和/或尝试更可靠的 JTAG 设置(例如
下 TCLK)。 (仿真包 20.3.0.3656)
停止目标 CPU 时出现问题:(错误–2064 @ 0x0)无法读取器件
链路状态。 重置器件、然后重试此操作。 如果错误仍然存在、
确认配置、对电路板进行下电上电、和/或尝试更可靠
JTAG 设置(例如下 TCLK)。 (仿真包 20.3.0.3656)

有时、错误号不同(如上所示)、会加载部分代码。 但即便如此,它在每一次尝试中都在同一个点停止。

奇怪的是 — 当我手动连接到界面时,我不会遇到任何问题。 我可以连接到电路板、显示所有内核、并连接到 Cortex M3、DAP 以及 IcePick。  

我还尝试了拔下并重新插入所有电缆、将 TCLK 降低到 1.5MHz、并执行了各种 JTAG 连接测试。 这些工作没有任何问题:

测试连接
----- 【打印线路板配置路径名】------------------------------------ C:\Users\Arbeit\AppData\Local\TEXASI~1\ccs\ ccs2031\0\0\BRDDATAC\testBoard.dat -- 【打印重置命令软件日志文件】------------------------------------ 该实用程序选择了 100/110/510 类产品。 此实用程序将加载适配器'jioxds110.dll'。 库构建日期为“2025 年 8 月 12 日“。 库构建时间为“02:44:21“。 库软件包版本为“20.3.0.3656"。“。 库组件版本为“35.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 Integrity scan-test 已成功。
编译器为 TI v18.12.5 LTS
XDCTools 5.51.3.28_core
SimpleLink CC2640R2F SDK 5.30.0.03
 
我想不出有什么可能是错的。 我很乐意提供任何帮助和提示 — 如果您需要更多信息,请告诉我。 非常感谢您! :)
 
祝你一切顺利、
Nico
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Nico、

    有时、错误号不同(如上所示)、加载部分代码。 但即便如此,它在每一次尝试中都在同一个点停止。

    奇怪的是 — 当我手动连接到界面时,我不会遇到任何问题。 我可以连接到电路板、显示所有内核、并连接到 Cortex M3、DAP 以及 IcePick。  
    [/报价]

    您能否展开“当我手动连接界面时、我没有遇到任何问题“?

    上述陈述与以下陈述有何区别? 在这两种情况下、我们都是手动连接它们、不是吗?

    [引述 userid=“484113" url="“ url="~“~/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1582236/cc2640r2f-cannot-program-cc2640r2f-unable-to-access-the-dap

    使用跳线连接我们电路板上使用的涉及相同目标配置 (CC2640R2F.ccxml) 的相同信号 (+3.3V、GND、TCK、TMS、RESET)、因此工作正常。 但当我连接电路板后、电路板将无法正常工作、并显示一个重复错误、无法访问 DAP:

    Flashloader:启用详细输出。

    [/报价]

    您的定制 PCB 是否已经过 TI 设计审查论坛的审查?  

    谢谢、
    Alex F

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    一段时间前、我可以对芯片进行编程和调试、而不会出现任何问题。 这对该电路板的最新版本以及前一个版本都有效。 现在、突然、我无法再对任何定制板进行编程。

    如果您使用 CC2640R2F Launchpad 引脚的 P4 进行编程 +3.3V、GND、TCK、TMS、RESET 您可能需要使用切割器刮擦销、以确保销上没有灰尘或腐蚀。 如果有连接、您还需要检查导线。 同时确保导线不会过长。

    如果这不起作用、那么您的定制电路板可能出现了问题、需要进行调查。

    -kel  

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

    嗨、Alex、

    感谢您联系我们!
    在第一个陈述中、我指的是手动连接到定制电路板。 当我进入调试工作区并开始为电路板进行目标配置时、可以连接到 SoC 的所有提到部分:

    仍然、当我要将程序加载到电路板中时、会发生上述错误、声称无法与 DAP 进行通信;不过、该视图表明我能够以某种方式连接到 DAP。 此外、我的两个工作的不同设计迭代原型同时“损坏“、因此我怀疑这是一个错误、可能与用于编程的 LaunchPad 或 CCS IDE 有关。
    是的,我们的设计审查了一段时间前由你的团队,但通过邮件:)

    祝你一切顺利、
    Nico

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

    嘿、Marketl、  

    他你非常多的暗示! 我会尝试一下。 但我仍然怀疑这可能对编程人员有帮助、因为板载 SoC 通过相同的跳线连接到编程器。 这也不应该出现相同的效果吗? 还会再来的、会说它能不能用:)  

    祝你一切顺利、
    Nico

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

    您好、Nico、

    此视图显示我能够以某种方式连接到 DAP。

    正确、您似乎至少可以进入调试会话、仔细检查是否可以打开 UniFlash 并尝试读取存储器、或者查看是否可以手动完全擦除器件?  

    我的两个不同设计迭代的工作原型同时“损坏“、因此我怀疑这是一个错误、可能与用于编程的 Launchpad 或 CCS IDE 有关。

    XDS 是什么对电路板进行编程、而不是对 LaunchPad 本身进行编程;在 SysConfig 中、您将设备权限设置设为什么?  

    看到两个电路板“同时损坏“您是将同一个图像编程到两个电路板上、还是这两个完全独立的图像?  

    再次尝试查看 UniFlash 工具是否可以首先连接到器件、然后对器件执行完整的批量擦除、并尝试重新刷写以查看其是否重新开始工作。

    谢谢、
    Alexander F

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

    您好、

    请参阅、无法 通过以下链接访问 DAP 错误–1170。  这通常是由电路板上的硬件故障或子内核上的无效代码导致其持续复位引起的。

    https://software-dl.ti.com/ccs/esd/documents/ccs_debugging_jtag_connectivity_issues.html#cannot-access-the-dap

    如果您使用 SDK 中的某个示例程序作为程序的基础、那么这应该不是问题。  

    此外、确保将目标板设置为 CC2640R2F。

    -kel

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

    非常感谢! 这确实有效。 我能够在批量擦除后对芯片重新编程、只能找出再次发生的相同错误(并且能够再次通过相同的过程来缓解)。
    可悲的是,我现在得到 这个错误:

    IcePick_C: Error connecting to the target: (Error -241 @ 0x0) A router subpath could not be accessed. A security error has probably occurred. Make sure your device is unlocked. (Emulation package 20.3.0.3656) 


    正如我从论坛上读到的那样,它可能与时钟有关。 从我看到的到现在,钟应该是好的;不过,我会更彻底地检查。

    祝你一切顺利、
    Nico

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

    您好、Nico、

    我想提到的是、在某种情况下、如果我们批量擦除器件(应用程序和 CCFG)、并尝试使用调试授权设置为任何内容但始终允许的工程刷写器件、则编程将因“安全/调试“而失败。  

    之所以要检查 CCFG(空白)、是因为调试设置为密码/哈希保护、但无法找到任何信息、因此默认情况下假设无法刷写器件。  

    批量擦除器件时的解决方案是刷写任何其调试设置为始终允许的工程、然后刷写具有所需调试授权的工程。   

    但是、如果您的当前项目设置为“始终授权“、并且您收到上述错误、这可能是我们应该研究的单独问题。  

    谢谢、
    Alex F

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

    您好 Alex、

    这听起来 确实是可能的情况! 感谢您发送编修。
    我尝试找到相应的选项;遗憾的是、当我创建新的 SYSCFG 时、我只获得了几个选项、而且根本没有调试配置首选项:

    根据这里的文章,应该有更多的。 我的情况如何?
    您是否需要更多信息来帮助我找到原因? 其他配置文件吗?

    祝你一切顺利、
    Nico

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

    跟进 — 也许它仍然是不同的东西 . 如果我可以使用正确的调试配置对电路板进行编程、那么我还应该能够通过 Uniflash 来批量擦除或空白检查芯片、这是 sadls、而不是这种情况。 我还在这里得到以下错误:


    连接到目标时出错:(错误–241 @ 0x0)无法访问路由器子路径。 可能发生了安全错误。 确保您的设备已解锁。 (仿真包 20.3.0.3656)

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

    您好、Nico、

    在 CC2640R2 上似乎无法设置调试授权(密码)、但它允许或不允许进行调试。

    关于设备设置的主题、我们必须查看.ccfg 文件(或您的设备配置文件)。  

    //#####################################
    // Debug access settings
    //#####################################
    
    #ifndef SET_CCFG_CCFG_TI_OPTIONS_TI_FA_ENABLE
    #define SET_CCFG_CCFG_TI_OPTIONS_TI_FA_ENABLE           0x00       // Disable unlocking of TI FA option.
    // #define SET_CCFG_CCFG_TI_OPTIONS_TI_FA_ENABLE        0xC5       // Enable unlocking of TI FA option with the unlock code
    #endif
    
    #ifndef SET_CCFG_CCFG_TAP_DAP_0_CPU_DAP_ENABLE
    // #define SET_CCFG_CCFG_TAP_DAP_0_CPU_DAP_ENABLE       0x00       // Access disabled
    #define SET_CCFG_CCFG_TAP_DAP_0_CPU_DAP_ENABLE          0xC5       // Access enabled if also enabled in FCFG
    #endif
    
    #ifndef SET_CCFG_CCFG_TAP_DAP_0_PRCM_TAP_ENABLE
    #define SET_CCFG_CCFG_TAP_DAP_0_PRCM_TAP_ENABLE         0x00       // Access disabled
    // #define SET_CCFG_CCFG_TAP_DAP_0_PRCM_TAP_ENABLE      0xC5       // Access enabled if also enabled in FCFG
    #endif
    
    #ifndef SET_CCFG_CCFG_TAP_DAP_0_TEST_TAP_ENABLE
    // #define SET_CCFG_CCFG_TAP_DAP_0_TEST_TAP_ENABLE      0x00       // Access disabled
    #define SET_CCFG_CCFG_TAP_DAP_0_TEST_TAP_ENABLE         0xC5       // Access enabled if also enabled in FCFG
    #endif
    
    #ifndef SET_CCFG_CCFG_TAP_DAP_1_PBIST2_TAP_ENABLE
    #define SET_CCFG_CCFG_TAP_DAP_1_PBIST2_TAP_ENABLE       0x00       // Access disabled
    // #define SET_CCFG_CCFG_TAP_DAP_1_PBIST2_TAP_ENABLE    0xC5       // Access enabled if also enabled in FCFG
    #endif
    
    #ifndef SET_CCFG_CCFG_TAP_DAP_1_PBIST1_TAP_ENABLE
    #define SET_CCFG_CCFG_TAP_DAP_1_PBIST1_TAP_ENABLE       0x00       // Access disabled
    // #define SET_CCFG_CCFG_TAP_DAP_1_PBIST1_TAP_ENABLE    0xC5       // Access enabled if also enabled in FCFG
    #endif
    
    #ifndef SET_CCFG_CCFG_TAP_DAP_1_WUC_TAP_ENABLE
    #define SET_CCFG_CCFG_TAP_DAP_1_WUC_TAP_ENABLE          0x00       // Access disabled
    // #define SET_CCFG_CCFG_TAP_DAP_1_WUC_TAP_ENABLE       0xC5       // Access enabled if also enabled in FCFG
    #endif

    我在这里也收到以下错误:

    -如果器件调试和器件闪存都设置为禁用,我们可能无法擦除器件,我们可以尝试看看是否可以进入 ROM 串行引导加载程序并命令它执行芯片擦除请求。  

    谢谢、
    Alex F

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

    您好、Nico、

    感谢您的更新、请告诉我对 CCFG 的更改是否起作用!

    谢谢、
    Alex F