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.

[参考译文] 自动执行连接步骤以开始调试(外部生成的.out 文件)

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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/1315883/automate-connection-steps-to-start-debugging-externally-built-out-file

主题中讨论的其他器件:IWRL6432BOOST

您好!


当加载包含所有调试符号的新内置文件时、我将尝试加快在 CCS 中进行调试的速度。

CCS 版本 V12.6.0

上下文:

  • 我们将自己的 WAF 构建系统与 CLANG 编译器结合使用、然后在 CCS 中进行调试。
  • 这当前是从 VS 代码触发的、但如果 CCS 支持 WAF、应了解...
  • 我们正在使用 IWRL6432BOOST 模块、但我希望与自动化相关的问题也适用于其他 TI 产品。

我们在 CCS 中进行调试时需要执行的步骤:

目前、我们启动调试会话的特定过程如下所示:

  1. 内置 WAF
  2. 启动目标配置
  3. 单击显示所有内核
  4. 连接到 XDS110 USB/CS_DAP_0
  5. 从脚本运行我们的 WAKEUP GEL 文件>... >我们的脚本 GET 消息:"M4 reset released"
  6. 连接到 XDS110 USB/Cortex_M4_0
  7. 重置它
  8. 加载以前编译的程序
  9. 开始调试

只需点击很多次鼠标即可启动调试会话!

潜在解决方案

  • 我想创建一个"调试"脚本、该脚本在一个步骤中尽可能地执行此操作。
  • 我们可以使用 Debug Server Scripting DSS 来实现这一点吗?
  • 欢迎提出其他建议
  • 如果 可以将 WAF 集成到 CCS 中且同样有效、但我怀疑这不可行

非常感谢任何帮助!!



