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.

[参考译文] LP-EM-CC2340R5:CC2340R5 上的问题:由于错误–615(SWD 通信错误)、无法进行闪存编程和芯片擦除

Guru**** 2979400 points

Other Parts Discussed in Thread: LP-XDS110ET, SYSCONFIG, CC2340R5, UNIFLASH

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1651719/lp-em-cc2340r5-issue-on-cc2340r5-flash-programming-and-chip-erase-become-impossible-due-to-error--615-swd-communication-error

器件型号: LP-EM-CC2340R5
主题中讨论的其他器件: SYSCONFIG 、LP-XDS110ET、 CC2340R5、 UNIFLASH

说明
在评估 SDK 示例工程的行为时、我们修改了与调试器连接和闪存访问保护相关的 SysConfig 设置。 完成这些更改后、发生标题中所述的问题。
目前、由于错误、我们无法使用调试器对器件进行编程或擦除。
我们希望就可能的恢复方法提供指导。

存在许多风险
评估板:LP-EM-CC2340R5 RKP 修订版 B
调试器:LP-XDS110ET Rev.B
SDK:simplelink_lowpower_f3_SDK_9_14_02_16
使用的工程:rtos\LP_EM_CC2340R5\ble\basic_ble
IDE:IAR Embedded Workbench for Arm 9.70.4

SysConfig 更改
以下更改已应用于 basic_ble 工程。
我们认为该问题是由禁用 SWD 端口引起的。

  TI 器件→器件权限设置
  允许 SWD 调试端口=关闭
image.png

重现问题的步骤

  1. 应用 SysConfig 更改后、在 EWARM 中重新编译工程
  2. 执行[下载和调试 (Ctrl+D)]
  3. 执行期间出现错误–615
  4. 之后、每次[下载和调试 (Ctrl+D)]尝试时都会出现错误–615

image.png

(错误–615 @ 0x0)目标无法看到正确格式化的 SWD 标头。  与目标的连接可能不可靠。 尝试降低 TCLK 设置、然后重试。 (仿真包 20.1.0.3429)

已尝试的操作

  1.  使用 UniFlash 擦除芯片
    ManualErase→芯片擦除
    →出现错误–615
    image.png
  2.  通过 UniFlash CLI 编程
    指定的.out 文件
    →出现错误–615
    PS C:\Users\********\Downloads\uniflash_windows_flash> .\dslite-Cortex_M0P.bat
    Executing default command:
    > dslite --mode noConnectFlash -c C:\Users\honda.shogo\ti\CCSTargetConfigurations\CC2340R5.ccxml -l user_files/settings/generated.ufsettings -s VerifyAfterProgramLoad="No verification" -e -f -v "user_files/images/empty_LP_EM_CC2340R5_freertos_iar.out"
     
    DSLite version 20.5.0.4019
    Configuring Debugger (may take a few minutes on first launch)...
            Initializing Register Database...
            Initializing: CS_DAP_0
            Executing Startup Scripts: CS_DAP_0
            Initializing: Cortex_M0P
            Executing Startup Scripts: Cortex_M0P
            Initializing: SEC_AP
            Executing Startup Scripts: SEC_AP
    info: Cortex_M0P: Flash loader: CC23xx_CC27xx_FLASH_LIBRARY_VERSION 4.2.0.187
    Loading Program: user_files/images/empty_LP_EM_CC2340R5_freertos_iar.out
            Preparing ...
            PT_LOAD[0]: 0 of 140 at 0x0
    fatal: CS_DAP_0: Error connecting to the target: (Error -615 @ 0x0) The target failed to see a correctly formatted SWD header. The  connection to the target may be unreliable. Try lowering the  TCLK setting before trying again. (Emulation package 20.5.0.3900)
    error: Cortex_M0P: File Loader: Memory write failed: Failed to connect
            Finished
    Failed: File: user_files/images/empty_LP_EM_CC2340R5_freertos_iar.out: Load failed.
  3.  在 EWARM 中降低 TCLK
    将 JTAG/SWD 速度从默认值更改为 50kHz
    →出现错误–615
  4.  在 CCS 中使用 GEL 脚本执行芯片擦除
    已尝试使用 unblock_loki_low_plus_pg2.gel、假设它应支持 Rev.B 并启用擦除。
    参考资料:
    https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1224456/lp-em-cc2340r5-unable-to-program-cc2340-device-via-xds110-debugger

    环境:
    IDE:Code Composer Studio 20.5.1.12 Theia
    目标配置:CC2340R5.ccxml

    结果:
    已执行 Scripts→CC23xx→UnblockLokiLowPlusPG2
    →μ V 错误–1274 @ 0x0
    →恢复未成功
    image.png
    错误消息
    image.png
  5.  串行引导加载程序访问
    我们考虑了使用串行引导加载程序;不过、根据用于初始编程的 SysConfig、它似乎被禁用。

    TI devices→Device Configuration→Boot Configuration
    引导加载程序配置=默认的 FCFG 引导加载程序

    因此、我们认为无法访问串行引导加载程序。

