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.

[参考译文] LAUNCHXL-CC1350:具有 OpenOCD(TI 官方扩展)的 VSCode 调试功能无法在 CC2640R2(通过 CC1350 Launchpad)上正常运行

Guru**** 2466550 points
Other Parts Discussed in Thread: CC2640R2F, CC1350, CC2640R2L, CC2640

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

https://e2e.ti.com/support/tools/simulation-hardware-system-design-tools-group/sim-hw-system-design/f/simulation-hardware-system-design-tools-forum/1543464/launchxl-cc1350-vscode-debug-with-openocd-official-ti-extension-not-working-on-cc2640r2-through-cc1350-launchpad

器件型号:LAUNCHXL-CC1350
“主题“中讨论的其他器件:CC1350CC2640R2L、CC2640R2F、 CC2640

工具/软件:

大家好、我正在将我公司在 Code Composer Studio 11 上的所有工作都迁移到 VScode、因为 CCS 20 速度很慢、目前没有 Github Copilot。 我成功创建了在终端上构建并刷写 CCS CLI 的命令。 但我无法使用官方的 TI 扩展进行调试。  

我们目前在 PCB 上使用 CC2640R2 微控制器、并且始终使用 CC1350 Launchpad 作为接口通过任何版本的 CCS 或闪存编程器对其进行编程/调试。 LaunchPad 移除了所有跳线、但显示 XDS110 电源 连接到上部引脚(写入 Vsense)的跳线除外、它具有从 GND、3、3V、RX、TX、RESET TM 和 TMC 直接整合到 PCB 中。 我们从未使用 TDI 或 TDO、因此可以在 CCS 上进行这样的调试。

在我的 vscode 启动配置中、我有:

     {
      “CWD":“:“c:\\Users\\Ivan.Moreno\\Desktop\\Ivan \\Repos\\fw-gasmeter_g\\GASMETER-FW\\simple_peripheral_cc2640r2lp_app\\FlashROM_StackLibrary_Lora“
      “可执行文件““simple_peripheral_cc2640r2lp_app.out",“,</s>、
      “名称““调试 CC2640R2L (Lora)“
      “请求““启动“
      “type":“:“Cortex-debug",“,</s>、
      “serverType":“:“openocd",“,</s>、
      “configFiles":“:[
        “interface\\xds110.cfg",“,</s>、
        “Board\\ti_cc13x0_launchpad.cfg"</s>“
      ]、
      “searchDir":“:[
        “C:\\Users\Ivan.Moreno\\AppData\\Local\\ti-embedded-debug\\openocd\\20250414\\share\\openocd\\scripts“ Texas Instruments
      ]、
      “runToEntryPoint":“:“main",“,</s>、
      “showDevDebugOutput":“:“raw",“,</s>、
      “DeviceName“CC2640R2F",“,</s>、
      “openOCDLaunchCommands":“:[
        “ADAPTER_kHz 2000“
      ]
    }
