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.

[参考译文] 双核脚本运行命令未执行

Guru**** 2578945 points


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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/1126868/dual-core-script-run-command-not-executing

Thread 中讨论的其他器件:CCStudio

importPackage(Packages.com.ti.debug.engine.scripting);
importPackage(Packages.com.ti.ccstudio.scripting.environment);
importPackage(Packages.java.lang);

var script = ScriptingEnvironment.instance();

script.traceSetConsoleLevel(TraceLevel.ALL);

script.traceWrite("Setting Up Debug Server API\n");

var debugServer = script.getServer("DebugServer.1");
debugServer.setConfig("<TargetConfigs>.ccxml")


script.traceWrite("Initializing Debug Sessions\n");
var debugSessionCPU1 = debugServer.openSession("Texas Instruments XDS110 USB Debug Probe/C28xx_CPU1");
var debugSessionCPU2 = debugServer.openSession("Texas Instruments XDS110 USB Debug Probe/C28xx_CPU2");

script.traceWrite("Connecting to Each CPU\n");
debugSessionCPU1.target.connect();
debugSessionCPU2.target.connect();

script.traceWrite("Loading Program to CPU1\n");
debugSessionCPU1.memory.loadProgram("CPU1.out");
script.traceWrite("Loading Program to CPU2\n");
debugSessionCPU2.memory.loadProgram("CPU2.out");

script.traceWrite("Running Programs\n");


var dsArray = new Array();
dsArray[0] = debugSessionCPU1;
dsArray[1] = debugSessionCPU2;

debugServer.simultaneous.run(dsArray);
script.traceWrite("Done!");

您好!  

因此、对于以下代码、我希望编写脚本  

1)启动调试会话

2)加载两个 CPU 及其.out 文件。

3)并运行这些.out 文件。

步骤1和2正常工作、但步骤3不能正常工作。

有人有没有任何建议。

我已经在 CCS v9.3和 CCS v12.0中尝试过此操作

*我用代表性字符串替换了实际路径*

谢谢!

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

    Daniel:

    我们的 DSS 专家将在下周结束。  但是、您的脚本对我来说似乎是可以的。  您正在构建一组 debugSessions、然后运行它。

    您如何知道 照射行程不起作用?  您是否永远不会"完成了!" 消息、如果是、您正在加载的程序是否终止?  使用 run()命令,除非调用返回,否则不会到达下一行。  您可以将断点放置在某个位置、这样程序就会命中断点、然后会导致返回。

    作为临时解决方法、您可以尝试单独运行每个会话。  您将无法使用正常运行,因为在第二个运行之前必须完成该运行,但您可以对第一个运行使用 runAsynch(),然后对第二个运行使用普通运行()。  或者对两者使用 runAsynch(),这样可以确保即使程序仍 在设备上运行,也能收到“完成”消息

    debugSessionCPU1.target.runAsynch("CPU1.out");
    debugSessionCPU2.target.run("CPU2.out");
    
    OR
    
    debugSessionCPU1.target.runAsynch("CPU1.out");
    debugSessionCPU2.target.runAsynch("CPU2.out");

    此致、

    John

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

    我的器件上有拼写错误。runAsynch()

    CCS/CCS_base/scripting/docs/DS_API/index.html

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

    尊敬的 John:

    感谢您的快速响应。

    我知道运行不起作用的方式是因为我在 CCS 中的调试窗口报告 CPU1和 CPU2处于硬件断点。  这是 CPU 的状态、当我手动完成这个过程时、在我单击"Resume"[F8]按钮之前。   单独运行内核将是适合我的情况的完美解决方案。  我尝试按照您所述实现 runAsync 函数、但遇到错误:"TypeError: Cannot find function runAsync。 (C:\TI Programs\VPX57HSA050_CPU2\debugVPX57HS.js#35)" 也许我需要导入什么?  再次感谢您的帮助、我认为我们非常接近。 此外、我对 DDS 非常陌生、我不确定应该在哪里输出 writeTraces。