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 远程联网调试-- DSS 和 CCS 调试会话

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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/1282023/ccs-remote-network-connected-debugging----dss-and-ccs-debugging-sessions

主题中讨论的其他器件:LAUNCHXL-F280039C

CCS 似乎支持使用 DSS 工具( https://dev.ti.com/tirex/explore/node?node=AEvH2m2WktsK7yoAuLqLWA__FUz-xrs__LATEST )进行某种"远程调试"。

[计算机1: CCS IDE +调试器  ]-->[计算机2:DSS +调试器+ USB 调试器]--> USB-|[ LAUNCHXL-F280039C ]  

我可以启动"test_server.js",它在端口4444上作为服务器在本例中的机器2上侦听^:

:~/work/debug_server/ccs_base/scripting/examples/TestServer $.../../bin/dss.sh test_server.js

服务器启动...

 服务器已启动。

 会话[0]在端口4444上打开。

错误:'bug_cmd'不是函数、不会添加。

testserver 已就绪。

我已确认服务器通过使用原始 TCP 套接字(telnet)连接并发送垃圾邮件来正确响应。

但是、我们不清楚 如何将 IDE 连接到机器1上的调试器。  所有调试程序似乎都需要一个.ccxml 文件——我似乎遗漏了 DSS 的一个文件(可能是?)。  如何将1.2.3.4:4444 (IP:PORT)添加到 CCS IDE 中、从而可以编程和调试?

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

    您好!

    [Machine 1: CCS IDE + Debugger ]
      
    但是、 我不清楚如何将 IDE 连接到机器1上的调试器

    请注意、您未将机器1上的 CCS IDE 连接到机器2上的远程 DSS 会话。 计算机1上不涉及 CCS/DSS。 机器1只需通过 JSON 格式(通过打开的套接字)将命令发送到机器2、后者转换为由机器2上打开的 DSS 会话执行的 DSS 操作。

    TestServer 用于远程控制远程机器上的无外设调试会话。 如果要在本地对远程计算机使用实际的 CCS IDE、则需要使用基于 XDS 的 LAN 调试探针。

    谢谢

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

    我明白了。  对于仅使用 CCS 执行调试会话而言、DSS 相当复杂。

    对于 XDS LAN 探头、也会非常 昂贵。 (2000美元以上?)

    我将研究 Linux NBD (网络块设备)、我会使用它来连接网络端口并向/从 USB XDS 探针发送流量。  你以前试过这个吗?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    那么 DSS 对于只使用 CCS 执行调试会话来说相当复杂。

    DSS 用于 CCS 调试器的无头自动化。 但是、DSS 在后台与 TestServer 示例一起使用。 用户只需将所需的调试命令发送到正在运行的 DSS 服务器。

    关于 XDS LAN 探测器,这也 是非常昂贵的。 (2000美元以上? )

    XDS LAN 探头确实有点昂贵、

    我将研究 Linux NBD (网络块设备),我会使用此设备链接网络端口并向/从 USB XDS Probe 发送流量。  您以前是否尝试过此功能?

    我没有这方面的经验。

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

    >>用户只需将所需的调试命令发送到正在运行的 DSS 服务器

    但是、这需要计算机运行 CCS。  x86_64,似乎没有集成到 CCS 调试器?

    >> 我没有这方面的经验。

    由于 TI 调试器为:1. 提供多个 TTY 接口,以及2.  在 USB 上切换不同的配置,显示不同的活动设备(FU 和"正常"是其中的两个)。

    我能够配置 usbip 以来回转换 USB 连接- CCS 就能检测到它。  现在我需要切换 usbip 以拾取 DFU、此时 LAUNCHXL 切换到相应模式、并返回至正常模式。  寻找技巧来检测这种变化,我相信它是在 systemctl ..  继续阅读,如果你可以建议正确的触发器与 systemd 在这里..  

    到目前为止--  

    安装软件
    APT 安装 usbip
    调制探针 usbip_host
    echo 'usbip_host'>>/etc/modules

    列出 USB 设备并记下产品/供应商
    usbip 列表-l

    创建启动脚本
    纳米/usr/sbin/usbip_start.sh

    #!/bin/bash

    # TI 0039C --串行00b
    USB1='0451:bef3'

    # TI 0039C -- SERIAL 00B - DFU
    #总线001设备005: ID 1cbe:00ff Luminary Micro Inc. Stellaris ROM DFU 启动器
    USB2='1cbe:00ff'

    /usr/sbin/usbip bind --$(/usr/sbin/usbip list -p -l | grep '#usbid='$USB1'#'| cut '-d#' f1)
    /usr/sbin/usbip bind --$(/usr/sbin/usbip list -p -l | grep '#usbid='$USB2'#'| cut '-d#'- f1)

    使此可执行
    chmod +x /usr/sbin/usbip_start.sh

    创建停止脚本
    纳米/usr/sbin/usbip_stop.sh

    #!/bin/bash

    # TI 0039C --串行00b
    USB1='0451:bef3'

    # TI 0039C -- SERIAL 00B - DFU
    #总线001设备005: ID 1cbe:00ff Luminary Micro Inc. Stellaris ROM DFU 启动器
    USB2='1cbe:00ff'

    /usr/sbin/usbip unbind --$(/usr/sbin/usbip list -p -l | grep '#usbid='$USB1'#'| cut '-d#'-cmi f1)
    /usr/sbin/usbip unbind --$(/usr/sbin/usbip list -p -l | grep '#usbid='$USB2'#'| cut '-d#'-cut) f1
    killall usbid

    使此可执行
    chmod +x /usr/sbin/usbip_stop.sh

    创建服务
    纳米/lib/systemd/system/usbipd.service

    [单位]
    Description=usbip 主机守护程序
    after = network.target

    [服务]
    类型=前向
    ExecStart=/usr/sbin/usbipd -D
    ExecStartPost=/bin/bash -c '/usr/sbin/usbip_start.sh
    ExecStop=/bin/bash -c '/usr/sbin/usbip_stop.sh

    [安装]
    WantedBy=多用户.target

    systemctl --系统守护程序-reload
    systemctl 启用 usbipd.service
    systemctl 启动 usbipd.service

    检查找到的 USB 设备
    usbip list -p -l

    ——

    Linux 客户端
    切换到 root 帐户
    苏-

    检查是否连接了 USB 设备
    lsusb

    安装软件并创建服务
    apt install usbip hwdata usbutils -y
    调制探针 vhci-hcd
    echo 'vhci-hcd'>>/etc/modules

    创建启动脚本
    纳米/usr/sbin/usbip_start.sh

    #!/bin/bash

    服务器1='192.168.200.7'

    # TI 0039C 开发套件-- serial 000b
    USB1='0451:bef3'

    # TI 0039C -- SERIAL 00B - DFU
    #总线001设备005: ID 1cbe:00ff Luminary Micro Inc. Stellaris ROM DFU 启动器
    USB2='1cbe:00ff'

    /usr/bin/usbip attend -r $server1 -b $(/usr/bin/usbip list -r $server1 | grep $usb1 | cut -d:-usb1 f1)
    /usr/bin/usbip attach -r $server1 -b $(/usr/bin/usbip list -r $server1 | grep $USB2 | cut -d:-USB2 f1)

    使此可执行
    chmod +x /usr/sbin/usbip_start.sh

    创建停止脚本
    纳米/usr/sbin/usbip_stop.sh

    #!/bin/bash

    /usr/bin/usbip detach --port=$(/usr/bin/usbip port | grep ' '| sed -E 's/^端口([0-9][0-9]).*/\1/')
    /usr/bin/usbip detach --port=$(/usr/bin/usbip port | grep ' '| sed -E 's/^端口([0-9][0-9]).*/\1/')

    使此可执行
    chmod +x /usr/sbin/usbip_stop.sh

    创建服务
    纳米/lib/systemd/system/usbip.service

    [单位]
    Description=usbip 客户程序
    after = network.target

    [服务]
    类型=单触发
    RemainAfterExit=是
    ExecStartPost=/bin/bash -c '/usr/sbin/usbip_start.sh
    ExecStop=/bin/bash -c '/usr/sbin/usbip_stop.sh

    [安装]
    WantedBy=多用户.target

    systemctl --系统守护程序-reload
    systemctl 启用 usbip.service
    systemctl 启动 usbip.service

    检查是否连接了 USB 设备
    USBIP 端口
    lsusb

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是的,但是,这要求计算机运行 CCS。  x86_64之类的程序,似乎没有集成到 CCS 调试程序中?

    仅连接到目标板的充当服务器的第二台计算机。 第一台(客户端)计算机没有 CCS 依赖性、只要它可以通过套接字发送 JSON 命令、就可以是任何计算机。

    我能够配置 usbip 以来回转换 USB 连接-而 CCS 可以检测到它。  现在我需要切换 usbip 以拾取 DFU、此时 LAUNCHXL 切换到相应模式、并返回至正常模式。  寻找技巧来检测这种变化,我相信它是在 systemctl ..  继续阅读,如果你可以建议正确的触发器与 systemd 在这里..  [/报价]

    感谢您分享您的进度。 希望其他更有经验的人能够通过更深入的了解而发出声音。

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

    >>仅作为服务器并连接到目标板的第二台计算机。 第一台(客户端)计算机没有 CCS 依赖性、只要它可以通过套接字发送 JSON 命令、就可以是任何计算机。

    但是、我想在机器1上使用 CCS 作为调试器(应使用用于开发的相同工具编写测试用例、以便在开发或 QA 改进工具链时实现跨团队改进。)。  我不特别关心机器2正在运行 CCS、因为代码是在机器1上开发的、所以无需这样做。

    >> 希望有其他更有经验的人,能够以更多的洞察力蜂鸣。

    可以。  我将继续堵塞。