所有目录看起来都是正确的、配置文件被正确找到、因为终端信息显示:
开放片上调试器 0.12.0+dev-gae70877b5-dirty (2025年01月31日–10:10)
在 GNU GPL v2 下获得许可
有关错误报告、请阅读
openocd.org/.../bugs.html
CDLiveWatchSetup
JTAG
警告:已配置接口、忽略
警告:已选择传输“JTAG"</s>“
警告:已选择传输“JTAG"</s>“
Cortex_m reset_config vectreset
已弃用! 使用“适配器速度“而不是“ADAPTER_kHz"</s>“
适配器速度:1500 kHz
INFO:正在侦听端口 50001 中的 TCL 连接
INFO:侦听端口 50002 的 telnet 连接
信息:XDS110:已连接
INFO:XDS110:VID/pid = 0451/bef3
信息:XDS110:固件版本= 3.0.0.38
信息:XDS110:硬件版本= 0x002b
信息:XDS110:通过 JTAG 连接到目标
信息:XDS110:TCK 设置为 2500 kHz
INFO:时钟速度 1500 kHz
错误:JTAG 扫描链查询失败:全零
错误:检查 JTAG 接口、时序、目标电源等
错误:仍在尝试使用已配置的扫描链...
错误:cc13x0.jrc:IR 捕获错误;SAW 0x00 不是 0x01
警告:由于错误而绕过 JTAG 设置事件
info:在 50000 上启动 cc13x0.cpu 的 gdb 服务器
INFO:正在侦听 gdb 连接的端口 50000
INFO:在 TCP/50000 上接受'gdb'连接
错误:尚未检查目标
在目标 cc13x0.cpu 上执行事件 gdb-attach 时出错:
错误:尚未检查目标
错误:Auto_probe 失败
错误:连接失败。 考虑为目标设置 gdb-attach 事件以准备目标进行 GDB 连接、或使用“gdb_memory_map disable“。
错误:尝试的'gdb'连接被拒绝  
TI 扩展文档没有指定我应该包含哪些.cfg 文件、只有一个具有接口/xds110.cfg board/的示例 .cfg 文件。 毫无疑问是否包含 XDS110、但我的设置具有 cc1350 Launchpad 和 cc2640。 因此、我尝试添加添加添加  target/ti_cc26x0.cfg 文件甚至 board/ti_cc26x0_launchpad.cfg 文件的所有可能的组合、成功次数更少(有时失败时间早于我之前指定的次数)。
另外、我很确定这还不是一个问题、但我不知道应该将什么写为 deviceName、因为没有包含确切语法的列表、现在我 记下了 CC2640R2F。
我希望有人能澄清我在做什么错误,甚至如果这是可能的。 我从未在任何地方使用 openocd 或对调试选项进行过过多的探索、因此我可能遗漏了一些非常明显的东西。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    有关如何使用 VSCode 扩展的文档很快将在 SimpleLink Academy 培训中发布、但尚未发布。 我可以确认 deviceName 字段不是必需的、并且没有特定的语法、它仅用于调试目的。

    使用 LaunchPad 的 XDS110 来调试另一个芯片是我认为我们没有尝试过的、但在理论上应该可行。 在这种情况下、要包括在  configFiles 中的正确文件 应为  “接口\\ xds110.cfg“  board\\ti_cc26x0_launchpad.cfg“ 。 请添加一下 “serverArgs":“:[“-D3"]</s>“  字段中、尝试重新启动调试会话并查看此操作是否有效? 如果没有、您能向我分享两个中的错误日志 调试控制台 选项卡和 终端 VSCode 的选项卡?

    此致、
    Maxence

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

    您好!

    我重现了您的问题。 我会在我这边进行调试、并尽快为您提供反馈。

    此致、
    Maxence

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

    您好!

    我已经确认了我的问题、但过去支持 AGAMA 板的 OpenOCD 支持的团队 (cc13xx_cc26xx) 已经不存在了。
    我们正在寻找谁以及如何解决问题、但与此同时、我建议您继续使用 CCS 而不是 OpenOCD。

    此致、
    Maxence

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

    您好、Ivan、

    我已经看到您的线程、并了解您正在使用 CC1350 LaunchPad 集成的 XDS110 调试器 通信 CC2640R2 目标板 亮起 与 OpenOCD 代码。  我注意到了 TDO、TDI 和 SWO 引脚 未连接。 这是预期行为、与 CCS 和 OpenOCD 如何处理调试协议保持一致。

    务必记住这一点 、TI 的 Debug Server 默认为 2 线 SWD 模式、这只需要 TMS (SWDIO) 和 TCK (SWCLK)。 除非明确选择了 JTAG 模式、否则不会使用特定于 JTAG 的引脚 (TDI、TDO 和 SWO)。 CCS 会自动检测和配置适当的模式、因此将这些引脚保持未连接状态不会影响调试。

    不过、 OpenOCD 默认为 JTAG 模式、除非针对 SWD 进行明确配置、否则通常需要完整的 4 线制 JTAG 链。 如果未连接 TDI 和 TDO、JTAG 模式下的 OpenOCD 将无法建立通信。

    您能尝试连接以上所述的吗 3 引脚  (TDI、TDO 和 SWO) XDS110 调试器和目标 LaunchPad 之间共享。

    这将使 OpenOCD 与您的硬件设置保持一致、并允许使用 JTAG 引脚进行调试。

    此致、
    Kshitiz

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

    您好、Kshitiz、感谢您的回答!

    我们始终使用 SWD 作为调试接口、因此我们的所有引脚(包括 TDI 和 TDO)都已在使用中、无法访问。

    因此、我需要一种配置 SWD 的方法、但我之前尝试过、由于 cc2640.cfg 文件的存在、它始终默认为 JTAG、因此感觉无法手动编辑。  

    您认为是否有一种方法可以在不使用 JTAG 引脚的情况下进行配置和弃用?

    此致、

    Ivan

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

    您好、Ivan、

    感谢您的跟进。 我知道您在使用 SWD 引脚时会遇到一些困难。

    经进一步调查、我发现了一种硬件限制:CC2640R2 目标器件仅支持 2 引脚 cJTAG 和标准 JTAG 调试模式、不支持 SWD。 您可以在官方文档 CC2640R2 文档中确认这一点。

    此外、关于与 VS Code 和 OpenOCD 一起使用的 XDS110 适配器、存在软件约束。 根据 较旧的 OpenOCD 版本说明、OpenOCD 不支持 CC26XX 器件使用的 2 引脚 cJTAG 模式。 中明确提到了这一点 “已知限制“ 部分。

    由于这些硬件和软件限制、只有完整 JTAG 模式可用于调试具有 OpenOCD 的 CC26XX 器件。 因此、需要使用 JTAG 引脚。

    您可以通过在终端中执行以下命令来验证可用传输 (openOCD 安装通常在 C:\Users\下 \AppData\Local\MSP430\ti-embedded-debug\openocd\20250414\bin Texas Instruments):

    openocd -c "transport list" -c "exit"


    输出将类似于:

    Open On-Chip Debugger 0.12.0+dev-gae70877b5-dirty (2025-01-31-10:10)
    Licensed under GNU GPL v2
    For bug reports, read
    openocd.org/.../bugs.html
    The following transports are available:
    jtag
    hla_jtag
    hla_swd
    swim
    dapdirect_swd
    dapdirect_jtag
    swd


    尽管 SWD 列为可用传输、但 CC26XX 硬件不支持该传输。 因此、调试需要 JTAG 引脚。

    此致、
    Kshitiz