此致
Jaco Swart

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

    好的、我已经取得了一些进展、但仍然缺少一些我可能需要帮助的步骤。

    更新:

    到目前为止,我可以做些什么?

    • 我可以通过("View">"Scripting Console")使用 DSS 脚本命令来运行我的步骤。

    我不能做什么:

    • 从外部运行脚本中的这些命令
    • 将 CCS 附加到正在运行的调试会话

    如有任何帮助、我将不胜感激

    要执行我的步骤的 DSS JavaScript 代码:


    // No idea how to get this to work yet
    importPackage(Packages.com.ti.debug.engine.scripting);
    importPackage(Packages.com.ti.ccstudio.scripting.environment);
    importPackage(Packages.java.lang);
    
    // CSS
    var ccsInstallDir = "C:/TI/ccs1260/ccs";
    // Directory where I've put everyting for this script:
    
    var script_folder = "C:/LocalScratch/debug_script";
    // File structure:
    // /debug_script/application.out
    // /debug_script/xwrl6432_xds110.ccxml
    // /debug_script/xwrLx432.gel
    
    // Folder and file setup
    var logFile = script_folder + "log.xml";
    var logFileStylesheet = ccsInstallDir + "/ccs_base/scripting/examples/DebugServerExamples/DefaultStylesheet.xsl";
    var deviceCCXMLFile = script_folder + "/xwrl6432_xds110.ccxml";
    var programToLoad = script_folder + "/application.out";
    var gel_file = script_folder + "/xwrLx432.gel";
    
    // Get a handle to the scripting environment object
    var scriptEnv = ScriptingEnvironment.instance();
    
    // Logging (DOES NOT WORK) QUESTION: Why?
    scriptEnv.traceBegin(logFile, logFileStylesheet);
    scriptEnv.traceSetConsoleLevel(TraceLevel.INFO);
    scriptEnv.traceSetFileLevel(TraceLevel.ALL);
    scriptEnv.traceWrite("Begin scripting session");
    
    // Get a handle to a ScriptServer object to interact with the debugger
    var debugServer = scriptEnv.getServer("DebugServer.1");
    // Set the target configuration
    debugServer.setConfig(deviceCCXMLFile);
    
    // Connect to CS_DAP_0 and Run gel file
    var cs_dap_session = debugServer.openSession("Texas Instruments XDS110 USB Debug Probe_0/CS_DAP_0");
    cs_dap_session.target.connect();
    cs_dap_session.expression.evaluate('GEL_LoadGel("' + gel_file + '")');
    
    // Connect and reset cortexm4
    var cortexm4 = debugServer.openSession("Texas Instruments XDS110 USB Debug Probe_0/Cortex_M4_0");
    cortexm4.target.connect();
    cortexm4.target.reset()
    
    // Load program
    cortexm4.memory.loadProgram(programToLoad);
    
    // Start debugging
    cortexm4.target.run();
    
    // Stop - QUESTION: Should this be here?
    debugServer.stop();
    
    // Stop logging
    scriptEnv.traceWrite("End scripting session");
    scriptEnv.traceEnd();
    

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

    在 CCS 之外运行该脚本时会出现什么问题?

    将 CCS 附加到正在运行的调试会话

    如果您查询有关启动 CCS IDE 并将其连接到已经处于活动状态的 DSS 会话的信息、则无法执行此操作。  但可以让 DSS 脚本启动 CCS IDE。

    谢谢

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

    感谢回复 Ki。 我很感激。

    我对如何准确运行感到有点困惑。 我尝试使用启动它(让我们调用我的脚本"script.js")

    路径1
    dss.bat 脚本.js
    run.bat 脚本.js

    我在脚本"script.js"中的导入步骤中收到错误  因为上面的语法似乎是 java 而不是 javascript、但我在 javascript 中看不到相同的示例。

    如果我可以解决此问题以便脚本识别 CSS 命令、那么我也许可以让它正常工作?
    也许在上述两个命令中还需要执行额外的步骤来启动 IDE?


    备用路径2 (该阶段的主路径)

    set CCS_INSTALL_DIR="C:\TI\ccs1260\ccs\eclipse\ccstudio.exe"
    
    set WORKSPACE="C:\LocalScratch\debug_script"
    set SCRIPT_PATH="C:\LocalScratch\debug_script\run_debug.js"
    
    %CCS_INSTALL_DIR% -data %WORKSPACE% -application com.ti.ccstudio.apps.runScript -product com.ti.ccstudio.branding.product -import %SCRIPT_PATH%


    这最接近我得到的工作脚本、但它会打开 IDE 而不显示任何内容。 我可以在任务管理器中看到它、但它没有打开。
    结果:
    1.看到 IDE 启动界面
    2.参见"任务管理器"中的 IDE
    3.  无错误和 IDE 用户界面

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

    今天结束时、我决定简化这一过程、只需将 DSS 代码复制到 Code Composer Studio 内的 Scripting Console 中。

    我在 VS 代码中编写了脚本、以便在我单击"Debug"时将正确的命令复制到剪贴板、然后我只需在 CCS 中粘贴即可开始调试。

    解决方案摘要:

    1.使用"-G3"编译器标志构建具有 WAF 的毫米波项目、以获取调试信息

    2.跳过步骤1-5 (问题)的自动化操作,因为这些步骤不需要重复进行调试

    2.生成代码以便 从"Scripting Console"中使用 CCS 中的内置文件进行编程和开始调试

    // This line is programatically generated
    var workspace = "C:/LocalScratch/mmwave-low-power-radar"; 
    // Copy paste this when you debug
    var scriptEnv = ScriptingEnvironment.instance();
    var debugServer = scriptEnv.getServer("DebugServer.1");
    var scriptEnv = ScriptingEnvironment.instance();
    var debugServer = scriptEnv.getServer("DebugServer.1");
    var deviceCCXMLFile = workspace + "/modules/ti-mmwave-sdk/xwrl6432_xds110.ccxml";
    var programToLoad = workspace + "/out/current/application.out";
    //debugServer.setConfig(deviceCCXMLFile);
    var cortexm4 = debugServer.openSession("Texas Instruments XDS110 USB Debug Probe_0/Cortex_M4_0");
    cortexm4.target.connect();
    cortexm4.target.reset()
    cortexm4.memory.loadProgram(programToLoad);


    3.将其粘贴到 CCS"Scripting Console"中并按 Enter 来启动调试会话。



    感谢您的帮助!

    与代码设置详细信息

    将此代码从 VS 代码复制到剪贴板的脚本

    使用"Task Buttons"扩展、可以将以下脚本添加为"Debug"按钮

    debug.bat (Windows 批处理文件)

    set javescript_to_start_debugging=".\scripts\CCS\debugging\code_to_start_debugging.js"
    
    :: Copy the code to start debugging
    set /p jsContent=<%javescript_to_start_debugging%
    
    set currentDir=%CD:\=/%
    set outputFile=".\scripts\CCS\debugging\temp.txt"
    
    :: Make sure that we use the project workspace for the person using this script
    echo var workspace = "%currentDir%"; > %outputFile%
    type %javescript_to_start_debugging% >> %outputFile%
    type "%outputFile%" | clip
    del %outputFile%
    
    echo Copied debug execution script to clipboard!
    echo.
    echo To Start debugging session:
    echo 1. Paste to Scripting Console inside CCS
    echo 2. Press Enter
    echo.
    echo HINT: Find Scripting Console in "View > Scripting Console"
    echo.


    VS 代码设置的更多详细信息

    Tasks.json
    {
        "label": "Debug",
        "command": "./scripts/CCS/debug_CCS.bat",
        "type": "shell",
    },

    settings.json

    "VsCodeTaskButtons.tasks": [
        {
            "label": "Debug $(bug)",
            "task": "Debug"
        }
    ]