问题

  1. 即使设置了“允许 SWD 调试端口=关闭“、我们也知道仍然可以使用 UNBLOCK_loki_low_plus_pg2.gel 进行芯片擦除。
    这种理解是否正确?
  2. 在当前情况下、是否有任何可用的恢复方法?
    如果需要其他信息、请告知我们。

 

非常感谢您的支持和指导。

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

    您好:

    如果我正确理解用户指南、我们需要使用此处的 SACI 来擦除器件、SACI 需要使用特殊设备(XDS 中本身不支持)、然后您需要从 TRM 中的 8.3 器件管理命令界面调用命令。  

    谢谢、
    Alex F

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

    您好 Alex、

    我们希望进一步澄清 SACI 的使用情况。

    请提供以下方面的更多详情:

    -访问 SACI 需要哪种设备?
    -这种设备是否可以购买,如果可以,在哪里可以获得?
    -这种设备的大概成本是多少?
    - SACI 命令实际上是如何发出的? (例如,是否有专用工具或软件可用?)

    非常感谢您的支持和指导。

    此致、

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

    您好:

    我正在与我的一些团队成员核实 XDS 是否可以执行 SACI、我会在这里收到回复时回来。  

    谢谢、
    Alex F

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

    您好:

    在与我的同事交谈后、我们发现以下内容:

    首先、我们想问调试器设置为什么? 是否设置为禁止调试器?   

    考虑到引导加载程序设置为默认引导加载程序、应该使用 ROM 串行引导加载程序、并且应该只使用 3 个特定引脚(2 个 UART 引脚和一个启动/指示灯引脚)。TRM CC23xx SimpleLink 无线 MCU(修订版 A)的第 8.5 节对此进行了详细介绍。  

    谢谢、
    Alex F

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

    您好 Alex、

    感谢您以前的指导。

    根据您的建议、我们使用了 ROM 串行引导加载程序(采用默认的 FCFG 引导加载程序配置)并通过 UART 成功执行了芯片擦除。
    之后、SWD 访问被恢复、我们能够再次使用调试器对器件进行编程。

    感谢您的支持。

    我们还想问一个问题。

    根据此结果、我们知道只要启用串行引导加载程序、就可以使用串行引导加载程序进行恢复。
    但是、我们想澄清同时禁用调试和引导加载程序访问的情况:

    - SWD 调试端口:禁用
    -串行引导加载程序:禁用(例如,引导加载程序禁止或等效配置)

    在这种配置中、了解唯一剩下的方法是通过 TRM 中介绍的 SACI(安全 AP 命令接口)来访问器件是否正确?

    此外、在这种情况下:

    是否有任何方法可以使用 XDS110 等标准调试探针执行基于 SACI 的操作(例如闪存擦除)?

    如有任何澄清、将不胜感激。

    此致、

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

    您好:

    关于 SACI 命令、一个有趣的要点是它还需要 SWD 运行;话 虽如此、即使禁用了 SWD、也可能仍然可以使用一些 SACI 命令(如擦除器件)、但我们的专家能够确定这是否可行、直至 15 日(下周)结束。  

    谢谢、
    Alex F

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

    您好 Alex、

    感谢您的更新。 我了解情况。

    如有可能、请你进一步澄清。

    此致、

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

    您好:

    我与我的团队成员交谈过、他们会详细了解这一点、他们向我确认、如果禁用了 SWD、我们就无法控制器件(通过 SACI)。 恢复器件的唯一方法是使用串行引导加载程序、但需要启用串行引导加载程序。  

    谢谢、
    Alex F

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

    您好 Alex、

    感谢您的答复。

    你的解释澄清了我们想要确认的要点,我们现在对情况有了清楚的了解。
    我们会将该主题标记为“已解决“。

    非常感谢您的支持。

    此致、