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/TMS320F2.8335万:调试服务器脚本/GEL_System()交互

Guru**** 2549370 points


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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/578817/ccs-tms320f28335-debug-server-scripting-gel_system-interaction

部件号:TMS320F2.8335万

工具/软件:Code Composer Studio

我们有许多用GEL编写的传统自动测试脚本。

我能够通过Gel文件窗口,加载Gel和运行在Code Composer Studio 7.0 内部运行测试。 测试脚本执行到完成,我看到通过结果,并生成结果文件。

因为我们有许多这样的测试脚本,所以我们一直在寻找一种方法来批处理这些测试脚本。 这将引导我们了解调试服务器脚本编写界面。

作为概念验证,我制作了一个小的包装脚本来启动已经存在的Gel脚本:

//************************************************************************************************
//**加载环境
//**********************************************************************

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

//创建脚本环境对象-它是任何脚本的主要入口点,

var脚本= ScriptingEnvironment.instance

//获取调试服务器并启动调试会话

调试服务器= script.getServer("DebugServer.1")
debugServer.setConfig("C:\\workspace\\project\\TMS320F2.8335万.ccxml")
debugS= debugServer.openSession.openSexpress\sexpression.sce\sexpresse("debugession.sce\sexpresse\sexpression.sce\sexpress\sexpression\s'sce\sexpression.sce("debugSession.sce\s'sce\sexpression\sexpression\sce\sexpresse\sexpression\sexpress\sexpresse\sexpression\sexpression\sexpression\sexpression\sexpression\s'sc





如果我通过“脚本控制台”启动此程序,所有操作都将按预期进行,测试将执行,通过并生成其结果文件。

我能够进一步扩展这一范围,包括多项测试(test2.gel,test3.gel等)。

接下来,显而易见的步骤是能够直接从命令行启动测试会话,而无需启动GUI。 我四处搜索,认为我找到了我需要的东西:

eclipsec.exe -noSplash -data C:\\workspace -application com.ti.ccstudio.apps.runScript -CCS.script C:/DSP/sbatch.js 

不幸的是,这 种做法基本上是可行的。 我可以看到测试在大多数初始化序列中执行,我可以看到断点命中,我可以看到正在检查的值,但测试没有完成;但是,调试会话 结束,使访问返回到命令提示符。

最终发生的情况如下:

实际= 0 (PWM1 TBPRD)
预期= 0 (PWM1 TBPRD)
结果:****** 测试通过****** 
实际= 0 (PWM2 TBPRD) 预期= 0 (PWM2 TBPRD) 结果:****** 测试通过******
实际= 0 (PWM3 TBPRD) 预期= 0 (PWM3 TBPRD) 结果:****** 测试通过******
实际= 1250 (PWM1 TBPRD)

在上述数据集中,最后一组数据(实际值= 1250)缺少预期检查和通过/失败确定。

如果我打开GEL_Trace(2),我可以看到它在各种帮助程序函数中的浏览,最终在许多GEL_System()函数调用中的一个函数调用结束,以帮助将数据通过管道传递到日志文件(由于Code Composer Studio 6.0 和GEL_EnableFileOutput()不工作时遇到错误)。

似乎存在某种问题/限制因素,在对GEL_System()进行了这么多次调用后,执行只会停止,而没有任何类型的调试/错误信息。

似乎在Code Composer Studio 7.0 中更正了g胶_EnableFileOutput()错误;但是,我们希望尽可能避免更改大量的自动测试集。

其他人有没有经历过这种情况? 是否有人发现了任何解决方法?

编辑:经过几次测试后,删除了gGEL_System()调用,我能够始终如一地让它们运行到完成状态,因此它看起来肯定是相关的。

尽管如此,我确实遇到了次要问题。 在Code Composer Studio内部运行时,以及从eclipsec.exe命令行选项运行以启动CCS.script时,测试的执行似乎不完全相同。

它的作用就好像初始变量值与通过Code Composer Studio本身加载生成时的值不同。 是否需要更改特定的配置选项以使两个运行配置相同?

编辑2:在运行一个较长的测试后,即使删除了GEL_System()调用并替换为GEL_TextOut(),脚本最终会无声终止。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    撞这个。 尚未看到任何响应/反馈或任何其他用户遇到类似问题。

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

    [报价用户="Jamie McPeek"]

    接下来,显而易见的步骤是能够直接从命令行启动测试会话,而无需启动GUI。 我四处搜索,认为我找到了我需要的东西:

    eclipsec.exe -noSplash -data C:\\workspace -application com.ti.ccstudio.apps.runScript -CCS.script C:/DSP/sbatch.js 

    [/引述]

    这应该起作用...但您直接调用无头脚本启动器而不是使用推荐的dss.bat文件的任何特殊原因?

    在任何情况下,从命令行调用DSS脚本与脚本控制台*应该*相同。 使用相同的脚本引擎来执行这两个命令,我相信这两个命令的默认调试器选项都是相同的。

    我关注的是:

    Jamie McPeek 说:
    我们有许多用GEL编写的传统自动测试脚本。[/QUOT]

    [引用user="Jamie McPeek"]我能够进一步扩展该测试,以包括多个测试(test2.gel,test3.gel等)。

    凝胶对于完全吹塑自动化的用途非常有限。 这有很多限制,许多GEL的(半)异步行为都认为是一个问题。 这可能会导致一些不一致,与您遇到的情况类似。 这就是为什么建议使用完整的DSS,因为它更可靠。 从控制台和命令行运行时,计时可能会有所不同,因为前者可能会由于GUI的一些开销而变慢。

    我不能说我知道您看到的问题。 但是,如果您可以提供一个小的可重现测试案例,这将有助于调查。

    谢谢

    KI

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

    [报价用户="Ki-Soo Lee"]

    这应该起作用...但您直接调用无头脚本启动器而不是使用推荐的dss.bat文件的任何特殊原因?

    [/引述]

    就像我所看到的一个例子。 在浏览dss.bat文件时,它看起来基本上是相同的调用,在eclipsec.exe可用之前,它周围有一些包装。

    为了确认,我使用dss.bat包装程序运行了相同的测试,结果相同。

    此外,我升级到了最近发布的7.1 .................................................................0.0015万,并确认eclipsec.exe和DSS.bat的行为相同。

    [报价用户="Ki-Soo Lee"]

    凝胶对于完全吹塑自动化的用途非常有限。 这有很多限制,许多GEL的(半)异步行为都认为是一个问题。 这可能会导致一些不一致,与您遇到的情况类似。 这就是为什么建议使用完整的DSS,因为它更可靠。 从控制台和命令行运行时,计时可能会有所不同,因为前者可能会由于GUI的一些开销而变慢。

    [/引述]

    异步性质当然是一个负担;但是,我们的框架只是设置为仅在遇到断点,执行操作,运行到下一个断点时才运行。 因此,我们能够围绕Gel内的OnHalt()回调“同步”。

    此外,由于在传统应用程序中严重依赖浮点数据,加上DSS中缺少浮点支持,因此设置仍是一种硬销售。

    是否计划将浮点支持添加到DSS? 或者,是否已添加但我们错过了它?

    [报价用户="Ki-Soo Lee"]

    我不能说我知道您看到的问题。 但是,如果您可以提供一个小的可重现测试案例,这将有助于调查。

    [/引述]

    我有一个非常简单的例子来说明这种行为,但它是用于TMS320F2.8335万的数百行代码和一个项目。

    档案可从检索  

    它不包含任何二进制文件/可执行文件-需要重新编译项目。

    安装时:

    将"DSP_Test"放入C:\驱动器中。

    将“DSP_Test/Example”作为CCS项目导入新/空白工作区。 生成项目。

    对于“Auto Run (自动运行)”设置,您可能需要取消选中“Run to label on reset/restart (重设/重新启动时运行至标签)”(某些测试必须验证预C环境配置)。

    将example.out复制到C:\DSP_Test。 将EZDSPF2.8335万.CCXML复制到C:\DSP_Test。

    此时,您可以在Code Composer Studio中以常规方式运行example.gel,它应该一直执行到完成。

    您也可以使用eclipsec.exe或dss.bat运行batch.js,它应部分执行,然后无提示终止。

    如果有更好的方法来获取示例设置,请告诉我。